var dtCh= "/";
var dtCh1 ="-";
var minYear=1900;
var maxYear=2100;

var room = 0;

function chlOption(d,c){var value=d.value;	var trId = "divChildTitle" + c; var roomAges="room" + c + "Ages0";
		var rc = "room" + c + "Count";
		var rCot = "room" + c + "Cots";
		if(value == "TB1" || value == "DB1"){
		//document.getElementById(roomAges).disabled=false;
		//document.getElementById(roomAges).style.display='block';
		document.getElementById(rc).selectedIndex=1;
		DisableAgeChild(c);
		enableAgeChild(c);		
		}
		else{
		DisableAgeChild(c);
		}
		if(value == ""){document.getElementById(rc).selectedIndex=0;
		document.getElementById(rCot).selectedIndex=0;
		document.getElementById(roomAges).selectedIndex=0;		
		}
		else{if(value == "TB1" || value == "DB1"){if(value == ""){document.getElementById(rc).selectedIndex=1;}}else {document.getElementById(rc).selectedIndex=1;}}
}
function addRooms(){
		room++;
		var r="room" + room;
		var rc = "room" + room + "Count";
		var rCot = "room" + room + "Cots";
		document.getElementById(r).style.display='block';
		document.getElementById(r).disabled=false;
		document.getElementById(rc).style.display='block';
		document.getElementById(rc).disabled=false;
		document.getElementById(rCot).style.display='block';
		document.getElementById(rCot).disabled=false;
		if(room == "2"){document.getElementById('addRoomLink').style.display='none';}
}

function chngNoRoom(idNo){
	var NoRoom="room"+idNo;
	var id = "room" + idNo + "Count";
	var rCot = "room" + idNo + "Cots";
	var roomAges = "room" + idNo + "Ages0";
	
	var val = document.getElementById(id).value;
	if(document.getElementById(NoRoom).value!="")
	{
		if(val == ""){document.getElementById(NoRoom).selectedIndex=0;
		document.getElementById(rCot).selectedIndex=0;
		document.getElementById(roomAges).selectedIndex=0;		
		DisableAgeChild(idNo);
		}
		else
		{
		if(document.getElementById(NoRoom).value=="TB1" || document.getElementById(NoRoom).value=="DB1")
		{
			if(val>4){alert("Maximum nine passengers allowed");return false;}
			DisableAgeChild(idNo);			
			enableAgeChild(idNo);
		}
		else{DisableAgeChild(idNo);	}
			
			
			
		}
	}
}

function DisableAgeChild(idNo)
{
	//disabled all chldAge control
	var trId = "divChildTitle" +idNo;
	document.getElementById(trId).style.display='none';
	
	for(var k=0;k<4;k++){var temId="room" + idNo + "Ages" + k; 
	document.getElementById(temId).style.display='none'; document.getElementById(temId).disabled=true;}
}

function enableAgeChild(idNo)
{
		var id = "room" + idNo + "Count";
		var trId = "divChildTitle" +idNo;
		document.getElementById(trId).style.display='block';
	
		for(var j=0;j<document.getElementById(id).value;j++)
			{
				var chldAgeId="room"+idNo+"Ages"+j;
				//enable all chldAge control
				document.getElementById(chldAgeId).style.display='block';
				document.getElementById(chldAgeId).disabled=false;			
			}
}


function validate()
{
	var flag=false;
	var i=0;
	var cD=false;
	var cD1=false;
	var inDate = document.getElementById('inDate').value;
	var outDate = document.getElementById('outDate').value;	
	if(document.getElementById('Rdcity1').checked==true)
	{	
	if(document.getElementById("dpdnCity").value==""){alert("Please select a City");return false;	}
	}
	else if(document.getElementById('Rdcity2').checked==true)
	{
	if(document.getElementById("txtCity").value==""){alert("Please select a City");return false;}
	}
	//check date format
	cD = chkDate(inDate);
	if(cD==false){return false;}else{cD = chkDate(outDate);if(cD==false){return false;}}
	
	
	for(i;i<3;i++)
	{
		var roomtype="room"+i;
		if(document.getElementById(roomtype).value!="")		{			var value=document.getElementById(roomtype).value;
			flag=true;			
			if(value == "TB1" || value == "DB1")
			{
				var NoRoomsId="room"+i+"Count";	
				var NoRooms=document.getElementById(NoRoomsId).value;
				for(var j=0;j<NoRooms;j++)
				{
					var AgeId="room"+i+"Ages"+j;
					var chldAge=document.getElementById(AgeId).value;				
					if(chldAge==""){
						alert("Please select all child age");
						return false;
					}
				}
			}
		}
	}
	if(flag==false){alert("Please select a room type");return false;}
	var mxPax=TotPAX();
	if(mxPax==false)
	return false;
	var Diff=DateDiff();
	if(Diff<0)	{alert("Please check your date");
	return false;}
	
}

