function HighlightMenu(){
	// current tab on navigation
	if ($(menuIdToHighlight)) {
		
	}
	$("#"+menuIdToHighlight+":first").addClass('currentPage');

}


;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);


(function($){
	$.fn.swaplist=function(currenciesAvailable,currenciesSelected,hide){
	$(this).css("cursor","pointer").attr('readonly','readonly').after($('<div id="cs_container"><div class="cs_wrapper"><div class="lhs"><p>Available Currencies</p><select size="8" id=\'AvailableCurrencies\' title="Double click item to select" ></select></div><div class="middle"><a href="#" id="cs_add"><span>Add</span></a><a href="#" id="cs_remove"><span>Remove</span></a></div><div class="rhs"><p>Your Currencies</p><select size="8" id="currenciesSelected" title="Double click item to deselect" ></select></div><div style="clear:both"></div><div class="cs_search"><label for="cs_search">Search</label><input type="text" id="cs_search" /><p><a href="#" id="cs_close"><span>Close</span></a></p></div></div></div>'));
    $("#cs_container").hide();
	
	
	$.each(currenciesAvailable,function(){
	    $('#AvailableCurrencies').append($('<option>'+this+'</option>').attr("value",this.split(" - ")[0]));
	});
	$.each(currenciesSelected,function(){
	    $('#currenciesSelected').append($('<option>'+this+'</option>').attr("value",this.split(" - ")[0]));
	});
	
	this.attr('readonly','readonly');
		input=this;
		this.click(function(e){
			togglediv();	
					
		});
		$("#cs_close").click(function(e){
			togglediv();
			return false;				  
		});
		
		function togglediv(){
			if($('#cs_container').is(':visible')){
				$('#cs_container').hide();
				$(hide).toggle();
			}else{
				$('#cs_container').fadeIn('fast').show();
				$.scrollTo($('#cs_container'));
				$(hide).toggle();
			}
		}	
	
		$("#cs_add").click(function() {swap("#AvailableCurrencies", "#currenciesSelected",input,"#currenciesSelected");return false;});
		$("#cs_remove").click(function() {swap("#currenciesSelected", "#AvailableCurrencies",input,"#currenciesSelected");return false;});
		$("#cs_search").keyup(function() {searchlist("#currenciesSelected"+" , "+ "#AvailableCurrencies", $(this).val().toLowerCase())});
		
		$("#AvailableCurrencies").dblclick(function() {swap("#AvailableCurrencies", "#currenciesSelected",input,"#currenciesSelected");return false;});
		$("#currenciesSelected").dblclick(function() {swap("#currenciesSelected", "#AvailableCurrencies",input,"#currenciesSelected");return false;});
	}
	
	function swap(from, to,input,target){

		 $(from).find(':selected').appendTo(to);
            update(input,target);
			
	}
	
	function update(input,target){
		arrayBuilder=new Array();
		$(target+" option").each(function(element,value){
			arrayBuilder.push($(value).attr('value'));
		});
		$(input).val(arrayBuilder.join().replace(/,/gi,";"));
	}
	
	function searchlist(list, search) {
		 $(list).children().attr('selected', '').filter(function() {
      if(search == ''){
        return false;
      }
      return $(this)
        .text().toLowerCase().indexOf(search) > - 1
    }).attr('selected', 'selected');
	}
})(jQuery);




(function($){
	$.fn.tooltip=function(){
	return this.each(function(){			
		$(this).hover(function(e){
    		// Hover over code 
   			 var titleText = $(this).attr('title');
    		$(this).stop().data('tipText', titleText).attr('title',"");
    		$('<p class="tooltip"></p>').text(titleText).appendTo('body').css('top', (e.pageY - 10) + 'px')
      		.css('left', (e.pageX + 20) + 'px').fadeIn('slow');
  		}, function() {
    		// Hover out code
    		$(this).stop().attr('title', $(this).data('tipText'));
			$('.tooltip').stop().fadeOut('slow',function(){$(this).remove()});
			
  		}).mousemove(function(e){
    		// Mouse move code
    		$('.tooltip').css('top', (e.pageY - 10) + 'px').css('left', (e.pageX + 20) + 'px');
  			});
		});
	}
})(jQuery);



