$(function() {	//Global variables	for(var i in $.browser) {		if ($.browser[i])			BROWSER = i + (($.browser.msie)?$.browser.version.charAt(0):'');	}		var openLink = function( url,target ) {		if(target=='_blank') {			var winRef = window.open(url,'');			winRef.focus();		}		else {			window.location.href=url;		}	}	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;				}			});		}	});});(function($) {	$.fn.initializeForm = function(options) {		var defaults = {			calText: 'Click to select a date',			dateFormat: 'mm/dd/yyyy'		},		opts = $.extend(defaults, options);		return this.each(function() {			var form = $(this);						if(BROWSER=='msie6'||BROWSER=='msie7') {				$(".textfield")					.focus(function() { $(this).css({backgroundColor: "#fdfcfa"}); })					.blur(function() { $(this).css({backgroundColor: "#ffffff"}); });						}						$(".date-picker", form).each(function() {				$(this).datepicker({ 					beforeShow: setDatePicker,					buttonImage: "/images/icon-cal.gif", 					buttonImageOnly: true ,					buttonText: opts.calText, 					changeMonth: true,					changeYear: true,					duration: "fast",					gotoCurrent: true,					hideIfNoPrevNext: true,					showOn: "both",					showAnim: "blind",					yearRange: '-0:+5'				});								if($(this).val()==opts.dateFormat) {					$(this).val('');				}				else {					if($(this).hasClass('date-end')&&$(this).hasClass('update-blocks'))						getRange(this);				}			}).attr("readonly", "readonly");						// hide all "other" fields			$("ul.checkboxgroup input.other", form).not(':radio, :checkbox').hide();			$("ul.checkboxgroup input:not(:text)", form).click(function() {				if($(this).hasClass('other')) {					$(this).siblings().addClass('required').show();					if(!$(this).is(':checked')) {						$('.validation-error', $(this).parents('ul')).removeError(form);						$(this).siblings().removeClass('required').filter(':text').hide();					}				} else if($(this).is(':radio')) {					$('.validation-error', $(this).parents('ul')).removeError(form);					$('.other', $(this).parents('ul')).siblings().removeClass('required').filter(':text').hide();				}			});						$("div.select-other", form).hide();			// if "Other" is selected, then show it's "other" field			$("select.select-other", form).change( function () {				var el = $(this).parent().next()				if($(this).val() == "--") {					el.show().children('label, input').addClass("required");				} else {					el.hide().children().removeClass("required").find("input").val("");					$('.validation-error', el).removeError(form);				}			});		});	};		$.fn.formValidate = function(options) {		var defaults = {			errorStart: 'A valid ',			errorEnd: ' is required.'		},		opts = $.extend(defaults, options);		return this.each(function() {			var form = $(this);			$('.submit', form).click(function() {				var _errors = '';				//Removes validation errors from previous submit				$('.validation-error', form).removeError(form);									$('.required:not(label)', form).each(function() {					var valid = true;										if($(this).is(':input')) {						var o = $.trim($(this).val());												if($(this).hasClass('email')) {							// if it's an email address make sure the email is valid using both regular expressions							valid = /^[a-z0-9_+.-]+\@(?:[a-z0-9-]+\.)+[a-z0-9]{2,4}$/i.test(o);							if($(this).hasClass('confirm-email')&&valid) {								var prev = $.trim($(this).parents('.field').prev().children('.email').val());								if(o!=prev)									valid=!valid;							}						} 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 = !valid;						}					} else if($(this).is('ul')) {						valid = false;												$(':radio, :checkbox', this).each(function() {							if($(this).is(':checked'))								valid = true;						});					}										if(!valid) {						if(form.hasClass('inline')) {							$(this).parents('.field').children('label').addClass('validation-error');						} else {							var warn = $('<img />').attr('src', '/images/icon-warning.gif').addClass('validation-error');														if( $(this).is('ul') )								$('li:first', this).append(warn);							else 								$(this).parent().append(warn);						}																			if(_errors == '')							_errors = $(this).attr("id");					}				});				 if ( $(form).is('#signup') ) {					var updates = document.getElementById('email_updates');					//if (updates.checked == true) {						var first = document.getElementById('first_name').value;						var last = document.getElementById('last_name').value;						var email = document.getElementById('email_address').value;						var zip = document.getElementById('zip').value;						window.open('http://www.destinationdelivers.com/signup.aspx?firstname='+first+'&lastname='+last+'&email='+email+'&zip='+zip+'&campaign=2');					//}				 } 				if(_errors.length) {					var lbl = $('#'+_errors).parents('.field').children('label');					if(lbl[0].title.length)						alert(lbl[0].title);					else 						alert( opts.errorStart + lbl.html().replace(/[*:]/g, '') + opts.errorEnd );					$('#'+_errors, form).focus();					return false;							} 			});		});	};		$.fn.expand = function(options) {		var defaults = {			openText: 'View Details',			closeText: 'Hide Details',			longClass: '.package-long'		},		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.removeError = function(form) {		return this.each(function() {			if(form.hasClass('inline'))				$(this).removeClass('validation-error');			else				$(this).remove();		});	};		$.fn.ajaxCalendar = function(options) {		var overlay = $('<div />').attr('id','overlay').css({width:$('#calendar-wrapper').width(),height:$('#calendar-wrapper').height(),opacity:0.5});		overlay.prependTo('#calendar-wrapper');		$(this).eventPreview();		$(this).initializeSharing();		return this.each(function() {			$('#calendar-wrapper a').live('click',function(event) {				event.preventDefault();				overlay.fadeIn('fast');				url = this.href.split('?');				$.get('/direct/events-calendar-ajax.php?' + url[1], { op: 'cal' },function(data) { 					$('#calendar-wrapper').html(data).prepend(overlay);					overlay.css({height:$('#calendar-wrapper').height()});				});				$.get('/direct/events-calendar-ajax.php?' + url[1], { op: 'list' },function(data) { 					$('#events-wrapper').html(data);					overlay.fadeOut('fast');				});			});		});	};	$.fn.eventPreview = function(options) {		var defaults = {			hideDetails : '<em class="alt">Hide Details</em>',			viewDetails : '<em class="alt">View Details</em>'		},		opts = $.extend(defaults, options);		return this.each(function() {			 if ( !$('.view-details').data('triggered') ) {				//$('.view-details').live('click',function(event) {				$('.view-details').click(function(event) {					event.preventDefault();					$('.share-panel').hide();					if ($(this).parent().hasClass('active')) {						//$(this).html(opts.viewDetails).parent().removeClass('active').parent().parent().children('.event-description').slideUp('slow', function() { 						$(this).html(opts.viewDetails).parent().removeClass('active').parent().parent().children('.event-description').show().html('')					}					else {						var el = $(this);						var temp = this.rel.split(':');						$.get('/direct/events-calendar-ajax.php', { permalink: temp[0], rssfeed: temp[1], lang: LANG, op: 'details' },function(data) { 							el.html(opts.hideDetails).parent().addClass('active').parent().parent().children('.event-description').hide().html(data).show();						});					}				});				$('.view-details').data('triggered', true);			 }		});	};	$.fn.postPreview = function(options) {		var defaults = {			hideDetails : 'Hide Full Post',			viewDetails : 'View Full Post'		},		opts = $.extend(defaults, options);		return this.each(function() {			$('.post-details a', this).toggle(function(event) {				event.preventDefault();				$('.share-panel').hide();				var el = $(this);				$.get('/direct/scrapbook-details.php', { event_id: this.id.substr(3), channel: this.rel, lang: LANG },function(data) { 					el.html(opts.hideDetails).parent().addClass('active').parent().children('.post-description').hide().html(data).slideDown('slow');				});			},function(event) { 				event.preventDefault();				$('.share-panel').hide();				$(this).html(opts.viewDetails).parent().removeClass('active').parent().children('.post-description').slideUp('slow', function() { 					$(this).html(''); 				});			});		});	};        $.fn.travelPostPreview = function(options) {        var defaults = {            hideDetails : 'Hide Full Post',            viewDetails : 'View Full Post'        },        opts = $.extend(defaults, options);        return this.each(function() {            $('.travel-post-details a', this).toggle(function(event) {                event.preventDefault();                $('.share-panel').hide();                var el = $(this);                $.get('/direct/travel-scrapbook-details.php', { event_id: this.id.substr(3), channel: this.rel, lang: LANG },function(data) {                     el.html(opts.hideDetails).parent().addClass('active').parent().children('.post-description').hide().html(data).slideDown('slow');                });            },function(event) {                 event.preventDefault();                $('.share-panel').hide();                $(this).html(opts.viewDetails).parent().removeClass('active').parent().children('.post-description').slideUp('slow', function() {                     $(this).html('');                 });            });        });    };	$.fn.packagePreview = function(options) {	    if ( !arguments.callee.done ) {		arguments.callee.done=1;		var defaults = {			hideDetails : '<em class="alt">Hide Details</em>',			viewDetails : '<em class="alt">View Details</em>'		},		opts = $.extend(defaults, options);		return this.each(function() {		    window.a=this;			$('.package-details a', this).toggle(function(event) {				event.preventDefault();				$('.share-panel').hide();				var el = $(this);				$.get('/direct/package-details.php', { package_id: this.id.substr(3), channel: this.rel, lang: LANG },function(data) { 					el.html(opts.hideDetails).parent().addClass('active').parent().find('.package-long').hide().html(data).slideDown('slow');				});			},function(event) { 				event.preventDefault();				$('.share-panel').hide();				$(this).html(opts.viewDetails).parent().removeClass('active').parent().find('.package-long').slideUp('slow', function() { 					$(this).html(''); 				});			});		});	    }	};	$.fn.initializeSharing = function() {	    if ( !arguments.callee.done ) {		arguments.callee.done=1;		return this.each(function() {			$('.share-link').live('click',function(event) {				event.preventDefault();				$('.share-panel').hide();				$(this).parents('.rss-item').find('.share-panel').css('display','inline');			});			$('.share-close').live('click',function(event){				event.preventDefault();				$(this).parents('.rss-item').find('.share-panel').slideUp('fast');			});		});	    }	};	$.fn.initializeFollowing = function() {		return this.each(function() {			$('.follow-link').click(function(event) {				event.preventDefault();				$('.follow-panel').hide();				$(this).siblings('.follow-panel').css('display','inline');			});			$('.follow-close').click(function(event){				event.preventDefault();				$(this).parent('.follow-panel').slideUp('fast');			});		});	};})(jQuery);function setDatePicker(input) {	if(($(input).hasClass('date-begin')||$(input).hasClass('date-end'))&&$(input).hasClass('update-blocks')){		return {			minDate: ( setDates(input, 1) ), 			maxDate: ( setDates(input, 0) ),			onClose: function() { getRange(input); }		}; 	} else if(($(input).hasClass('date-begin')||$(input).hasClass('date-end'))&&$(input).hasClass('netbooker')){		return {			minDate: ( setDates(input, 1) ), 			maxDate: ( setDates(input, 0) ),			onSelect: function() { splitDates(input); }		}; 	} else if($(input).hasClass('date-begin')||$(input).hasClass('date-end')) {		return {			minDate: ( setDates(input, 1) ), 			maxDate: ( setDates(input, 0) )		};					} } 	function setDates(input, minDate) {	if( ($(input).hasClass('date-begin') && !$('.date-end', $(input).parent().next()).length) ||		($(input).hasClass('date-end') && !$('.date-begin', $(input).parent().prev()).length) ) {		return minDate ? new Date() : null;	} else if( $(input).hasClass('date-begin') ) {		return minDate ? new Date() : ($('.date-end', $(input).parent().next()).datepicker("getDate") ? new Date($('.date-end', $(input).parent().next()).datepicker("getDate").getTime() - 1000*60*60*24) : null);	} else if( $(input).hasClass('date-end') ) {		return minDate ? ($('.date-begin', $(input).parent().prev()).datepicker("getDate") ? new Date($('.date-begin', $(input).parent().prev()).datepicker("getDate").getTime() + 1000*60*60*24) : '+1d' ) : null;	}}function splitDates(input) {	var start = $(input).hasClass('date-end')?$('.date-begin', $(input).parent().prev()).datepicker("getDate"):$(input).datepicker("getDate");	var end = $(input).hasClass('date-end')?$(input).datepicker("getDate"):$('.date-end', $(input).parent().next()).datepicker("getDate");	if($(input).hasClass('date-begin')) {		$('#arriveMonth').val( $.datepicker.formatDate('mm', $(input).datepicker("getDate")) );		$('#arriveDay').val( $.datepicker.formatDate('dd', $(input).datepicker("getDate")) );		$('#arriveYear').val( $.datepicker.formatDate('yy', $(input).datepicker("getDate")) );	}	if($(input).hasClass('date-end')) {		$('#departMonth').val( $.datepicker.formatDate('mm', $(input).datepicker("getDate")) );		$('#departDay').val( $.datepicker.formatDate('dd', $(input).datepicker("getDate")) );		$('#departYear').val( $.datepicker.formatDate('yy', $(input).datepicker("getDate")) );	}		if(start&&end) {		var one_day=1000*60*60*24;		var days = Math.ceil((end.getTime()-start.getTime())/(one_day))			$('#numberOfNights').val(days);	}}function getRange(el) {	var form = $(el).parents('form');	var start = $(el).hasClass('date-end')?$('.date-begin', $(el).parent().prev()).datepicker("getDate"):$(el).datepicker("getDate");	var end = $(el).hasClass('date-end')?$(el).datepicker("getDate"):$('.date-end', $(el).parent().next()).datepicker("getDate");	if(start&&end) {		var one_day=1000*60*60*24;		var days = Math.ceil((end.getTime()-start.getTime())/(one_day))			$('#room-requirements').show();		createBlock(start, days, form);		createMeeting(start, days, form);	}}function createBlock(date, days, form) {	$("#block-details", form).remove();	var tbody = $('<tbody />').attr('id', 'block-details');		for(var i=0; i<=days; i++) {		var newDate = $.datepicker.formatDate('D, m/d', new Date(date.getFullYear(), date.getMonth(), date.getDate()+i) );				tbody.append('<tr>\n\					<th scope="row">' + newDate + '</th>\n\					<td><input type="text" class="textfield single" maxlength="5" value="0" id="single_rooms_day_' + (i+1) + '" name="room_block[day_' + (i+1) + '][single]" /></td>\n\					<td><input type="text" class="textfield dbl" maxlength="5" value="0" id="dbl_rooms_day_' + (i+1) + '" name="room_block[day_' + (i+1) + '][dbl]" /></td>\n\					<td><input type="text" class="textfield suite" maxlength="5" value="0" id="suite_rooms_day_' + (i+1) + '" name="room_block[day_' + (i+1) + '][suite]" /></td>\n\					<td><input type="text" class="textfield readonly day-total" readonly="readonly" value="0" id="day_' + (i+1) + '_total" name="room_block[day_' + (i+1) + '][total]" /></td>\n\					</tr>');	}	//Add the totals row	tbody.append('<tr><th scope="row">Room Total</th>\n\		<td><input type="text" class="textfield readonly" readonly="readonly" value="0" id="single_rooms_total" name="room_block[single][total]" /></td>\n\		<td><input type="text" class="textfield readonly" readonly="readonly" value="0" id="dbl_rooms_total" name="room_block[dbl][total]" /></td>\n\		<td><input type="text" class="textfield readonly" readonly="readonly" value="0" id="suite_rooms_total" name="room_block[suite][total]" /></td>\n\		<td><input type="text" class="textfield readonly" readonly="readonly" value="0" id="total_rooms" name="total_rooms" /></td>\n\		</tr>');	//add tbody to existing table	$("#block-requirements", form).append(tbody);	$('td input:not(.readonly)', tbody).focus(function() { $(this).val(''); })				  .blur(function() { if($(this).val()=='') $(this).val(0); })				  .change(function() { calcTotal(this); });}function createMeeting(date, days, form) {	$("#meeting-details", form).remove();	var tbody = $('<tbody />').attr('id', 'meeting-details');		// For Each Number of Days that need information a row is created for each	for(var i=0; i<=days; i++) {		var newDate = $.datepicker.formatDate('D, m/d', new Date(date.getFullYear(), date.getMonth(), date.getDate()+i) );				// Create a row with a cell for the day, room type and breakout room info		tbody.append('<tr>\n\			<th scope="row">' + newDate + '</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	$("#meeting-requirements", form).append(tbody);}function calcTotal(field) {	var el = $('input[readonly]', $(field).parents('tr'));	var rowTotal = parseInt(el.val(), 10)+parseInt($(field).val(), 10);	el.val(rowTotal);		var index = $('input', $(field).parents('tr')).index(field);	el = $('input:eq('+index+')', $(field).parents('tbody').children('tr:last-child'));	var colTotal = parseInt(el.val(), 10) + parseInt($(field).val(), 10);	el.val(colTotal);		var total = 0;	$('.day-total').each(function() { total += parseInt($(this).val(), 10); });	$('#total_rooms').val(total);}function openPreview(urlrequest) {	window.open(urlrequest, 'myWindow', 'width=750,height=520,left=100,top=100,toolbar=No,location=No,scrollbars=No,status=No,resizable=No,fullscreen=No');	document.getElementById('flashCallBox').value = urlrequest;}