TodaysDate = new Date();



currentYear=TodaysDate.getFullYear();



var date_OK;



function _isInteger(val) 

{

	var digits="1234567890";

	for (var i=0; i < val.length; i++) {

		if (digits.indexOf(val.charAt(i))==-1) { return false; }

		}

	return true;

}



function _getInt(str,i,minlength,maxlength) 

{

	for (var x=maxlength; x>=minlength; x--) {

		var token=str.substring(i,i+x);

		if (token.length < minlength) { return null; }

		if (_isInteger(token)) { return token; }

		}

	return null;

}



function getDateFromFormat(val,format) 

{

	val=val+"";

	format=format+"";

	var i_val=0;

	var i_format=0;

	var c="";

	var token="";

	var token2="";

	var x,y;

	var now=new Date();

	var year=now.getYear();

	var month=now.getMonth()+1;

	var date=1;

	var hh=now.getHours();

	var mm=now.getMinutes();

	var ss=now.getSeconds();

	var ampm="";

	

	while (i_format < format.length) {

		// Get next token from format string

		c=format.charAt(i_format);

		token="";

		while ((format.charAt(i_format)==c) && (i_format < format.length)) {

			token += format.charAt(i_format++);

			}

		// Extract contents of value based on format token

		if (token=="yyyy" || token=="yy" || token=="y") {

			if (token=="yyyy") { x=4;y=4; }

			if (token=="yy")   { x=2;y=2; }

			if (token=="y")    { x=2;y=4; }

			year=_getInt(val,i_val,x,y);

			if (year==null) { return 0; }

			i_val += year.length;

			if (year.length==2) {

				if (year > 70) { year=1900+(year-0); }

				else { year=2000+(year-0); }

				}

			}

		else if (token=="MMM"||token=="NNN"){

			month=0;

			for (var i=0; i<MONTH_NAMES.length; i++) {

				var month_name=MONTH_NAMES[i];

				if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {

					if (token=="MMM"||(token=="NNN"&&i>11)) {

						month=i+1;

						if (month>12) { month -= 12; }

						i_val += month_name.length;

						break;

						}

					}

				}

			if ((month < 1)||(month>12)){return 0;}

			}

		else if (token=="EE"||token=="E"){

			for (var i=0; i<DAY_NAMES.length; i++) {

				var day_name=DAY_NAMES[i];

				if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {

					i_val += day_name.length;

					break;

					}

				}

			}

		else if (token=="MM"||token=="M") {

			month=_getInt(val,i_val,token.length,2);

			if(month==null||(month<1)||(month>12)){return 0;}

			i_val+=month.length;}

		else if (token=="dd"||token=="d") {

			date=_getInt(val,i_val,token.length,2);

			if(date==null||(date<1)||(date>31)){return 0;}

			i_val+=date.length;}

		else if (token=="hh"||token=="h") {

			hh=_getInt(val,i_val,token.length,2);

			if(hh==null||(hh<1)||(hh>12)){return 0;}

			i_val+=hh.length;}

		else if (token=="HH"||token=="H") {

			hh=_getInt(val,i_val,token.length,2);

			if(hh==null||(hh<0)||(hh>23)){return 0;}

			i_val+=hh.length;}

		else if (token=="KK"||token=="K") {

			hh=_getInt(val,i_val,token.length,2);

			if(hh==null||(hh<0)||(hh>11)){return 0;}

			i_val+=hh.length;}

		else if (token=="kk"||token=="k") {

			hh=_getInt(val,i_val,token.length,2);

			if(hh==null||(hh<1)||(hh>24)){return 0;}

			i_val+=hh.length;hh--;}

		else if (token=="mm"||token=="m") {

			mm=_getInt(val,i_val,token.length,2);

			if(mm==null||(mm<0)||(mm>59)){return 0;}

			i_val+=mm.length;}

		else if (token=="ss"||token=="s") {

			ss=_getInt(val,i_val,token.length,2);

			if(ss==null||(ss<0)||(ss>59)){return 0;}

			i_val+=ss.length;}

		else if (token=="a") {

			if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}

			else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}

			else {return 0;}

			i_val+=2;}

		else {

			if (val.substring(i_val,i_val+token.length)!=token) {return 0;}

			else {i_val+=token.length;}

			}

		}

	// If there are any trailing characters left in the value, it doesn't match

	if (i_val != val.length) { return 0; }

	// Is date valid for month?

	if (month==2) {

		// Check for leap year

		if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year

			if (date > 29){ return 0; }

			}

		else { if (date > 28) { return 0; } }

		}

	if ((month==4)||(month==6)||(month==9)||(month==11)) {

		if (date > 30) { return 0; }

		}

	// Correct hours value

	if (hh<12 && ampm=="PM") { hh=hh-0+12; }

	else if (hh>11 && ampm=="AM") { hh-=12; }

	var newdate=new Date(year,month-1,date,hh,mm,ss);

	return newdate.getTime();

}