(function($){
	$.fn.searchlinks2=function(name,myregex){
		var cookie=subcookie.get(name);
	}
})(jQuery);


function getUrlVars()
{
    var vars = [], hash;
	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	var temp;
    for(var i = 0; i < hashes.length; i++){hash = hashes[i].split('=');
	vars.push(hash[0]);
	vars[hash[0]] = hash[1];
	}
    return vars;
}

function getHashValue(){
	var hash=window.location.href.split("#");
	if(hash[0] && hash[1]!=undefined){
		return hash[1];	
	}else{
		return false;
	}
}



(function($){
	$.fn.dependantfield=function(value,dependant,startColor,endColor){
	
		showhide(this[0].value,value,dependant,startColor,endColor);
		this.change(
					
			function(e){showhide(this.value,value,dependant,startColor,endColor)}
		)
	}
	function showhide(input,value,dependant,startColor,endColor){
		if(input==value){
			$(dependant).animate({
				opacity:'show',height:'show'
			},'fast').animate({backgroundColor:endColor},'slow').animate({backgroundColor:startColor},'slow');
		}else{$(dependant).animate({
				opacity:'hide',height:'hide'
			},'fast').animate({'backgroundColor':startColor},'slow')}
	}
})(jQuery);

(function($){
	$.fn.faq=function(hide){
		$(hide).css('display','none'); // hide content
		if(getHashValue()){
			$("#"+getHashValue()).addClass('selected').next().css('display','block');
		}
		var allElements=$(this);
		return this.each(function(){
			$(this).wrapInner($('<a />').attr('href',"#")).click(function(){
				selected(this,allElements);	
				return false;
			})

		});
	}
	function selected(clicked,allElements){
		$(allElements).each(function(){
			if(this==clicked){
				toggle($(this)); // clicked element
			}else{
				$(this).removeClass('selected').next().animate({opacity:'hide',height:'hide'},'fast'); // close others
			}
		});
	}
	function toggle(element){
		if($(element).addClass('selected').next().css('display')=="none"){
			$(element).next().animate({opacity:'show',height:'show'},'fast');
		}else{
			$(element).removeClass('selected').next().animate({opacity:'hide',height:'hide'},'fast');
		}
	}
})(jQuery);

function googleCommerce(tracker,category,categoryitem){
	var timeObj        = new Date;
	var unixTimeMs   = timeObj.getTime();
	var unixTime      = parseInt(unixTimeMs / 1000);
	var orderID        = tracker[0]._visitCode() + '-' + unixTime;
	$.each(tracker,function(element,ga){
		ga._addTrans(
			orderID, // required
		  "","","","","","",""
		); 
		ga._addItem(
		  orderID, // required
		  categoryitem,
		  category,
		  categoryitem,
		  "1",  // required
		  "1"   //required
		); 
		ga._trackTrans();
		
		
	});
}

(function($){
	$.fn.OpenNewWindow=function(text){
		return this.each(function(){
			$(this).attr('target','_blank');
			$(this).attr('title',text);
		});
	}
})(jQuery);

(function($){
	$.fn.OpenRedirect=function(folder){
		return this.each(function(){

			$(this).click(function(){
								   
			window.location=$(this).attr('href');
			return false;
			});

		});
	}
})(jQuery);



(function($){
	$.fn.PopUpWindow=function(features){
		return this.each(function(){
			$(this).click(function(e){
				window.open($(this).attr('href'), '_blank', features);
				return false;
			});
		});
	}
})(jQuery);

function getCurrentUrl(){
	var t=location.href.split("/");
	t.splice(0,2);
	t=t.join("/");
	return "/"+t;
}

(function($){
	$.fn.DropDownMenu=function(cssValue){
		  
		return this.each(function(){		
				
				$(this).hover(function(){ 
						$(this).addClass(cssValue);
				},function(){
						 $(this).removeClass(cssValue);
						
				});
		});
	}
})(jQuery);	

(function($){
	$.fn.ExternalLink=function(pageTracker){
		var href;
		this.each(function(){	
			if(this.hostname!=location.hostname){
				$(this).click(function(){
					href=$(this).attr("href");			   
					$.each(pageTracker,function(elem,value){
						value._trackEvent("Clicked External Link", href, getCurrentUrl());
					});
				});
			}
		});
	}
})(jQuery);	

