var curDate = new Date();
var curDay = curDate.getDate();
var curMonth = (curDate.getMonth() + 1);
var curYear = curDate.getFullYear();

var curDate2 = new Date();
var curDay2 = curDate2.getDate();
var curMonth2 = (curDate2.getMonth() + 1);
var curYear2 = curDate2.getFullYear();

function calendarRotate(direction,parent)
{
	curMonth += direction;
	if(curMonth > 12){
		curMonth = 1;
		curYear++;
	} else if(curMonth == 0){
		curMonth = 12;
		curYear--;
	}
	
	_in = ($(parent + ' div.checkIn').is(":visible")) ? parseInt( getDateFromID($('div.checkIn').children())) : null ;
	_out = ($(parent + ' div.checkOut').is(":visible")) ? parseInt( getDateFromID($('div.checkOut').children())) : null ;
	page = "calendarRotate";
	sid = Math.random();
	which = parent.replace(/#windrock-/,"");
	
	$.ajax({
		type: "POST",
		url: "/actions/rotateCalendar.php",
		dataType: "html",
		data: {month: curMonth, year: curYear, page: page, _in : _in, _out : _out, which : which },
		success: function(html){
			$(parent + ' .cal-wrap').html(html);
			initCalendar();
		}
	});
}

function calendarRotate2(direction2,parent)
{
	curMonth2 += direction2;
	if(curMonth2 > 12){
		curMonth2 = 1;
		curYear2++;
	} else if(curMonth2 == 0){
		curMonth2 = 12;
		curYear2--;
	}
	
	_in = ($(parent + 'div.checkIn').is(":visible")) ? parseInt( getDateFromID($('div.checkIn').children())) : null ;
	_out = ($(parent + 'div.checkOut').is(":visible")) ? parseInt( getDateFromID($('div.checkOut').children())) : null ;
	page = "calendarRotate";
	sid = Math.random();
	which = parent.replace(/#windrock-/,"");
	
	$.ajax({
		type: "POST",
		url: "/actions/rotateCalendar.php",
		dataType: "html",
		data: {month: curMonth2, year: curYear2, page: page, _in : _in, _out : _out, which : which },
		success: function(html2){
			$(parent + ' .cal-wrap').html(html2);
			initCalendar2();
		}
	});
}

function determine(victim, parent)
{
	// WE TEST IF USER CLICKS ON AN ALREADY DEFINDED CHECK IN / OUT DATE
	if( victim.parent().hasClass("checkIn") ){ return false; }
	if( victim.parent().hasClass("checkOut") ){ return false; }
	if( victim.parent().hasClass("booked") ){ displayMessage("Date is not available.", parent); return false; }
	if( victim.parent().hasClass("past") ){ displayMessage("Date is not available.", parent); return false; }
	
	if( ! victim.parent().siblings().hasClass("checkIn") ){
		victim.parent().addClass("checkIn").children().append("<span class='checkIn'></span>");
	}
	if( ! victim.parent().siblings().hasClass("checkOut") && victim.parent().siblings().hasClass("checkIn") ){
		victim.parent().addClass("checkOut").children().append("<span class='checkOut'></span>");
	}
	
	if($(parent + ' div.checkIn').is(":visible")){
		_in = parseInt( getDateFromID($(parent + ' div.checkIn').children()));
	}else{
		_in = null;
	}
	if($(parent + ' div.checkOut').is(":visible")){
		_out = parseInt( getDateFromID($(parent + ' div.checkOut').children()));
	}else{
		_out = null;
	}
	
	if( _in && _out )
	{	
		inClass = parseInt( $(parent + ' div.checkIn').attr('class').replace(/[^0-9]+/,"").replace(/[^0-9]+/,""));
		outClass = parseInt( $(parent + ' div.checkOut').attr('class').replace(/[^0-9]+/,"").replace(/[^0-9]+/,""));
		victimClass = parseInt( victim.parent().attr('class').replace(/[^0-9]+/,"").replace(/[^0-9]+/,""));
		
		if( victimClass <= inClass ){ $(parent + ' div.checkIn').removeClass('checkIn'); victim.parent().addClass('checkIn'); }
		if( victimClass >= outClass ){ $(parent + ' div.checkOut').removeClass('checkOut'); victim.parent().addClass('checkOut'); }
		
		inClass = parseInt( $(parent + ' div.checkIn').attr('class').replace(/[^0-9]+/,"").replace(/[^0-9]+/,""));
		outClass = parseInt( $(parent + ' div.checkOut').attr('class').replace(/[^0-9]+/,"").replace(/[^0-9]+/,""));
		_spanCount = outClass - inClass + 1;
	
		for( j = inClass; j <= outClass; j++ ){
			if( $(parent + ' div.D'+j ).hasClass('booked') ){
				$(parent + ' div.checkIn').removeClass('checkIn');
				$(parent + ' div.checkOut').removeClass('checkOut');
				$(parent + ' div.interval').removeClass('interval');
				displayMessage("Date range is unavailable.", parent);
				return false;
			}
		}
		
		if( _spanCount >= 8 )
		{
			displayMessage("Call 800-456-5481 for reservations", parent);
			$(parent + ' div.checkIn').removeClass('checkIn');
			$(parent + ' div.checkOut').removeClass('checkOut');
			$(parent + ' div.interval').removeClass('interval');
			return false;
		}
		//alert( "inClass: " + inClass + "  outClass: " + outClass + " spanCount: " + _spanCount + " victimClass: " + victimClass );
	
		victimDate = parseInt( getDateFromID(victim));
	
		if( victimClass < inClass ){ _in = victimDate; }
		if( victimClass > outClass ){ _out = victimDate; }
		if( victimClass >= inClass && victimClass <= outClass )
		{
			a = victimClass - inClass;
			b = outClass - victimClass;
			
			if( a < _spanCount / 2 ){ _in = victimDate; }
			else{ _out = victimDate; }
		}
		
		_in2 = new Array();
		_out2 = new Array();
		_in = _in.toString();
		_out = _out.toString();
		
		_in2['y'] = _in.substr(0,4);
		_in2['m'] = _in.substr(4,2);
		_in2['d'] = _in.substr(6,2);
		_out2['y'] = _out.substr(0,4);
		_out2['m'] = _out.substr(4,2);
		_out2['d'] = _out.substr(6,2);
		
		inDate = new Date(""+_in2['m']+"/"+_in2['d']+"/"+_in2['y']+"");
		outDate = new Date(""+_out2['m']+"/"+_out2['d']+"/"+_out2['y']+"");
		
		$(parent + ' .selectionRange .dates .noDates').text("");
		$(parent + ' .selectionRange .dates .checkIn').text(""+inDate.getMonthName(true)+" "+_in2['d']+", "+_in2['y']+" - ");
		$(parent + ' .selectionRange .dates .checkOut').text(""+outDate.getMonthName(true)+" "+_out2['d']+", "+_out2['y']+"");
	
		page = "calendarRotate";
		which = parent.replace(/#windrock-/,"");
	
		$.ajax({
			type: "POST",
			url: "/actions/rotateCalendar.php",
			dataType: "html",
			data: { page: page, _in : _in, _out : _out, which : which },
			success: function(html){
				$(parent + ' .cal-wrap').html(html);
				$(' .continue a').attr({ href : "/results/?in="+_in+"&out="+_out+"&windrock="+which+"" });
				if( parent == '#windrock-one'){ initCalendar(); }
				if( parent == '#windrock-two'){ initCalendar2(); }
			}
		});
	}
}

function displayMessage( str, parent )
{
	$(parent + ' .selectionRange .dates').empty().append("<span class='noDates'>"+str+"</span><span class='checkIn'></span><span class='checkOut'></span>");
}

function getDateFromID(d){
	return d.parent().attr("id").replace(/_bookingDate/,"");
}

function daysInMonth(iMonth, iYear)
{
	return 32 - new Date(iYear, (iMonth - 1), 32).getDate();
}


function initCalendar()
{
			$('#windrock-one .cal-controls li.back a').click( function(){ calendarRotate(-1, "#windrock-one" ); return false; });
			$('#windrock-one .cal-controls li.next a').click( function(){ calendarRotate(+1, "#windrock-one" ); return false; });
			$('#windrock-one .day a').click( function(){ 
				if( $(this).parent().hasClass('bookedInOnly') ){
					fail = false;
					if( ! $("#windrock-one .day").hasClass("checkIn") ){ 
						alert("Oops! The day you selected is not available for 'Check In.'"); return false; }
				}
				determine($(this), "#windrock-one"); 
				return false; 
				});
			$('#windrock-one .checkIn a').append("<span class='checkIn'></span>");
			$('#windrock-one .checkOut a').append("<span class='checkOut'></span>");
}

function initCalendar2()
{
			$('#windrock-two .cal-controls li.back a').click( function(){ calendarRotate2(-1, "#windrock-two" ); return false; });
			$('#windrock-two .cal-controls li.next a').click( function(){ calendarRotate2(+1, "#windrock-two" ); return false; });
			$('#windrock-two .day a').click( function(){ 
				if( $(this).parent().hasClass('bookedInOnly') ){
					fail = false;
					if( ! $("#windrock-two .day").hasClass("checkIn") ){ 
						alert("Oops! The day you selected is not available for 'Check In.'"); return false; }
				}
				determine($(this), "#windrock-two"); 
				return false; 
				});
			$('#windrock-two .checkIn a').append("<span class='checkIn'></span>");
			$('#windrock-two .checkOut a').append("<span class='checkOut'></span>");
}

function getVar(name)
         {
         get_string = document.location.search;         
         return_value = '';
         
         do { //This loop is made to catch all instances of any get variable.
            name_index = get_string.indexOf(name + '=');
            
            if(name_index != -1)
              {
              get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index);
              
              end_of_value = get_string.indexOf('&');
              if(end_of_value != -1)                
                value = get_string.substr(0, end_of_value);                
              else                
                value = get_string;                
                
              if(return_value == '' || value == '')
                 return_value += value;
              else
                 return_value += ', ' + value;
              }
            } while(name_index != -1)
            
         //Restores all the blank spaces.
         space = return_value.indexOf('+');
         while(space != -1)
              { 
              return_value = return_value.substr(0, space) + ' ' + 
              return_value.substr(space + 1, return_value.length);
							 
              space = return_value.indexOf('+');
              }
          
         return(return_value);        
         }

$(document).ready(function()
{
	Date.firstDayOfWeek = 7;
	Date.format = 'mm-dd-yyyy';
	$('.date-pick').datepicker({dateFormat: 'mm-dd-yy',showOn: 'both',buttonImage: '/media/img/btn/calendar.gif',buttonImageOnly: true});
	$('.check-in-date').bind(
		'dpClosed',
		function(e, selectedDates)
		{
			var d = selectedDates[0];
			if (d) {
				d = new Date(d);
				$('#end-date').dpSetStartDate(d.addDays(1).asString());
			}
		}
	);
	$('.check-out-date').bind(
		'dpClosed',
		function(e, selectedDates)
		{	
			var d = selectedDates[0];
			if (d) {
				d = new Date(d);
				$('#start-date').dpSetEndDate(d.addDays(-1).asString());
			}
		}
	);

	
	initCalendar();
	initCalendar2();
	//jQuery('img, .bgPng').ifixpng();
	//DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement
			
			
});