$(function() {
// Remove javascript warning
	
	/*$("div#content div.buttons input.cartcontinue").after('<a href="index.php?op=view"><img src="images/buttons/continue-shopping2.gif" alt="Continue Shopping" /></a>').remove();
	$("div#content form#form-checkout input.cartcontinue").after('<a href="index.php?op=view"><img src="images/btn-continue-shopping.gif" alt="Continue Shopping" /></a>').remove();
	$("table.cart input.cartcheckout").after('<input type="image" name="checkout" src="images/btn-check-out.gif" alt="Checkout" />').remove();
	$("div#content div.buttons input.cartcheckout").after('<input type="image" name="checkout" src="images/buttons/checkout2.gif" alt="Checkout" />').remove();
	$("div.item-wrapper input[@type=submit]").after('<input type="image" src="images/buttons/add-to-cart.gif" class="add-to-cart-btn" />').remove();*/
	//$("form#big input.cartedit").after('<input type="image" name="editcart" src="images/buttons/edit-cart.gif" alt="Edit Cart" onclick="window.location.href=\'index.php?op=viewcart\'" />').remove();
	/*$("div#content form input.cartedit").after('<a href="index.php?op=viewcart"><img src="images/buttons/edit-cart.gif" alt="Edit Cart" /></a>').remove();*/
	//$("div#content form input.cartaddress").after('<input type="image" name="submit" src="images/buttons/proceed-to-address.gif" alt="Proceed to Address Information" />').remove();
	/*$("div#content form input.cartshipping").after('<input type="image" name="submit" src="images/buttons/proceed-to-shipping.gif" alt="Proceed to Shipping" />').remove();*/
/*	$("table.cart input[@name=update]").after('<input type="image" src="images/buttons/update.gif" class="cartbtn smaller" name="update" value="Update" />').remove();*/


// Finds a form on the page, instantiates a Calendar Popup and hides "other" fields if necessary
	var DOMAIN_TRACKING = '';
	
	if ( DOMAIN_TRACKING ) {
		var trackDomains = DOMAIN_TRACKING.split(',');
		for (var i=trackDomains.length-1;i>=0;i--) {
			$('a[href*="'+trackDomains[i]+'"], form[action*="'+trackDomains[i]+'"]').addClass('track-crossdomain');
		}
	}
	
	$('.track, .track-crossdomain').each(function() {
		var tag = '';
		if ( this.name ) {
			tag = '/'+this.name.replace(/:/g,'/');
		}
		if($(this).is('form')) {
			var a = $(this).attr('action');
			$(this).submit(function() {
				if (tag) { pageTracker._trackEvent('form', 'submit', tag); }
				if ( $(this).hasClass('track-crossdomain') ) {
					$(this).attr({action:a+'?'+$(this).serialize(), method:'post'});
					pageTracker._linkByPost(this);
				}
			});
		} else {
			$(this).click(function(e) {
				if (tag) { pageTracker._trackEvent('link','click', tag); }
				if ( $(this).hasClass('track-crossdomain') ) {
					e.preventDefault();
					var l = pageTracker._getLinkerUrl(this.href);
					$(this).attr('target')=='_blank'?window.open(l,''):window.location=l;
				}
			});
		}
	});

	$(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();
				if($(this).is(".required")) {
					$(this).parent().next().find("label").addClass("required");
					$(this).parent().next().find("input").addClass("required");
				}
			} else {
				$(this).parent().next().hide().find("input").val("");
			}
		});
	});

// 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 && typeof(window.XMLHttpRequest) == "function" && !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 && typeof(window.XMLHttpRequest) == "function" && !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();
	});

/*

	$("div.item-details").each(function() {
		$(this).find("div.description").hide();
		$(this).parent().find("div.item-details form").before('<a class="package-toggle" href="#">View Details</a>');
	});
	
	$("div.item-details a.package-toggle").toggle(function() {
		$(this).parents("div.item-details").find("div.description").animate({
			height: 'show',
			opacity: 'show'
		}, 'slow');
		$(this).html("Hide details");
	}, function() {
		$(this).parent().parent().find("div.description").animate({
			height: 'hide',
			opacity: 'hide'
		}, 'slow');
		$(this).html("View Details");
	});

*/
	
});

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));
}