function pd(m1, d1, y1) 

{
		
	if (m1==-1 && d1==-1 && y1==-1) 

	{
		
		var f	= document.forms['calendar'];
	
		if ( f.category_payment.value == 0 )
			f.date2.value = f.date1.value;
			
		if(f.date1.value!='' && f.date2.value!='')

		{
	
			doLoad(f, f.date1.value, f.date2.value);
			//alert(f.date1.value + '    ' + f.date2.value);

		}
		
		return;

	}

	
	
  date_OK = false;

  var days;

	if(m1<10) m1="0"+m1;

	if(d1<10) d1="0"+d1;

  with(document.forms.calendar) 

	{

		if(date1.value == '' && date2.value == '') 

		{

			if(europeanDate)

			{

				date1.value	= d1+"/"+m1+"/"+y1;

			}

			else

			{

				date1.value	= m1+"/"+d1+"/"+y1;

			}

		}

		else if(date1.value != '' && date2.value =='') 

		{

			if(europeanDate)

			{

				date2.value	= d1+"/"+m1+"/"+y1;

			}

			else

			{

				date2.value	= m1+"/"+d1+"/"+y1;

			}



			date_OK = true;



			var dateFormat	= "M/d/y";

			if(europeanDate)

			{

				dateFormat		= "d/M/y";

			}

			var _date1	= getDateFromFormat(date1.value, dateFormat);

			var _date2	= getDateFromFormat(date2.value, dateFormat);

			days=(_date2-_date1)/86400000;

			if(days>=0)

			{

				days--;

			}
			

			doLoad(document.getElementById('calendar'),date1.value, date2.value);

		}	

		else if (date1.value != '' && date2.value != '') 

		{

			if(europeanDate)

			{

				date1.value	= d1+"/"+m1+"/"+y1;

			}

			else

			{

				date1.value	= m1+"/"+d1+"/"+y1;

			}



			date2.value = '';

	  }
	  
	  
	var myForm = document.forms['calendar'];

	if ( myForm.category_payment.value == 0 ) {
		myForm.date2.value = myForm.date1.value;
		pd(-1, -1, -1);
	}
	 // doLoad(document.getElementById('calendar'),date1.value, date2.value);

	  //min_days = document.min_max_days.min_days.value;
	  //min_days = document.min_max_days.min_days.value;
	  /*new_days = days+1;	 
	 
	  if (min_days.value > 0 && max_days.value>0 && new_days < min_days.value) {
		date_OK = false;
		
		alert("Please choose the  number of nights Not less then "+min_days.value);

		date1.value = '';
		date2.value = '';
		price_my.value = '';
		price_deposit.value = '';
		
		  
	  }
	  
	  if (min_days.value > 0 && max_days.value>0 && new_days > max_days.value) {
		date_OK = false;
		
		alert("Please choose the  number of nights Not more then "+max_days.value);

		date1.value = '';
		date2.value = '';
		price_my.value = '';
		price_deposit.value = '';
		
		  
	  }
	   
	  if ( (min_days.value == 0 && max_days.value == 0) || (new_days >= min_days.value && new_days <= max_days.value) ) {
	   		
	   doLoad(document.getElementById('calendar'),date1.value, date2.value);
	   
	  }
	//alert(new_days +'<'+min_days.value +'&&' +new_days+' > '+max_days.value);
	  //alert('days='+ (days+1) +'min='+min_days.value + 'max='+max_days.value);
	  //days
	  
	  if (days < 0 && date_OK )

		{

			date_OK = false;

			alert(" Your Start date is greater than your end date, Please choose again");

			date1.value = '';

			date2.value = '';

	  }*/
	 
	  
	}

}



function sp(str,color) 

{

  document.forms.calendar.temp_price.value=str;

  if (str=='n/a') color='#999999';

  document.forms.calendar.temp_price.style.color=color;

}



function CompareDates(date1,date2) {

	var t1 = new Date(date1);

	var t2 = new Date(date2);

	var dt1 = new Date();

	var dt2 = new Date();

	var diff = new Date();

	dt1.setTime(t1.getTime());

	dt2.setTime(t2.getTime());

	diff.setTime((dt2.getTime() - dt1.getTime()) );

	timediff = diff.getTime();

	days = timediff / (1000 * 60 * 60 * 24 );



	return days<1;



}



function ValidateForm(form) 

{

  if (CompareDates(form.date1.value,form.date2.value)) 

	{

    alert(" Your Start date is greater than your end date, Please choose again");

    return false;

  }

  flag=false

  for(i=1;i<=4;i++) 

	{

    if (form.price.options[i].checked) { flag=true; break;}

  }

  return flag;

}





function np(date) 

{

  alert('The date '+date+' has no price set. \\nPlease contact owner by the inquire for more information or choose again');

}



function na(date) 

{

  alert('The date '+date+' is not available, please choose again')

}


