// JavaScript Document


/* CALENDER JS*/
var HighlightToday	= true;
var DisablePast		= true;
var MonthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

// Global Vars
var now	 = new Date();
var dest = null;
var pos	 = null;
var sDate= null;
var ny = now.getFullYear(); 
var nm = now.getMonth();
var nd = now.getDate();
var sy = 0; 
var sm = 0;
var sd = 0;
var y = now.getFullYear(); 
var m = now.getMonth();
var d = now.getDate();
var l = 0;
var t = 0;
var MonthLengths = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

function getXCoord(el) {
	x = 0;
	while(el){
		x += el.offsetLeft;
		el = el.offsetParent;
	}
	return x;
}
function getYCoord(el) {
	y1 = 0;
	while(el){
		y1 += el.offsetTop;
		el = el.offsetParent;
	}
	return y1;
}

function GetDate() {
	EnsureCalendarExists();
	DestroyCalendar();

	if(arguments[0] == null || arguments[0] == "") {
		alert("ERROR: Destination control required in funciton call GetDate()");
		return;
	}
	else
	{
		dest = arguments[0];
		pos	= arguments[1];
		sDate = arguments[2];
	}
	y = now.getFullYear();
	m = now.getMonth();
	d = now.getDate();
	sm = 0;
	sd = 0;
	sy = 0;
	var cdval = dest.value;
 
	if(/\d{1,2}.\d{1,2}.\d{4}/.test(dest.value)) {
		var vParts = cdval.split("/"); // assume mm/dd/yyyy
		sd = vParts[0];
		sm = vParts[1] - 1;
		sy = vParts[2];
		m = sm;
		d = sd;
		y = sy;
	}
	if(sDate != null){
		var sdval = sDate.value;
		if(/\d{1,2}.\d{1,2}.\d{4}/.test(sDate.value)) {
			var vParts = sdval.split("/"); 
			sd = vParts[0];
			sm = vParts[1] - 1;
			sy = vParts[2];
			m = sm;
			d = sd;
			y = sy;
		}
	}

	l = getXCoord(pos);
	t = getYCoord(pos);

	if(t < 0) t = 0; 
	DrawCalendar();
}

function DestroyCalendar() {
	var cal = document.getElementById("dpCalendar");
	if(cal != null) {
		cal.innerHTML = null;
		cal.style.display = "none";
	}
	return
}

function DrawCalendar() {
	DestroyCalendar();
	cal = document.getElementById("dpCalendar");

	cal.style.position = 'absolute';
	cal.style.left = l + "px";
	cal.style.top = t + "px";

	var sCal = "<table><tr><td class=\"cellButton\"><a href=\"javascript: PrevMonth();\" title=\"Previous Month\">&laquo;</a></td>"+
		"<td class=\"cellMonth\" width=\"80%\" colspan=\"5\">"+MonthNames[m]+" "+y+"</td>"+
		"<td class=\"cellButton\"><a href=\"javascript: NextMonth();\" title=\"Next Month\">&raquo;</a></td></tr>"+
		"<tr align=center><td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td</tr>"+
		"<tr><td height=1 bgcolor=\"#000066\" colspan=\"7\"></td</tr>";
	var wDay = 1;
	var wDate = new Date(y, m, wDay);

	if(isLeapYear(wDate)) {
		MonthLengths[1] = 29;
	} else {
		MonthLengths[1] = 28;
	}
	var dayclass = "";
	var isToday = false;
	for(var r=1; r<7; r++) {
		sCal = sCal + "<tr>";
		for(var c=0; c<7; c++) {
			var wDate = new Date(y, m, wDay);
			if(wDate.getDay() == c && wDay<=MonthLengths[m]) {
			if(wDate.getDate()==sd && wDate.getMonth()==sm && wDate.getFullYear()==sy) {
				dayclass = "cellSelected";
				isToday = true; // only matters if the selected day IS today, otherwise ignored.
			} else if(wDate.getDate()==nd && wDate.getMonth()==nm && wDate.getFullYear()==ny && HighlightToday) {
				dayclass = "cellToday";
				isToday = true;
			} else {
			dayclass = "cellDay";
			isToday = false;
		}

		if(sDate != null && wDay < sd && wDate.getMonth()==sm && wDate.getFullYear()==sy)
		{
			sCal = sCal + "<td class=\""+dayclass+"\" style=text-decoration:line-through;>"+wDay+"</td>";
		}
		else if(((now > wDate) && !DisablePast) || (now <= wDate) || isToday) { // >

			sCal = sCal + "<td class=\""+dayclass+"\"><a href=\"javascript: ReturnDay("+wDay+");\">"+wDay+"</a></td>";
			} else {
				sCal = sCal + "<td class=\""+dayclass+"\" style=text-decoration:line-through;>"+wDay+"</td>";
			}
			wDay++;
		} else {
			sCal = sCal + "<td class=\"unused\"></td>";
		}
	}
	sCal = sCal + "</tr>";
	}
	sCal = sCal + "<tr><td colspan=\"5\" class=\"unused\"></td><td colspan=\"3\" class=\"cellCancel\"><a href=\"javascript: DestroyCalendar();\"><b>close</b></a></td></tr></table>"
	cal.innerHTML = sCal; 
	cal.style.display = "inline";
}

