//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;};
	});
};

//-----------------------------------------
//validate event search on submit
$.fn.event_validate=function(textbox){
	return this
	.submit(function(){
		var dvalue = $(textbox).attr("defaultValue");
		var value = $(textbox).attr("value");
		if(value==dvalue){$(textbox).attr("value", "");};
	});
};

//-----------------------------------------
//trip and meeting planner dropdown
$.fn.plan_slider=function(){
	return this
	.hoverIntent(
		function () {if ($(this).children('ul').is(":has(li)")) {$(this).children('ul').slideDown(300);}},
		function () {$(this).children('ul').slideUp(300)});
};

//-----------------------------------------
//check-uncheck all 
$.fn.checkall=function(checkbox_container) {
	return this
	.click(function(){
		$checkboxes = $(checkbox_container).find('input[type=checkbox][id!=' + this.id + ']');
		if ($checkboxes.filter(':checked').size() == 0 || $checkboxes.filter(':checked').size() < $checkboxes.size()) {
			$($checkboxes).attr('checked','checked');
			$(this).attr('checked','checked');
		}
		else {
			$($checkboxes).removeAttr('checked');
			$(this).removeAttr('checked');
		}

	});	
};

//-----------------------------------------
//map click checkboxes
$.fn.mapclick=function() {
	return this
	.click(function () {
		var area = $(this).attr('id');
		var description = $(this).attr('title');
		var cbx = '#chk_' + area.substring(4);
		if (!($(cbx).attr('checked'))) {
			$(cbx).attr('checked', 'checked');
			$('p.description').html(description);
			return false;
		}
		else if ($(cbx).attr('checked')) {
			$(cbx).removeAttr('checked');
			$('p.description').html(description);
			return false;
		}
	});
};

//-----------------------------------------
//Star rater
$.fn.stars=function(r_field){
	return this
	.hover(
		function () {$(this).prevAll().andSelf().addClass('hover')},
		function () {$(this).prevAll().andSelf().removeClass('hover')}
	)
	.click(
		function () {
			var rating = $(this).html();
			$(r_field).attr('value',rating);	
			$(this).siblings().removeClass('active');
			$(this).prevAll().andSelf().addClass('active');
		}
	)
};


//-----------------------------------------
//validate category search (if no location checked, check all)
$.fn.validcatsearch=function(checkbox_container){
	return this
	.submit(function(){
		$checkboxes = $(checkbox_container).find('input[type=checkbox]');
		if ($checkboxes.filter(':checked').size() == 0) {
			$($checkboxes).attr('checked','checked');
		}
	});
};	

//-----------------------------------------
//default dates for travelocity search			
function ddlDefaultDates(){
	var doa =  $.datemaker('+6d');
	var amonth = doa.getMonth();
	var aday = doa.getDate();
	var ayear = doa.getFullYear();
	$('#smonth').attr('selectedIndex', amonth);
	$('#sday').attr('selectedIndex', aday);
	$('#syear').attr('value', ayear);
	var dod =  $.datemaker('+7d');
	var dmonth = dod.getMonth();
	var dday = dod.getDate();
	var dyear = dod.getFullYear();
	$('#emonth').attr('selectedIndex', dmonth);
	$('#eday').attr('selectedIndex', dday);
	$('#eyear').attr('value', dyear);
};				

//-----------------------------------------
//set date of an input element - requres datemaker
$.fn.set_date=function(date){
	var d1 = $.datemaker(date); 
	var sDate = d1.getMonth() + 1 + "/" + d1.getDate() + "/" + d1.getFullYear();
	$(this).attr('value', sDate);
};