function TotPAX()
{
	var totPax=0;
	for(var i=0;i<3;i++)
	{
		var roomtype="room"+i;
		if(document.getElementById(roomtype).value!="")		{			var value=document.getElementById(roomtype).value;					
			if(value == "TB1" || value == "DB1")
			{
				var NoRoomsId="room"+i+"Count";	
				var NoRooms=document.getElementById(NoRoomsId).value;
				totPax =(totPax +(( 2 * parseInt(NoRooms)) + parseInt(NoRooms)));				
			}
			else if(value == "TB0" || value == "DB0")
			{
				var NoRoomsId="room"+i+"Count";	
				var NoRooms=document.getElementById(NoRoomsId).value;
				totPax =(totPax +(2 * parseInt(NoRooms)));				
			}
			else if(value == "SB" || value == "TS")
			{
				var NoRoomsId="room"+i+"Count";	
				var NoRooms=document.getElementById(NoRoomsId).value;
				totPax =(totPax +(1 * parseInt(NoRooms)));				
			}
			else if(value == "TR")
			{
				var NoRoomsId="room"+i+"Count";	
				var NoRooms=document.getElementById(NoRoomsId).value;
				totPax =(totPax + (3 * parseInt(NoRooms)));				
			}
			else if(value == "Q")
			{
				var NoRoomsId="room"+i+"Count";	
				var NoRooms=document.getElementById(NoRoomsId).value;
				totPax =(totPax + (4 * parseInt(NoRooms)));				
			}
		}
	}	
	if(totPax>9){
	alert("Maximum nine passengers allowed");
	return false;}
	

}


function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
		if (i==2) {this[i] = 29;}
   } 
   return this;
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12);
	var pos1="";
	var pos2="";
	if(dtStr.indexOf(dtCh)!= "-1"){pos1 = dtStr.indexOf(dtCh);}
	else {pos1 = dtStr.indexOf(dtCh1);	}
	if(dtStr.indexOf(dtCh,pos1+1) !="-1"){pos2=dtStr.indexOf(dtCh,pos1+1);}
	else {pos2=dtStr.indexOf(dtCh1,pos1+1);}
	//var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strDay=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth);
	day=parseInt(strDay);
	year=parseInt(strYr);
	if (pos1==-1 || pos2==-1){
		alert("The date format should be : dd/mm/yyyy or dd-mm-yyyy");
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("Please enter a valid month");
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("Please enter a valid day");
		return false;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
		return false;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
	if(dtStr.indexOf(dtCh1,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh1))==false){	
		alert("Please enter a valid date");
		return false;
		}
	}
return true;
}

function chkDate(dateValue){
	var dt=dateValue;	
	if (isDate(dt)==false){		
		return false;
	}
    return true;
 }


function noOfNights(){
try
{
	if(document.getElementById('htloutDate').id=='htloutDate')
		{
		var _Diff=DateDiff('htlinDate','htloutDate');
		if(_Diff>0) 
		document.getElementById('tdNights').innerHTML="<b>" + _Diff + "</b>";
		else
		document.getElementById('tdNights').innerHTML="<b>0</b>";
		}
		}
		catch(e)
		{}
}

function DateDiff(inDat,outDat)
{
	var inDate= document.getElementById(inDat).value;
	var outDate =document.getElementById(outDat).value;	
	var one_day=1000*60*60*24; 
	var x;
	var y;	
	if(inDate.indexOf("/")!= -1){x=inDate.split("/");}else{x=inDate.split("-");	} 
	if(outDate.indexOf("/") != -1){y=outDate.split("/"); } else{y=outDate.split("-");}  	      
	var date1=new Date(x[2],(x[1]-1),x[0]);  
	var date2=new Date(y[2],(y[1]-1),y[0]);
	var month1=x[1]-1;
	var month2=y[1]-1;        
	//Calculate difference between the two dates, and convert to days
	var  _Diff=Math.ceil((date2.getTime()-date1.getTime())/(one_day));
	return _Diff;

}



function enableControl(cntrlId1,cntrlId2)
{
	document.getElementById(cntrlId1).disabled=false;
	document.getElementById(cntrlId2).disabled=true;
}

function selectControl(id1,id2,id3)
{
	document.getElementById(id1).checked=true;	
	if(document.getElementById('Rdcity1').checked==true){document.getElementById('frmDef').txtCity.value="";	}	
}