function PrevMonth() {
	m--;
	if(m==-1) {
		m = 11;

		y--;
	}
	DrawCalendar();
}

function NextMonth() {
	m++;
	if(m==12) {
		m = 0;
		y++;
	}
	DrawCalendar();
}

function ReturnDay(day) {
	cDest = document.getElementById(dest);
	var a = m+1;
	var b = day;
	if(a<10)	var a ='0'+a;
	if(b<10) var b ='0'+day;
	//dest.value = day+"/"+(m+1)+"/"+y;
	dest.value = b+"/"+a+"/"+y;

	DestroyCalendar();
}

function EnsureCalendarExists() {
	if(document.getElementById("dpCalendar") == null) {
		var eCalendar = document.createElement("div");
		eCalendar.setAttribute("id", "dpCalendar");
		document.body.appendChild(eCalendar);
	}
}

function isLeapYear(dTest) {
	var y = dTest.getYear();
	var bReturn = false;

	if(y % 4 == 0) {
		if(y % 100 != 0) {
			bReturn = true;
		} else {
			if (y % 400 == 0) {
				bReturn = true;
			}
		}
	}
	return bReturn;
}


function trim (strVar) { 
	if(strVar.length >0)
	{
		while(strVar.charAt(0)==" ")			//remove left spaces
			strVar=strVar.substring(1,strVar.length);
		while(strVar.charAt(strVar.length-1)==" ")			//remove right spaces
			strVar=strVar.substring(0,strVar.length-1);
	}
	return strVar;
}

function checkEmail(email) 
{
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email))
	{
		return (true);
	}
	return false;
}


var pop = '';
function openwin(nm,width,height) {
	var name = nm;
	if (pop && !pop.closed) {
		pop.close();
	}
	pop = eval("window.open('"+name+"','NewWIN','chrome[4],toolbar=no,left=5,top=5,width="+width+",height="+height+",directories=no,menubar=no,SCROLLBARS=yes,left=2,right=2')");
	if (!pop.opener) popUpWin.opener = self;
}


expires = new Date();
expires.setTime (expires.getTime() + 24 * 60 * 60 * 150 * 1000);

function check(thisForm)
{	
	var arrival_date= thisForm.arrival_date.value;
	var depart_date	= thisForm.depart_date.value;
	var No_of_Adults = trim(thisForm.No_of_Adults.value);
	var Room_Single = trim(thisForm.Room_Single.value);
	var Room_Double = trim(thisForm.Room_Double.value);
	var Room_Triple = trim(thisForm.Room_Triple.value);
	var name		= trim(thisForm.name.value);
	var email		= trim(thisForm.email.value);
	var country		= trim(thisForm.country.value);
	var S_city		= trim(thisForm.S_city.value);

	var dd1 = arrival_date.substring(0,2)
	var mm1 = arrival_date.substring(3,5)
	var yy1 = arrival_date.substring(6,10)

	var dd2 = depart_date.substring(0,2)
	var mm2 = depart_date.substring(3,5)
	var yy2 = depart_date.substring(6,10)

	if(arrival_date.length==0)
	{
		alert("Please enter Checkin Date!")
		thisForm.arrival_date.focus();
		return false;
	}
	if(depart_date.length==0)
	{
		alert("Please enter Checkout Date!")
		thisForm.depart_date.focus();
		return false;		
	}
	if(!dateDiff(dd1, mm1, yy1, dd2, mm2, yy2))
	{
		alert("Please recheck Start and End date!");
		thisForm.arrival_date.focus();
		return false;
	}
	if(No_of_Adults.length==0)
	{
		alert("Please enter No. of Adults!")
		thisForm.No_of_Adults.focus();
		return false;
	}
	if(isNaN(No_of_Adults))
	{
		alert("Please enter valid value in No. of Adults!");
		thisForm.No_of_Adults.select();
		return false;
	}

	var No_of_Children = thisForm.No_of_Children.value;
	if(No_of_Children.length>0)
	{
		for(i=0;i<No_of_Children;i++)
		{
			var ag = thisForm['age['+i+']'];
			if(ag.value.length==0)
			{
				alert("Please enter age of Child - "+(i+1));
				thisForm['age['+i+']'].focus();
				return false;
			}
			if(isNaN(ag.value))
			{
				alert("Please enter age only numeric");
				thisForm['age['+i+']'].select();
				return false;
			}
		}
	}

/*	if(Room_Single.length==0 && Room_Double.length==0 && Room_Triple.length==0)
	{
		alert("Please enter Rooms Required!")
		thisForm.Room_Single.focus();
		return false;
	}
	if(Room_Single.length>0)
	{
		if(isNaN(Room_Single))
		{
			alert("Please enter only numeric value!");
			thisForm.Room_Single.select();
			return false;
		}
	}
	if(Room_Double.length>0)
	{
		if(isNaN(Room_Double))
		{
			alert("Please enter only numeric value!");
			thisForm.Room_Double.select();
			return false;
		}
	}
	if(Room_Triple.length>0)
	{
		if(isNaN(Room_Triple))
		{
			alert("Please enter only numeric value!");
			thisForm.Room_Triple.select();
			return false;
		}
	}
*/
	if (name.length==0)
	{
		alert("Please enter your name!")
		thisForm.name.focus();
		return false;	
	}

	if (email.length==0)
	{
		alert("Please enter your email address!")
		thisForm.email.focus();
		return false;	
	}
	if(checkEmail(email) == false)
	{
		alert("Invalid email! Please re-enter.");
		thisForm.email.select();
		return false;
	}
	if(thisForm.nationality[0].checked==false && thisForm.nationality[1].checked==false)
	{
		alert("Please select Nationality!");
		thisForm.nationality[0].focus();
		return false;			
		}
	/*if(S_city.length==0)
	{
		alert("Please enter your City!");
		thisForm.S_city.focus();
		return false;			
	}*/
	if (country.length==0)
	{
		alert("Please select your Country!");
		thisForm.country.focus();
		return false;
	}
	return true;
}