//-----------------------------------------
/* jquery.datemaker.js: Date Maker plugin | Copyright (c) 2008 Doug Sparling | Dual licensed under the MIT and GPL licenses*/
(function($) {$.datemaker = function(expires) {
	var d1 = new Date();
	if ( ar = expires.match(/^([+|-])?(\d+)(\w)$/) ) {
		var action;
		RegExp.$1 == '+' || RegExp.$1 == ''  ? action = '+' : action = '-';
		if (RegExp.$3 == 's') {action  == '-' ? $.datemaker.advanceSeconds(d1, '-', RegExp.$2) : $.datemaker.advanceSeconds(d1, '+', RegExp.$2);} 
		else if (RegExp.$3 == 'm') {action  == '-' ? $.datemaker.advanceMinutes(d1, '-', RegExp.$2) : $.datemaker.advanceMinutes(d1, '+', RegExp.$2);} 
		else if (RegExp.$3 == 'h') {action  == '-' ? $.datemaker.advanceHours(d1, '-', RegExp.$2) : $.datemaker.advanceHours(d1, '+', RegExp.$2);} 
		else if (RegExp.$3 == 'd') {action  == '-' ? $.datemaker.advanceDays(d1, '-', RegExp.$2) : $.datemaker.advanceDays(d1, '+', RegExp.$2);} 
		else if (RegExp.$3 == 'M') {action  == '-' ? $.datemaker.advanceMonths(d1, '-', RegExp.$2) : $.datemaker.advanceMonths(d1, '+', RegExp.$2);} 
		else if (RegExp.$3 == 'y') {action  == '-' ? $.datemaker.advanceYears(d1, '-', RegExp.$2) : $.datemaker.advanceYears(d1, '+', RegExp.$2);}
	} 
	else if ( ar = expires.match(/^(\d+)\.seconds?\.ago$/) ) {$.datemaker.advanceSeconds(d1, '-', RegExp.$1);}
	else if ( ar = expires.match(/^(\d+)\.seconds?\.from_now$/) ) {$.datemaker.advanceSeconds(d1, '+', RegExp.$1);}
	else if ( ar = expires.match(/^(\d+)\.minutes?\.ago$/) ) {$.datemaker.advanceMinutes(d1, '-', RegExp.$1);}
	else if ( ar = expires.match(/^(\d+)\.minutes?\.from_now$/) ) {$.datemaker.advanceMinutes(d1, '+', RegExp.$1);}
	else if ( ar = expires.match(/^(\d+)\.hours?\.ago$/) ) {$.datemaker.advanceHours(d1, '-', RegExp.$1);}
	else if ( ar = expires.match(/^(\d+)\.hours?\.from_now$/) ) {$.datemaker.advanceHours(d1, '+', RegExp.$1);}
	else if ( ar = expires.match(/^(\d+)\.days?\.ago$/) ) {$.datemaker.advanceDays(d1, '-', RegExp.$1);} 
	else if ( ar = expires.match(/^(\d+)\.days?\.from_now$/) ) {$.datemaker.advanceDays(d1, '+', RegExp.$1);}
	else if ( ar = expires.match(/^(\d+)\.years?\.ago$/) ) {$.datemaker.advanceYears(d1, '-', RegExp.$1);} 
	else if ( ar = expires.match(/^(\d+)\.years?\.from_now$/) ) {$.datemaker.advanceYears(d1, '+', RegExp.$1);}
	else if (ar = expires.match(/^now$/)) { }
	else if (ar = expires.match(/^midnight$/)) {d1.setDate(d1.getDate()+1);d1.setHours(0);d1.setMinutes(0);d1.setSeconds(0);}
    return d1;
	};
  $.datemaker.advanceSeconds = function(d1, direction, seconds) {direction == '-' ? d1.setSeconds( d1.getSeconds() - parseInt(seconds) ) : d1.setSeconds( d1.getSeconds() + parseInt(seconds) );};
  $.datemaker.advanceMinutes = function(d1, direction, minutes) {direction == '-' ? d1.setMinutes( d1.getMinutes() - parseInt(minutes) ) : d1.setMinutes( d1.getMinutes() + parseInt(minutes) );};
  $.datemaker.advanceHours = function(d1, direction, hours) {direction == '-' ? d1.setHours( d1.getHours() - parseInt(hours) ) : d1.setHours( d1.getHours() + parseInt(hours) );};
  $.datemaker.advanceDays = function(d1, direction, days) {direction == '-' ? d1.setDate( d1.getDate() - parseInt(days) ) : d1.setDate( d1.getDate() + parseInt(days) );};
  $.datemaker.advanceMonths = function(d1, direction, months) {direction == '-' ? d1.setMonth( d1.getMonth() - parseInt(months) ) : d1.setMonth( d1.getMonth() + parseInt(months) );};
  $.datemaker.advanceYears = function(d1, direction, years) {direction == '-' ? d1.setFullYear( d1.getFullYear() - parseInt(years) ) : d1.setFullYear( d1.getFullYear() + parseInt(years) );};
}) (jQuery);


//-----------------------------------
// 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:150,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);