(function($){
	$.fn.searchlinks=function(name,myregex,myregex2,pageTracker){
		this.filter(function(){
						//	 console.log($(this).attr('href').match(myregex));
  			return $(this).attr('href').match(myregex);
		}).each(function(){
		buildLink($(this),name,pageTracker);
	});	
		if(myregex2){
			this.filter(function(){
				return $(this).attr('href').match(myregex2);		 
				}).each(function(){
					$(this).data("href",$(this).attr('href'));
					var builder=(($(this).data("href").indexOf("?")>0)?"&":"?")+"chl=1"+buildLeadSourceValue2(name);
					$(this).click(function(){
						window.location.href=$(this).data("href")+builder;
						return false;
					});
				});
		}
	}
	function buildLink(elem,name,pageTracker){
		elem.data("href",elem.attr('href'));
		var builder=((elem.data("href").indexOf("?")>0)?"&":"?")+"id=chlegacy"+buildLeadSourceValue(name)+"&ga="+pageTracker._getAccount();
			if(pageTracker!=undefined){ // proceed if ga is working
					elem.click(function(){
						pageTracker._link(elem.data("href")+builder);
						return false;
					});
			}else{
				elem.click(function(){
					window.location.href=elem.data("href")+builder;
					return false;
				});

		}
	}	
	function buildLeadSourceValue(name){
		var builder="";
		if(subcookiejar.fetch(name,"t")){builder+=subcookiejar.fetch(name,"t")
		}else if(subcookiejar.fetch(name,"ls")){builder+=subcookiejar.fetch(name,"ls")}
		if(subcookiejar.fetch(name,"ts")){builder+="_"+subcookiejar.fetch(name,"ts")}
		if(subcookiejar.fetch(name,"b")){builder+="&branch="+subcookiejar.fetch(name,"b")}
		if(builder!=""){builder="_"+builder}
		return builder;
	}
	function buildLeadSourceValue2(name){
		var builder="";
		if(subcookiejar.fetch(name,"t")){builder+="&t="+subcookiejar.fetch(name,"t")
		}else if(subcookiejar.fetch(name,"ls")){builder+="&ls="+subcookiejar.fetch(name,"ls")}
		if(subcookiejar.fetch(name,"ts")){builder+="_"+subcookiejar.fetch(name,"ts")}
		if(subcookiejar.fetch(name,"b")){builder+="&b="+subcookiejar.fetch(name,"b")}
		return builder;
	}
})(jQuery);

var queryVarsUtil={
	create:function(name,myArray,expiry){
		var hash = getUrlVars();
		var c = new Object();
		var queryfound=false;
		if(hash["siteid"]){
			var d=new Date();
			eval("c.ts='"+d.getTime()+"'");	
		}
		$.each(myArray,function(index, value ){
			if(hash[value]){
				// query var found, build object
				queryfound=true;
				eval("c."+value+"='"+hash[value]+"'");	
			}else if(subcookiejar.fetch(name,value)){
				eval("c."+value+"='"+subcookiejar.fetch(name,value)+"'");
			}
			});
		if(queryfound){
			subcookiejar.bake (name, c, 230,"/");
		}
	}
};

/**
 * Cookies.js, providing easy access to cookies thru the cookiejar object. Enabling so-called "subcookies" thru the subcookiejar 
 * object.
 * See this related blogpost for more information on how to use these objects:
 * 	<http://www.whatstyle.net/articles/28/subcookies>
 * Check out this other blogpost for information about the new version:
 *  <http://www.whatstyle.net/articles/46/subcookies_v2>
 * 
 * @author Harmen Janssen <http://www.whatstyle.net>
 * @version 2.0
 * 
 */

/* based on http://www.quirksmode.org/js/cookies.html, by Peter-Paul Koch */
var cookiejar = {
	/* set a cookie */
	bake: function(cookieName,cookieValue,days,path) {

		var expires='';
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			expires = "; expires="+date.toGMTString();
		}
		var thePath = '; path=/';
		if (path) {
			thePath = '; path=' + path;
		}
		var thedomain=';domain= .customhouse.com';
		document.cookie = cookieName+'='+escape(cookieValue)+expires+thePath+thedomain;
		document.cookie = cookieName+'='+escape(cookieValue)+expires+thePath;
		return true;
	},
	/* get a cookie value */
	fetch: function(cookieName) {
		var nameEQ = cookieName + '=';
		var ca = document.cookie.split(';');
		for (var i=0; i<ca.length; i++)	{
			var c = ca[i];
			while (c.charAt(0) == ' ') {
				c = c.substring(1, c.length);
			}
			if (c.indexOf(nameEQ) == 0) {
				return unescape(c.substring(nameEQ.length, c.length));
			}
		}
		return null;
	},
	/* delete a cookie */
	crumble: function(cookieName) {
		return cookiejar.bake(cookieName,'',-1);
	}
};

