$(function() {// Remove javascript warning	//$("div#js-warning").hide();	//$("div#js-warning-spacer").hide();	for(var i in $.browser) {		if ($.browser[i])			BROWSER = i + (($.browser.msie)?$.browser.version.charAt(0):'');	}	URCHIN = typeof(pageTracker)=='undefined'?true:false;	$('.track').each(function() {		var tag = '/'+this.name.replace(/:/g,'/');		if($(this).is('form')) {			var a = $(this).attr('action');			$(this).submit(function() {				URCHIN?urchinTracker(tag):pageTracker._trackEvent('form', 'submit', tag);				if(tag.indexOf("reservations")>0) {					$(this).attr({action:a+'?'+$(this).serialize(), method:'post'});					URCHIN?__utmLinkPost(this):pageTracker._linkByPost(this);				}			});		} else {			$(this).click(function(e) {				URCHIN?urchinTracker(tag):pageTracker._trackPageview(tag);				if(tag.indexOf("reservations")>0) {					e.preventDefault();					var l = URCHIN?__utmLinkerUrl(this.href):pageTracker._getLinkerUrl(this.href);					$(this).attr('target')=='_blank'?window.open(l,''):window.location=l;				}			});		}	});	// Finds a form on the page, instantiates a Calendar Popup and hides "other" fields if necessary	$(this).find("form").each(function() {		if ( window.CalendarPopup ) {			// instantiate CalendarPopup and set some params						// Sets starting date by yesterdays date			var yesterday = new Date();			yesterday.setDate( yesterday.getDate() - 1 );						// new instance of Calendar popup			cal = new CalendarPopup( "cp" );			cal.addDisabledDates( null, formatDate( yesterday, "MM/dd/yyyy" ) );						// create the <div> for calendar popup			$("body").append("<div id=\"cp\"></div>");		}		//set focus background color for IE		if (document.all) {			$(".textfield").focus(function() {				$(this).css({background: "fdfcfa"});			});			$(".textfield").blur(function() {				$(this).css({background: "ffffff"});			});		}		// hide all "other" fields		$("ul.checkboxgroup input.other").filter(".textfield").hide();		$("ul.checkboxgroup input").click(function() {			// if the input has a class of other, show it's "other" field			if ($(this).is(".other")){				$(this).siblings(".other").show().addClass("required");				// if it's a checkbox, remove the "other" field when it is unchecked				if (!this.checked) {					$.removeWarning($(this));					$(this).siblings(".other").filter(".textfield").hide().removeClass("required");				}			}			// if it's a radio button group, hide "other" fields if not needed			else if ($(this).is(".radio")) {				$.removeWarning($(this));				$(this).parent().parent().find(".other").filter(".textfield").hide().removeClass("required");			}		});		// hide all "select-other" divs		$("div.select-other").hide();		// if "Other" is selected, then show it's "other" field		$("select.select-other").change( function () {			if($(this).val() == "--") {				$(this).parent().next().show();				$(this).parent().next().find("label").addClass("required");				$(this).parent().next().find("input").addClass("required");			} else {				$(this).parent().next().hide().find("input").val("").removeClass("required");			}		});	});// Input Elements that need a calendar popup, but no calendar Icon, need a class of "makeitpopup"	$(".makeitpopup").click(function() {		cal.select( this, this.id, "MM/dd/yyyy" );		return false;	});// Finds all elements with a class of "form-cal" and replaces them with a calendar icon, link, and onclick handler	$(this).find(".form-cal").each(function(i) {		var icon = '<a href="#" class="icon-cal" id="form-cal-' + i + '" name="form-cal-' + i + '" title="Click to select a date"><img src="/images/icon-cal.gif" /></a>';		$(icon).appendTo($(this).parent()).click(function(){			//hide all dropdowns for IE6 and lower			if (document.all && window.ActiveXObject && !window.opera) { $(this).parents("form").find("select").css("visibility","hidden"); }			var o = this.previousSibling;			while (o.nodeType != 1) { o = o.previousSibling; }						// check to see if it is an arrival/departure pair			if($(o).is(".date-end")) {				var arrive_string = $(o).parent().prev(".field").children(".date-begin").attr("value");				var arrive_label = $(o).parent().prev(".field").children("label").html().replace(":","");				//check to see if begin date has been set already and adjust disabled/current dates				if (arrive_string != "mm/dd/yyyy" && arrive_string) {					var arrive_array = arrive_string.split('/');					var arrive_date = new Date(arrive_array[0]+'/'+arrive_array[1]+'/'+arrive_array[2]);					var arrive_date = formatDate(arrive_date, "MM/dd/yyyy" );					cal.clearDisabledDates();					cal.addDisabledDates( null, arrive_date );					cal.select(o,$(this).attr("id"),"MM/dd/yyyy", arrive_date);					return false;				}				// begin date not set first, so pull label text and alert				else {					alert("Please select \"" + arrive_label + "\" first");					if (document.all && window.ActiveXObject && !window.opera) { $(this).parents("form").find("select").css("visibility","visible"); }					return false;				}			}			// it's just a plain calendar popup			else {				cal.clearDisabledDates();				var yesterday = new Date();				yesterday.setDate( yesterday.getDate() - 1 );				cal.addDisabledDates( null, formatDate( yesterday, "MM/dd/yyyy" ) );				cal.select( o,$(this).attr("id"), "MM/dd/yyyy", yesterday );				return false;			}		});		$(this).remove();	});// Validates the form, adding warning icons where needed and alerting user upon completion	$(".validate").submit(function() {	    var form = $(this), counter = 0, first_error = "";				// find all elements with class name of "required" within all divs with a class of field		$(this).find("div.field .required").each(function() { 			// remove any previous warnings and validate based on element type			$.removeWarning($(this));			if ( ($(this).is("input")) || ($(this).is("select")) || ($(this).is("textarea")) ) {				var valid = true;				var o = $(this).val().replace(/^\s+|\s+$/g, '');				if ($(this).is(".email")) {					// if it's an email address make sure the email is valid using both regular expressions					var regExp = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/;					var regExp2 = /(\s+)|(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;					if ( ( o.search( regExp ) ) == -1 || o.search( regExp2 ) != -1 ) {						valid = false;					}				} 				else if ($(this).is(".select-other") && $(this).val() == "--" && $(this).parent().next().find("input").val().replace( /(^\s+)|(\s+$)/g, '' ).length < 1 ) {					$.addWarning($(this).parent().next().find("input"));				} 				else if ( ($(this).next().is(".icon-cal")) && (o.replace( /(^\s+)|(\s+$)/g, '' ).length < 1 || o == "mm/dd/yyyy") ) {					// if it's a date field					valid = false;				} 				else if (o.replace( /(^\s+)|(\s+$)/g, '' ).length < 1) {					// if not an email address take out funky characters and see if its still blank					valid = false;				}				// if the data is not valid show warning icon				if (!valid) {					$.addWarning($(this));					counter++;					if ( first_error == "" ) {						first_error = $(this).attr("id");					}						}							}			else if ( $(this).is("ul") ) {				// This is for checkboxes				$(this).each(function() { 					// find all elements w/required class name					var valid = false;					$(this).find("li").each(function() {						// checkboxes in the list						var testdis = $(this).children("input");						//if not an "other" pair						if ( testdis.length == 1 ) {							if ( $(testdis).attr("checked") == true ) {								valid = true;							}						}						//it is an "other"						else {							if ( $(testdis[0]).attr("checked") && $(testdis[1]).val().replace( /(^\s+)|(\s+$)/g, '' ).length > 0 ) {								valid = true;							}						}					});					if(!valid) { 						$.addWarning($(this));						counter++;						if ( first_error == "" ) {							first_error = $(this).attr("id");						}					}				});						}		});		if ( counter > 0 ) {			alert( "A valid " + $('#'+first_error).parent().children('label').html().replace(":","").replace("*","") + " is required." );			$('#'+first_error).focus();			return false;		}			});// Removes the Warning Icon	jQuery.removeWarning = function(el) {		// find img elements, if it's present, remove it		$(el).parents(".field").find("img.validation-error").remove();	};	// Adds the Warning Icon	jQuery.addWarning = function(el) {		var img = "<img />";		// adds the source and class attributes		img = $(img).attr("src", "/images/icon-warning.gif").addClass("validation-error");			// Add the image after the input field		// if el is part of checkbox group put it after the first list item		if( $(el).is("ul") ) {			$(el).find("li:first").append(img);		}		// if not throw it at the end		else {			$(el).parent().append(img);		}	};});// Expand collapse function; Call it in special.js(function($) {		$.fn.expand = function(options) {		var defaults = {			openText: 'View Details',			closeText: 'Hide Details',			longClass: '.package-long'		};		var opts = $.extend(defaults, options);		return this.each(function() {			var obj = $(this);			var tog = $('<div />').addClass('toggle');			var control = $('<a />').attr('href', '#')							.addClass('toggler')							.html(opts.openText)							.appendTo(tog)							.toggle(function() { $(opts.longClass, obj).slideDown('slow'); $(this).html(opts.closeText).addClass('open'); },									function() { $(opts.longClass, obj).slideUp('slow'); $(this).html(opts.openText).removeClass('open'); });						$(opts.longClass, obj).after(tog).hide();		});	};		$.fn.eventPreview = function(options) {		var defaults = {			hideDetails : 'Hide Details',			viewDetails : 'View Details'		},		opts = $.extend(defaults, options);		return this.each(function() {			$('.event-details a', this).toggle(function() {				var el = $(this);				$.get('/includes/event-calendar-details.php', { event_id: this.id.substr(3) },function(data) { 					el.text(opts.hideDetails).parent().addClass('active').parent().children('.event-description').hide().html(data).slideDown('slow');				});				return false;								   			},function() { 				$(this).text(opts.viewDetails).parent().removeClass('active').parent().children('.event-description').slideUp('slow', function() { 						$(this).html(''); 					});				return false;								   			});		});	};	$.fn.packagePreview = function(options) {		var defaults = {			hideDetails : 'Hide Details',			viewDetails : 'View Details'		},		opts = $.extend(defaults, options);		return this.each(function() {			$('.package-details a', this).toggle(function(event) {				event.preventDefault();				$('.share-panel').hide();				var el = $(this);				$.get('/package-details.php', { package_id: this.id.substr(3), channel: this.rel, lang: 'en' },function(data) { 					el.html(opts.hideDetails).parent().addClass('active').parents('.package-wrapper').find('.package-long').hide().html(data).slideDown('slow');				});			},function(event) { 				event.preventDefault();				$('.share-panel').hide();				$(this).html(opts.viewDetails).parent().removeClass('active').parents('.package-wrapper').find('.package-long').slideUp('slow', function() { 					$(this).html(''); 				});			});		});	};})(jQuery);function y2k(number) { return (number < 1000) ? number + 1900 : number; }// Gets the Difference Between 2 Datesfunction daysElapsed(date1,date2) {    var difference =        Date.UTC(y2k(date1.getYear()),date1.getMonth(),date1.getDate(),0,0,0)      - Date.UTC(y2k(date2.getYear()),date2.getMonth(),date2.getDate(),0,0,0);    return difference/1000/60/60/24;}function getDateDiff(start,end){	if(document.getElementById(start).value != 'mm/dd/yyyy' && document.getElementById(start).value != '' && document.getElementById(end).value != 'mm/dd/yyyy' && document.getElementById(end).value != ''){		// Get the Start and End Date and split the dates based on the slash and put in dashes		start_date = document.getElementById(start).value;		start_array = start_date.split('/');		new_start_date = start_array[2]+'-'+start_array[0]+'-'+start_array[1];		end_date = document.getElementById(end).value;		end_array = end_date.split('/');		new_end_date = end_array[2]+'-'+end_array[0]+'-'+end_array[1];				// Call daysElapsed function to get difference between 2 dates		var dayDiff = daysElapsed(new Date(end_array[2],(end_array[0]-1),end_array[1]),new Date(start_array[2],(start_array[0]-1),start_array[1]));		return dayDiff;	}	else {		return;	}}//set day name abbreviations to usevar daynames = Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');function createRoomBlock(start,days) {	//Removes Any Previous Tbodies Created	$("#block-details").remove();	var start_date = document.getElementById(start).value;	var start_array = start_date.split('/');	// Creates a Tbody element	var tbody = '<tbody id="block-details">';	// For Each Number of Days that need information a row is created for each	for(var i=0; i<=days; i++)	{		temp_date = new Date(start_array[2],(start_array[0]-1),(parseInt(start_array[1],10)+i));		dayname = daynames[temp_date.getDay()];		month = temp_date.getMonth() + 1;		day = temp_date.getDate();		//year = temp_date.getFullYear();		//temp_date = month + "/" + day + "/" + year;		temp_date = month + "/" + day;				// Create a row with a cell for the day, one for each room type, and one for the total		tbody += '<tr>\n\			<th scope="row">' + dayname + ', ' + temp_date + '</th>\n\			<td><input type="text" class="textfield day_' + (i+1) + ' single" maxlength="5" onchange="calcTotal(this);" value="0" id="single_rooms_day_' + (i+1) + '" name="room_block[day_' + (i+1) + '][single]" /></td>\n\			<td><input type="text" class="textfield day_' + (i+1) + ' dbl" maxlength="5" onchange="calcTotal(this);" value="0" id="dbl_rooms_day_' + (i+1) + '" name="room_block[day_' + (i+1) + '][dbl]" /></td>\n\			<td><input type="text" class="textfield day_' + (i+1) + ' suite" maxlength="5" onchange="calcTotal(this);" value="0" id="suite_rooms_day_' + (i+1) + '" name="room_block[day_' + (i+1) + '][suite]" /></td>\n\			<td><input type="text" class="textfield" readonly="readonly" disabled="disabled" value="0" id="day_' + (i+1) + '_total" name="room_block[day_' + (i+1) + '][total]" /></td>\n\			</tr>';	}	//Add the totals row	tbody += '<tr><th scope="row">Room Total</th>\n\		<td><input type="text" class="textfield" readonly="readonly" disabled="disabled" value="0" id="single_rooms_total" name="room_block[single][total]" /></td>\n\		<td><input type="text" class="textfield" readonly="readonly" disabled="disabled" value="0" id="dbl_rooms_total" name="room_block[dbl][total]" /></td>\n\		<td><input type="text" class="textfield" readonly="readonly" disabled="disabled" value="0" id="suite_rooms_total" name="room_block[suite][total]" /></td>\n\		<td><input type="text" class="textfield" readonly="readonly" disabled="disabled" value="0" id="total_rooms" name="total_rooms" /></td>\n\		</tr>';		//add tbody to existing table	$(tbody).appendTo("#block-requirements");}function createMeetingRooms(start,days) {	//Removes Any Previous Tbodies Created	$("#meeting-details").remove();	var start_date = document.getElementById(start).value;	var start_array = start_date.split('/');	// Creates a Tbody elemnt	var tbody = '<tbody id="meeting-details">';	// For Each Number of Days that need information a row is created for each	for(var i=0; i<=days; i++)	{		temp_date = new Date(start_array[2],(start_array[0]-1),(parseInt(start_array[1],10)+i));		dayname = daynames[temp_date.getDay()];		month = temp_date.getMonth() + 1;		day = temp_date.getDate();		//year = temp_date.getFullYear();		//temp_date = month + "/" + day + "/" + year;		temp_date = month + "/" + day;				// Create a row with a cell for the day, room type and breakout room info		tbody += '<tr>\n\			<th scope="row">' + dayname + ', ' + temp_date + '</th>\n\			<td><select name="meeting_requirements[day_' + (i+1) + '][room_setup]">\n\				<option value="Classroom" name="meeting_requirements[day_' + (i+1) + '][room_setup]">Classroom</option>\n\				<option value="Boardroom" name="meeting_requirements[day_' + (i+1) + '][room_setup]">Boardroom</option>\n\				<option value="Theater" name="meeting_requirements[day_' + (i+1) + '][room_setup]">Theater</option>\n\				<option value="U-Shaped" name="meeting_requirements[day_' + (i+1) + '][room_setup]">U-Shaped</option>\n\				<option value="Hollow Sq." name="meeting_requirements[day_' + (i+1) + '][room_setup]">Hollow Sq.</option>\n\				<option value="Rounds" name="meeting_requirements[day_' + (i+1) + '][room_setup]">Rounds</option>\n\				<option value="Reception" name="meeting_requirements[day_' + (i+1) + '][room_setup]">Reception</option>\n\				</select></td>\n\			<td><input type="text" class="textfield" maxlength="5" id="breakout_rooms_day_' + (i+1) + '" name="meeting_requirements[day_'+(i+1)+'][breakout_rooms]" /></td>\n\			<td><input type="text" class="textfield" maxlength="5" id="breakout_people_day_' + (i+1) + '" name="meeting_requirements[day_'+(i+1)+'][breakout_people]" /></td>\n\			<td><select name="meeting_requirements[day_' + (i+1) + '][breakout_setup]">\n\				<option value="Classroom" name="meeting_requirements[day_' + (i+1) + '][breakout_setup]">Classroom</option>\n\				<option value="Boardroom" name="meeting_requirements[day_' + (i+1) + '][breakout_setup]">Boardroom</option>\n\				<option value="Theater" name="meeting_requirements[day_' + (i+1) + '][breakout_setup]">Theater</option>\n\				<option value="U-Shaped" name="meeting_requirements[day_' + (i+1) + '][breakout_setup]">U-Shaped</option>\n\				<option value="Hollow Sq." name="meeting_requirements[day_' + (i+1) + '][breakout_setup]">Hollow Sq.</option>\n\				<option value="Rounds" name="meeting_requirements[day_' + (i+1) + '][breakout_setup]">Rounds</option>\n\				<option value="Reception" name="meeting_requirements[day_' + (i+1) + '][breakout_setup]">Reception</option>\n\				</select></td>\n\			</tr>';	}	//add tbody to existing table	$(tbody).appendTo("#meeting-requirements");}function calcTotal(field) {	//make sure a number was entered	$(field).attr("value",(isNaN(parseInt(field.value,10))?0:parseInt(field.value,10)));	var day_total = 0;	var room_total = 0;	var temp = field.name.split("][");	var day_num = temp[0].substring(temp[0].indexOf('[')+1,temp[0].length);	var room_type = temp[1].substring(0,temp[1].length-1);	//calculate daily and room type total	$("input." + day_num).each(function(){ day_total += parseInt(this.value,10); });	$("input." + room_type).each(function(){ room_total += parseInt(this.value,10); });		//set total fields	$("#" + day_num + "_total").attr("value",day_total);	$("#" + room_type + "_rooms_total").attr("value",room_total);	$("#total_rooms").attr("value",parseInt($("#single_rooms_total").attr("value"),10)+parseInt($("#dbl_rooms_total").attr("value"),10)+parseInt($("#suite_rooms_total").attr("value"),10));}function openPreview(urlrequest) {	window.open(urlrequest, 'myWindow', 'width=800,height=600,left=100,top=100,toolbar=No,location=No,scrollbars=No,status=No,resizable=No,fullscreen=No');	document.getElementById('flashCallBox').value = urlrequest;}