function child_age(age)
{
	a1.style.display = "none";
	a2.style.display = "none";
	a3.style.display = "none";
	a4.style.display = "none";
	a5.style.display = "none";
	a6.style.display = "none";
	if(age>0)
	{
		childAge.style.display = "";
		if(age>0)
			a1.style.display = "";
		if(age>1)
			a2.style.display = "";
		if(age>2)
			a3.style.display = "";
		if(age>3)
			a4.style.display = "";
		if(age>4)
			a5.style.display = "";
		if(age>5)
			a6.style.display = "";
		if(age>6)
			f1.No_of_Children.value = 6;
	}
	else
		childAge.style.display = "none";
}

function getCurrentDate()
{
	currentTime = new Date();
	
	dd=currentTime.getDate();

	mm=currentTime.getMonth();
	yy=currentTime.getYear();
	mm=mm+1;
	if(dd<10) dd="0"+dd;
	if(mm<10) mm="0"+mm;
	currDate=yy+"-"+mm+"-"+dd;

	return currDate;
}
function dateDiff(dd1, mm1, yy1, dd2, mm2, yy2)
{
	var date1=yy1+mm1+dd1;
	var date2=yy2+mm2+dd2;
	if(date1>date2) return false;
	return true;
}

function get(){
if( (cookie = getCookie("newSavion")) > ""){
	Values = cookie.split("|");
	if (Values.length >= 6){
		if (document.f1.name.value.length == 0) document.f1.name.value = Values[0];
		if (document.f1.email.value.length == 0) document.f1.email.value = Values[1];
		if (document.f1.S_fax.value.length == 0) document.f1.S_fax.value=Values[2];
		if (document.f1.S_streetaddress.value.length == 0) document.f1.S_streetaddress.value=Values[3];
		if (document.f1.S_city.value.length == 0) document.f1.S_city.value=Values[4];
		if (document.f1.S_pin.value.length == 0) document.f1.S_pin.value=Values[5];
		if (document.f1.country.value.length == 0) document.f1.country.value=Values[6];
		if (document.f1.arrival_date.value.length == 0) document.f1.arrival_date.value=Values[7];
		if (document.f1.depart_date.value.length == 0) document.f1.depart_date.value=Values[8];
	}
}
return true;
}
function setCookie(name, value){
	if (value.length > 0)
		document.cookie = name + "=" + escape(value)+ ";"+"expires=" + expires.toGMTString()+";"
}

function getCookie(Name) {
	var search = Name + "="
	if (document.cookie.length > 0) { // if there are any cookies
		offset = document.cookie.indexOf(search) 
		if (offset != -1) { // if cookie exists 
			offset += search.length 
			// set index of beginning of value
			end = document.cookie.indexOf(";", offset) 
			// set index of end of cookie value
			if (end == -1) end = document.cookie.length
			return unescape(document.cookie.substring(offset, end))
		}
	}
	return "";
}



$(document).ready(function() {
  dates="";
 var option="";
 var date="";
mmmax='+30Y+1M +10D';


 dates = $('#arrival_date, #depart_date').datepicker({

											
			minDate:0, maxDate:mmmax,
			showOn: 'both',
			buttonImage:'/query/calender_img.gif',
			showAnim:'',
			closeText:'Close',
			autoSize:false,
			buttonImageOnly:true,
			changeMonth: true,
			changeYear: true,
			buttonText: 'Calander',
			showButtonPanel: true,
			//showMonthAfterYear:true,
			numberOfMonths: 2,dateFormat: 'dd/mm/yy',
			onSelect: function(selectedDate) { var option = this.id == dates[0].id ? "minDate" : "maxDate"; var instance = $(this).data("datepicker"); var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings); dates.not(this).datepicker("option", option, date); }
		});
	});
