$(function(){	 
	/***
	 * Generic functions that come out of the box
	 */
	
	$("span.collapse-content").hide();
	$("a.collapse").click(function(){
		$(this).parents("div").children("span.collapse-content").slideToggle("slow");
		$(this).toggleClass("collapsed");
		$(this).parents("p.read-more").toggleClass("collapse-minus");
		($(this).hasClass("collapsed")) ? $(this).html("Hide") : $(this).html("Read More");
		
		return false;
	});
	
	/*E-mail Exclusives Input Clear*/
	$("input[name=EMAIL]").focus(function()
	{
		var $default = $(this).val();
		$(this).val("");		
		$(this).blur(function()
		{
			if($(this).val()=="")
				$(this).val($default);
		});
	});
	
	/*Lightbox Event Handler*/
	/* light_rounded / dark_rounded / light_square / dark_square / facebook */
	$("a.lightbox").prettyPhoto({
		theme: 'facebook'
	});

	
	
	/*Datepicker Event Handler*/
	$("a.datepickeropen").click(function(){		
		$("body").append('<div id="datepicker"><a href="javascript:void(0);" class="dp-close" style="float:right;">Close</a>&nbsp;</div>');		
		$("#datepicker").css({'display':'none','position':'absolute','z-index':'10000','left':$(this).offset().left,'top':$(this).offset().top});
		$("a.dp-close").click(function(){$("#datepicker").remove();});

		var opts;
		/*var arr = $(this).attr("rel").split("_");
		
		switch(arr[0])
		{
			case "res":
				opts = {
					minDate: 0, 
					maxDate: '+1Y',
					dateFormat:'m/dd/yy',
					onSelect: function(dateText){
						$("input[name="+arr[1]+"]").val(dateText);
						//$("input[name='arrive']").val(dateText);
						$("#endDate").datepicker('option','minDate',new Date(theDate))
						
						$("#datepicker").remove();
					}
					
				}				
			break;
			case "text":
				opts = {
					minDate: 1, 
					maxDate: '+1Y',	
					dateFormat:'m/dd/yy',
					onSelect: function(dateText){						
						//$("."+arr[1]).val(dateText);
						//$("input[name='depart']").val(dateText);
						
						$("#datepicker").remove();
					}
				}
			break;
		}*/
		var tempDate
		
		switch($(this).attr('id'))
		{
			case "checkin":
				opts = {
					minDate: 0, 
					maxDate: '+1Y',
					dateFormat:'m/dd/yy',
					onSelect: function(dateText){
						tempDate = new Date(dateText);
						//$("input[name="+arr[1]+"]").val(dateText);
						$("input[name='arrive']").val(dateText);
						// Update check in date visually. 
						$("select[name='checkin-month']").val(tempDate.getMonth()+1);
						$("select[name='checkin-day']").val(tempDate.getDate());
						$("#checkout").datepicker('option','minDate',new Date(dateText));
						$("input[name='nights']").val( returnReservationPeriod( $("input[name='arrive']").val(),$("input[name='depart']").val() ));
						$("input[name='year']").val(tempDate.getYear());
						$("#datepicker").remove();
					}
					
				}				
			break;
			case "checkout":
			 	opts = {
					minDate: 1, 
					maxDate: '+1Y',
					dateFormat:'m/dd/yy',
					onSelect: function(dateText){
						tempDate = new Date(dateText);
						//$("input[name="+arr[1]+"]").val(dateText);
						$("input[name='depart']").val(dateText);
						// Update check in date visually. 
						$("select[name='checkout-month']").val(tempDate.getMonth()+1);
						$("select[name='checkout-day']").val(tempDate.getDate());
						$("#checkin").datepicker('option','minDate',new Date(dateText));
						$("input[name='nights']").val( returnReservationPeriod( $("input[name='arrive']").val(),$("input[name='depart']").val() ));
						
						$("#datepicker").remove();
					}
					
				}				
			break;
		}
		
		$("#datepicker").datepicker(opts);		
		$("#datepicker").toggle();
		
		return false;
	});
	
	$("select[name='checkin-month']").change( function() {
		var myDate = new Date();
		var today = new Date();
		myDate.setFullYear( today.getFullYear(), $("select[name='checkin-month']").val()-1, $("select[name='checkin-day']").val());
		if( myDate < today )
		{
			myDate.setFullYear( today.getFullYear()+1, $("select[name='checkin-month']").val()-1, $("select[name='checkin-day']").val());
			$("input[name='year']").val(myDate.getFullYear());
		}
		else
		{
			$("input[name='year']").val(myDate.getFullYear());
		}
		$("input[name='arrive']").val( myDate.getMonth()+1 + '/' + myDate.getDate() + '/' + myDate.getFullYear() );
		$("input[name='nights']").val( returnReservationPeriod( $("input[name='arrive']").val(),$("input[name='depart']").val() ));
		
	});
	
	$("select[name='checkin-day']").change( function() {
		var myDate = new Date();
		var today = new Date();
		myDate.setFullYear( today.getFullYear(), $("select[name='checkin-month']").val()-1, $("select[name='checkin-day']").val());
		if( myDate < today )
		{
			myDate.setFullYear( today.getFullYear()+1, $("select[name='checkin-month']").val()-1, $("select[name='checkin-day']").val());
			$("input[name='year']").val(myDate.getFullYear());
		}
		else
		{
			$("input[name='year']").val(myDate.getFullYear());
		}
		$("input[name='arrive']").val( myDate.getMonth()+1 + '/' + myDate.getDate() + '/' + myDate.getFullYear() );
		$("input[name='nights']").val( returnReservationPeriod( $("input[name='arrive']").val(),$("input[name='depart']").val() ));
		
	});
	
	$("select[name='checkout-month']").change( function() {
		var myDate = new Date();
		var today = new Date();
		myDate.setFullYear( today.getFullYear(), $("select[name='checkout-month']").val()-1, $("select[name='checkout-day']").val());
		if( myDate < today )
		{
			myDate.setFullYear( today.getFullYear()+1, $("select[name='checkout-month']").val()-1, $("select[name='checkout-day']").val());
			$("input[name='year']").val(myDate.getFullYear());
		}
		else
		{
			$("input[name='year']").val(myDate.getFullYear());
		}
		$("input[name='depart']").val( myDate.getMonth()+1 + '/' + myDate.getDate() + '/' + myDate.getFullYear() );
		$("input[name='nights']").val( returnReservationPeriod( $("input[name='arrive']").val(),$("input[name='depart']").val() ));
		
	});
	
	$("select[name='checkout-day']").change( function() {
		var myDate = new Date();
		var today = new Date();
		myDate.setFullYear( today.getFullYear(), $("select[name='checkout-month']").val()-1, $("select[name='checkout-day']").val());
		if( myDate < today )
		{
			myDate.setFullYear( today.getFullYear()+1, $("select[name='checkout-month']").val()-1, $("select[name='checkout-day']").val());
			$("input[name='year']").val(myDate.getFullYear());
		}
		else
		{
			$("input[name='year']").val(myDate.getFullYear());
		}
		$("input[name='depart']").val( myDate.getMonth()+1 + '/' + myDate.getDate() + '/' + myDate.getFullYear() );
		$("input[name='nights']").val( returnReservationPeriod( $("input[name='arrive']").val(),$("input[name='depart']").val() ));
		
	});
	
	$("a.modal-link").click(function()
	{
		loadModal(780, "/layout/set/modal/"+$(this).attr("href"));
		return false;
	});
	
	/**
	 * End Generic Functions
	 */
});