/* circumventing browser restrictions on the number of cookies one can use */
var subcookiejar = {
	nameValueSeparator: '$$:$$',
	subcookieSeparator: '$$/$$',
	/* set a cookie. subcookieObj is a collection of cookies to be. Every member of subcookieObj is the name of the cookie, its value
	 * the cookie value
	 */
	bake: function(cookieName,subcookieObj,days,path) {
		var existingCookie;
		/* check for existing cookie */
		if (existingCookie = subcookiejar.fetch (cookieName)) {
			/* if a cookie by the same name is found, 
			 * append its values to the subcookieObj.
			 */
			for (var i in existingCookie) {
				if (!(i in subcookieObj)) {
					subcookieObj[i] = existingCookie[i];
				}
			}
		}
		var cookieValue = '';
		for (var i in subcookieObj)	{
			cookieValue += i + subcookiejar.nameValueSeparator;
			cookieValue += subcookieObj[i];
			cookieValue += subcookiejar.subcookieSeparator;
		}
		/* remove trailing subcookieSeparator */
		cookieValue = cookieValue.substring(0,cookieValue.length-subcookiejar.subcookieSeparator.length);
		return cookiejar.bake(cookieName,cookieValue,days,path);
	},
	/* get a subcookie */
	fetch: function(cookieName,subcookieName) {
		var cookieValue = cookiejar.fetch(cookieName);
		/* proceed only if a cookie was found */
		if (!cookieValue) {
			return null;
		}
		var subcookies = cookieValue.split(subcookiejar.subcookieSeparator);
		var cookieObj = {};
		for (var i=0,sclen=subcookies.length; i<sclen; i++)	{
			var sc = subcookies[i].split(subcookiejar.nameValueSeparator);
			cookieObj [sc[0]] = sc[1];
		}
		/* if subcookieName is given, return that subcookie if available, or null.
		 * else, return the entire cookie as an object literal
		 */
		if (subcookieName != undefined) {
			if (subcookieName in cookieObj) {
				return cookieObj[subcookieName];
			}
			return null;
		}
		return cookieObj;
	},
	/* delete a subcookie */
	crumble: function(cookieName,subcookieName,days,path) {
		var cookieValue = cookiejar.fetch(cookieName);
		if (!cookieValue) {
			return false;
		}
		var newCookieObj = {};
		var subcookies = cookieValue.split(subcookiejar.subcookieSeparator);
		for (var i=0, sclen=subcookies.length; i<sclen; i++)	{
			var sc = subcookies[i].split(subcookiejar.nameValueSeparator);
			if (sc[0] != subcookieName) {
				newCookieObj[sc[0]] = sc[1];
			}
		}
		return subcookiejar.bake(cookieName,newCookieObj,days,path);
	}
};

function Search() {
	// requires two global js variables: 
	// customSearchId - Custom Search engine ID or website url
	// siteSearch  - Search term

   var searchControl = new google.search.SearchControl();

  // Set the Search Control to get the most number of results
  searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
 

 // site restricted web search using a custom search engine
      siteSearch = new google.search.WebSearch();
      siteSearch.setSiteRestriction(customSearchId);
	  
      searchControl.addSearcher(siteSearch);

	  // Set the options to draw the control in tabbed mode
	  var drawOptions = new google.search.DrawOptions();
	 drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);
	
	  // Draw the control onto the page
	  searchControl.draw(document.getElementById("searchResults"), drawOptions);
	
	  // Search!
	  searchControl.setNoResultsString("No results found for <strong>"+searchVar+"</strong>, please refine your search");

	  searchControl.setLinkTarget(google.search.Search.LINK_TARGET_SELF)
	  searchControl.execute(searchVar);
      }