//clear input box plugin 
$.fn.search=function(){
	return this
	.focus(function(){if(this.value==this.defaultValue){this.value=""};})
	.blur(function(){if(!this.value.length){this.value=this.defaultValue};})
};

//-----------------------------------------
//validate search on submit
$.fn.validsearch=function(status, textbox){
	return this
	.submit(function(){
		var dvalue = $(textbox).attr("defaultValue");
		var value = $(textbox).attr("value");
		var error_msg = "Please enter a query before submitting.";
		if(dvalue==value){$(status).html(error_msg).fadeIn(300);setTimeout('$("' + status + '").fadeOut()', 2000);return false;};
	});
};

//-----------------------------------------
// hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+ <http://cherne.net/brian/resources/jquery.hoverIntent.html | author Brian Cherne <brian@cherne.net>
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:500};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);

//nav dropdown
$.fn.dropdowns=function(){return this
.hoverIntent(function () {{$(this).children('ul').slideDown(300);}},function () {$(this).children('ul').slideUp(300)});};

//-------------------------------------------
// Added for remote footer call
//--------------------------------------------//
function ajaxRequest(){
 var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
 if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
  for (var i=0; i<activexmodes.length; i++){
   try{
	return new ActiveXObject(activexmodes[i])
   }
   catch(e){
	//suppress error
   }
  }
 }
 else if (window.XMLHttpRequest) // if Mozilla, Safari etc
  return new XMLHttpRequest()
 else
  return false
}

// usage: remote page, local element name, remote element name
function loadElementIntoAnotherElement(fragment_url, local_element_id, remote_element_id) {
	var mygetrequest=new ajaxRequest()
	mygetrequest.open("GET", fragment_url, true)
	mygetrequest.send(null)
	
	var element = this.document.getElementById(local_element_id)
	element.innerHTML = '<p><em>Loading ...</em></p>'

	if (mygetrequest.overrideMimeType){
	 mygetrequest.overrideMimeType('text/xml')
	}
	mygetrequest.onreadystatechange=function(){
	 if (mygetrequest.readyState==4){
	  if (mygetrequest.status==200){
	   var xmldata=mygetrequest.responseXML //retrieve result as an XML object
	   var footer=xmldata.getElementById(remote_element_id)
		   element.innerHTML = footer.innerHTML
	  }
	  else{
	   alert("An error has occured making the request")
	  }
	 }
	}		
}