function loadModal(mWidth,mURL)
{
	$("body").append('<div id="overlay">&nbsp;</div><div id="modal"><div id="modal-content" class="content"><img src="' + assets + 'images/spinner.gif"></div></div>');
	$("#overlay").css({width:$("body").width(),height:$(document).height()}).show();
	$("#modal").css({"top":($(document).scrollTop()+100),"left":($(window).width()/2)-(mWidth/2)});
	$("#modal").animate({"width":mWidth,"height":"50px"},250,function(){
		$("#modal-content").load(mURL,function(){
			$("#modal").animate({"height":$("#modal-content").outerHeight(true)},500,function(){
				$("#overlay").css({height:$(document).height()});
			});

			$("#overlay, #modal-content p.close a").click(function(){
				$("#modal").animate({"height":"50px"},500,function(){
					$("#modal-content").html("&nbsp");
					$("#modal").animate({"width":"0px","height":"0px"},500,function(){
						$("#modal").remove();
						$("#overlay").remove();
					});
				});
				return false;
			});
		});
	});
}

function returnReservationPeriod(input1, input2) {
    var date1 = new Date(input1);
    var date2 = new Date(input2);

    var minutes = 1000*60;
    var hours = minutes*60;
    var days = hours*24;

    var diff = Math.abs(date1.getTime() - date2.getTime());
    if ( diff > 0 )
    {
        return Math.round(diff / days);
    }
    else
    {
        return 1;
    }

    //return Math.round(diff / days);
}

