﻿var elToShow=null;
var verifyCmd=null;

var firstRoom = null;
var secondRoom = null;
var thirdRoom = null;
var firstNumber = null;
var secondNumber = null;
var thirdNumber = null;
var a0 = null;
var a1 = null;
var a2 = null;
var a3 = null;
var a4 = null;
var b0 = null;
var b1 = null;
var b2 = null;
var b3 = null;
var b4 = null;


var cp_posx = 0;
var cp_posy = 0;
var cp_ev = null;

function showTr(){
	if(!elToShow) return;
	var el=document.getElementById(elToShow);
	if(!el) return;
	el.style.display = 'block';
	
	if (verifyCmd!=null)
	{
		var cmd=document.getElementById(verifyCmd);
		//alert(cmd);
		cmd.style.display='none';
		
	}
}

function ChangeCursor(){
   document.body.scrollTop = 0;
}
    
function checkRoomType(cboRoomNumber,cboType,age1,age2,age3,age4,age5,twage1,twage2,twage3,twage4,twage5,divDbl, divTw){
	//debugger;
	var strId=cboRoomNumber;
	strId = strId.replace("NumberOfRooms","RoomType");
	
	var selectedValue=document.getElementById(cboType).value;
	var value=selectedValue.split('|')[0];
	var number = document.getElementById(cboRoomNumber).value;
	if (number==0){
	    if (value==6){
	        document.getElementById(age1).style.display="none";
		    document.getElementById(age2).style.display="none";
		    document.getElementById(age3).style.display="none";
		    document.getElementById(age4).style.display="none";
		    document.getElementById(age5).style.display="none";
		    document.getElementById(agetd).style.display="none";
		    
		    document.getElementById(age1).setAttribute('IsVisible','0');
	        document.getElementById(age2).setAttribute('IsVisible','0');
	        document.getElementById(age3).setAttribute('IsVisible','0');
	        document.getElementById(age4).setAttribute('IsVisible','0');
	        document.getElementById(age5).setAttribute('IsVisible','0');
		}
		if (value==7){
		    document.getElementById(twage1).style.display="none";
		    document.getElementById(twage2).style.display="none";
		    document.getElementById(twage3).style.display="none";
		    document.getElementById(twage4).style.display="none";
		    document.getElementById(twage5).style.display="none";
		    document.getElementById(agetwtd).style.display="none";
		    
		    document.getElementById(twage1).setAttribute('IsVisible','0');
	        document.getElementById(twage2).setAttribute('IsVisible','0');
	        document.getElementById(twage3).setAttribute('IsVisible','0');
	        document.getElementById(twage4).setAttribute('IsVisible','0');
	        document.getElementById(twage5).setAttribute('IsVisible','0');
		    
		}
		
	    document.getElementById(cboType).selectedIndex=0;
	    }
	showTr();
	
	selectedValue=document.getElementById(cboType).value;
	value=selectedValue.split('|')[0];
	if (value==6)
	{		
		HideAges(age1,age2,age3,age4,age5,parseInt(number),divDbl,divDlbLabel)
	}
	
	if (value==7)
	{
	    HideAges(twage1,twage2,twage3,twage4,twage5,parseInt(number),divTw,divDblTwLabel)
	}
}
function checkAssignment(cbo){
	var strId=cbo.id;
	strId = strId.replace("RoomType","NumberOfRooms");
	var val=0;
	if(cbo.value!=""){
		if(document.getElementById(strId).value==0)
			document.getElementById(strId).value=1;
	} else {
		document.getElementById(strId).value=0;
	}
		

}
function refillCombo(cbo, selectedValue1, selectedValue2){
	var thisSelected=cbo.value;
	cbo.options.length=0;
	for(i=0;i<roomTypes.length;i++){
		if(roomTypes[i][0]=="" || (roomTypes[i][0]!=selectedValue1 && roomTypes[i][0]!=selectedValue2)){
			var opt=new Option(roomTypes[i][1],roomTypes[i][0]);
			cbo.options.add(opt);
		}
		else
		{
		    var opt=new Option("----","");
			cbo.options.add(opt);
		}
	}
	if(thisSelected!=selectedValue1 && thisSelected!=selectedValue2){
		cbo.value=thisSelected;
	} else {
		cbo.value="";
	}
}

function verifyRooms(currentlySelected, other1, other2, cboNumber,age1,age2,age3,age4,age5,twage1,twage2,twage3,twage4,twage5,tdAge,tdTwAge, divDblL, divDbl, divTwL, divTw){
    //ShowError(trId);
	var cbo1=document.getElementById(other1);
	var cbo2=document.getElementById(other2);
	var cbo = document.getElementById(currentlySelected);
	var selectedValue=cbo.value;
	var value=selectedValue.split('|')[0];
	
	refillCombo(cbo1,selectedValue, cbo2.value);
	refillCombo(cbo2,selectedValue, cbo1.value);
	checkAssignment(cbo);
	checkAssignment(cbo1);
	checkAssignment(cbo2);
	showTr();
	
	var number=document.getElementById(cboNumber).value
	
	
	if (value==6){
		//alert (tdAge);
		document.getElementById(tdAge).style.display="";
		document.getElementById(divDblL).style.display="block";
		HideAges(age1,age2,age3,age4,age5,parseInt(number), divDbl)
	}
	else {
		if (cbo1.value.split('|')[0]!=6 &&cbo2.value.split('|')[0]!=6){
			document.getElementById(age1).style.display="none";
			document.getElementById(age2).style.display="none";
			document.getElementById(age3).style.display="none";
			document.getElementById(age4).style.display="none";
			document.getElementById(age5).style.display="none";
			document.getElementById(tdAge).style.display="none";
			
			document.getElementById(age1).selectedIndex = 0;
			document.getElementById(age2).selectedIndex = 0;
			document.getElementById(age3).selectedIndex = 0;
			document.getElementById(age4).selectedIndex = 0;
			document.getElementById(age5).selectedIndex = 0;
			
			document.getElementById(age1).setAttribute('IsVisible','0');
	        document.getElementById(age2).setAttribute('IsVisible','0');
	        document.getElementById(age3).setAttribute('IsVisible','0');
	        document.getElementById(age4).setAttribute('IsVisible','0');
	        document.getElementById(age5).setAttribute('IsVisible','0');
		}
	}
	if (value==7){
		document.getElementById(tdTwAge).style.display="";
		document.getElementById(divTwL).style.display="block";
		HideAges(twage1,twage2,twage3,twage4,twage5,parseInt(number), divTw)
	}
	else{
		if (cbo1.value.split('|')[0]!=7 &&cbo2.value.split('|')[0]!=7){
			document.getElementById(twage1).style.display="none";
			document.getElementById(twage2).style.display="none";
			document.getElementById(twage3).style.display="none";
			document.getElementById(twage4).style.display="none";
			document.getElementById(twage5).style.display="none";
			document.getElementById(tdTwAge).style.display="none";
			
			document.getElementById(twage1).selectedIndex = 0;
			document.getElementById(twage2).selectedIndex = 0;
			document.getElementById(twage3).selectedIndex = 0;
			document.getElementById(twage4).selectedIndex = 0;
			document.getElementById(twage5).selectedIndex = 0;
			
			document.getElementById(twage1).setAttribute('IsVisible','0');
	        document.getElementById(twage2).setAttribute('IsVisible','0');
	        document.getElementById(twage3).setAttribute('IsVisible','0');
	        document.getElementById(twage4).setAttribute('IsVisible','0');
	        document.getElementById(twage5).setAttribute('IsVisible','0');
		}		
	}
}

function HideAges(age1,age2,age3,age4,age5,number,div,divLabel){
	document.getElementById(div).style.display="block";
	document.getElementById(age1).setAttribute('IsVisible','0');
	document.getElementById(age2).setAttribute('IsVisible','0');
	document.getElementById(age3).setAttribute('IsVisible','0');
	document.getElementById(age4).setAttribute('IsVisible','0');
	document.getElementById(age5).setAttribute('IsVisible','0');
	
	if(parseInt(number)==0)	{
	   document.getElementById(div).style.display="none";	
	   document.getElementById(divLabel).style.display="none";	  	
	}
	if(parseInt(number)==1)	{
	    document.getElementById(age1).style.display="block";
	    document.getElementById(age1).setAttribute('IsVisible','1');
		document.getElementById(age2).style.display="none";
		document.getElementById(age3).style.display="none";
		document.getElementById(age4).style.display="none";
		document.getElementById(age5).style.display="none";
	}
	else if (parseInt(number)==2)	{
		document.getElementById(age1).style.display="block";
		document.getElementById(age2).style.display="block";
		document.getElementById(age1).setAttribute('IsVisible','1');
		document.getElementById(age2).setAttribute('IsVisible','1');
		document.getElementById(age3).style.display="none";
		document.getElementById(age4).style.display="none";
		document.getElementById(age5).style.display="none";
	}
	else if (parseInt(number)==3)	{
		document.getElementById(age1).style.display="block";
		document.getElementById(age2).style.display="block";
		document.getElementById(age3).style.display="block";
		document.getElementById(age1).setAttribute('IsVisible','1');
		document.getElementById(age2).setAttribute('IsVisible','1');
		document.getElementById(age3).setAttribute('IsVisible','1');
		document.getElementById(age4).style.display="none";
		document.getElementById(age5).style.display="none";
	}
	else if (parseInt(number)==4)	{
		document.getElementById(age1).style.display="block";
		document.getElementById(age2).style.display="block";
		document.getElementById(age3).style.display="block";
		document.getElementById(age4).style.display="block";
		document.getElementById(age1).setAttribute('IsVisible','1');
		document.getElementById(age2).setAttribute('IsVisible','1');
		document.getElementById(age3).setAttribute('IsVisible','1');
		document.getElementById(age4).setAttribute('IsVisible','1');
		document.getElementById(age5).style.display="none";
	}
	else if (parseInt(number)>=5)	{
		document.getElementById(age1).style.display="block";
		document.getElementById(age2).style.display="block";
		document.getElementById(age3).style.display="block";
		document.getElementById(age4).style.display="block";
		document.getElementById(age5).style.display="block";
		document.getElementById(age1).setAttribute('IsVisible','1');
	    document.getElementById(age2).setAttribute('IsVisible','1');
	    document.getElementById(age3).setAttribute('IsVisible','1');
	    document.getElementById(age4).setAttribute('IsVisible','1');
	    document.getElementById(age5).setAttribute('IsVisible','1');
	}
}


function verifyAssignents(){ 
	var roomType1 = document.getElementById(firstRoom);
	var roomType2 = document.getElementById(secondRoom);
	var roomType3 = document.getElementById(thirdRoom);
	var message = "";	
	
	if(document.getElementById(txtCheckinClientId).value!=''&&document.getElementById(txtCheckoutClientId).value!=''){

	    var checkinTxt  = document.getElementById(txtCheckinClientId);
	    var checkoutTxt = document.getElementById(txtCheckoutClientId);
	    checkinDate = jQuery.global.parseDate(checkinTxt.value, patternCalendarStandard, jQuery.global.culture);
        checkoutDate = jQuery.global.parseDate(checkoutTxt.value, patternCalendarStandard, jQuery.global.culture);
        
        var currentDate = new Date();

        if (currentDate > checkinDate) {
            message += "*Invalid check-in date!<br/>";
        }
        
        if(checkinDate>=checkoutDate){
            message+="*Invalid check-out date format!<br/>";
        }
        var one_day=1000*60*60*24;
        var dt = Math.ceil(checkoutDate.getTime() - checkinDate.getTime())/one_day;
        if(dt>30){
            message+="*Maximum number of nights is 30!<br/>";
        }
    }
	
	if(document.getElementById(txtCheckinClientId).value==''){
	    message+="*Invalid check-in date!<br/>"
	}
	
	if(document.getElementById(txtCheckoutClientId).value==''){
	    message+="*Invalid check-out date!<br/>";
	}
	
	if(!roomType1.value && !roomType2.value && !roomType3.value){
		message +="*You must select at least one room!<br/>";
		//return false;
	}
	
	var nrRooms1=document.getElementById(firstNumber);
	var nrRooms2=document.getElementById(secondNumber);
	var nrRooms3=document.getElementById(thirdNumber);

	var occupancy1 = roomType1.value == ""?0:roomType1.value.split("|")[1];
	var occupancy2 = roomType2.value == ""?0:roomType2.value.split("|")[1];
	var occupancy3 = roomType3.value == ""?0:roomType3.value.split("|")[1];
	var totalRooms=parseInt(nrRooms1.value)+parseInt(nrRooms2.value)+parseInt(nrRooms3.value);
	
	var selectList = new Array();
	
	selectList.push(document.getElementById(a0));
	selectList.push(document.getElementById(a1));
	selectList.push(document.getElementById(a2));
	selectList.push(document.getElementById(a3));
	selectList.push(document.getElementById(a4));
	selectList.push(document.getElementById(b0));
	selectList.push(document.getElementById(b1));
	selectList.push(document.getElementById(b2));
	selectList.push(document.getElementById(b3));
	selectList.push(document.getElementById(b4));
	//TODO	
	var childsmessage = '';
	for (var i = 0; i < selectList.length; i++)
	{
	    if (selectList[i].getAttribute("IsVisible") != null && selectList[i].getAttribute("IsVisible") == "1")
	    {
	        if (selectList[i].selectedIndex == 0)
	        {
	            childsmessage = '1';
	            //ShowMessage("All children ages are mandatory!");
	            //return false;
	        }
	    }
	}
	if(childsmessage=='1')
	{
	    message+="*All children ages are mandatory!<br/>";
	}
//	if(totalRooms>5){
//		ShowMessage("The total number of rooms must be less or equal to 5");
//		//arguments.IsValid=false;
//		return false ;
//	}
	var total=parseInt(nrRooms1.value)*parseInt(occupancy1)+parseInt(nrRooms2.value)*parseInt(occupancy2)+parseInt(nrRooms3.value)*parseInt(occupancy3);
	
	if(total>9 ){
		//ShowMessage("The total number of passengers must be less or equal to 9");
		message+="*The total number of passengers must be less or equal to 9!";
		//return false;
	}
	
	if(total<=0){	
		//ShowMessage("There have to be at least one passenger");
		//return false;
	}
	
	if(message=="")
	    return true;
	else{
	    ShowMessage(message,'',"Warning");
	    return false;
	}
}

var mesData='dd/mm/yyyy';

function IsValidDate(dateString) {

//    if (dateString.split("/").length != 3) {       
//        return null;
//    }
//    var day = parseInt(dateString.split("/")[0].replace(/^0/g, ""), 10);
//    var month = parseInt(dateString.split("/")[1].replace(/^0/g, ""), 10);
//    var year = parseInt(dateString.split("/")[2].replace(/^0/g, ""), 10);

    var day = dateString.getDate();
    var month = dateString.getMonth();
    var year = dateString.getFullYear();

    if (isNaN(day) || isNaN(month) || isNaN(year))
        return null; 

    if (day < 1 || day > 31) {        
        return null;
    }
    
    if (month < 0 || month > 12) {        
        return null;
    }
    
    if (year < 1900 || year > 9999) {        
        return null;
    }
  
//    var thisDate = new Date();
//    thisDate.setFullYear(year, month - 1, day);  
//    
//    if(thisDate.getDate() != day || thisDate.getMonth()!=(month-1)||thisDate.getFullYear()!=year)
//    return null;
   
    //return thisDate;    
    return dateString;
}

function IsValidDateNoHour(dateString) {

    if (dateString.split("/").length != 3) {       
        return null;
    }
    var day = parseInt(dateString.split("/")[0].replace(/^0/g, ""), 10);
    var month = parseInt(dateString.split("/")[1].replace(/^0/g, ""), 10);
    var year = parseInt(dateString.split("/")[2].replace(/^0/g, ""), 10);

    if (isNaN(day) || isNaN(month) || isNaN(year))
        return null; 

    if (day < 1 || day > 31) {        
        return null;
    }
    
    if (month < 1 || month > 12) {        
        return null;
    }
    
    if (year < 1900 || year > 9999) {        
        return null;
    }
  
    var thisDate = new Date(0,0,0,0,0,0);
    thisDate.setFullYear(year, month - 1, day);  
    
    if(thisDate.getDate() != day || thisDate.getMonth()!=(month-1)||thisDate.getFullYear()!=year)
    return null;
   
    return thisDate;    
}


function Clip(ageddl)
{
    var color = ageddl.style.backgroundColor;
    ageddl.style.backgroundColor = "#ff0000";
    var todo = "document.getElementById('" + ageddl.id + "').style.backgroundColor = '" + color + "'";
    setTimeout(todo, 500);
}

function ClearDate(elem)
{
    if (elem.value=='dd/mm/yyyy')
    {
        elem.value='';
    }
}

function ChangeDate(elem)
{
    if (elem.value=='')
    {
        elem.value='dd/mm/yyyy';
    }
}

function CheckInDateChange(sender,args){
  
    ddlNights1=document.getElementById(ddlNights);
    var checkin =sender._selectedDate; 
    var checkout = IsValidDateNoHour(document.getElementById(txtCheckOut).value);
    if (checkout!=null&&checkout>checkin)
    {
         var nights=Math.round((checkout.getTime() - checkin.getTime()) / (60 * 60 * 24 * 1000));
         if (nights<=30&&nights>=1)
            ddlNights1.selectedIndex=nights;
         else 
            ddlNights1.selectedIndex=0;
    }
    else 
    {
        ddlNights1.selectedIndex=0;
    }
}

function CheckOutDateChange(sender,args){
//    alert(sender._selectedDate);
   
    ddlNights1=document.getElementById(ddlNights);
    var checkout =sender._selectedDate; 
    var checkin = IsValidDateNoHour(document.getElementById(txtCheckIn).value);
    if (checkin!=null&&checkout>checkin)
    {
         var nights=Math.round((checkout.getTime() - checkin.getTime()) / (60 * 60 * 24 * 1000));
         if (nights<=30&&nights>=1)
            ddlNights1.selectedIndex=nights;
         else 
            ddlNights1.selectedIndex=0;
    }
    else 
    {
        ddlNights1.selectedIndex=0;
    }
}

function ChangeNights(isCustomSearch)
{
    ddlNights1=document.getElementById(ddlNights);    
    checkin = IsValidDate(jQuery.global.parseDate(document.getElementById(txtCheckIn).value, patternCalendarStandard, jQuery.global.culture));
        
    var setnewDate = new Date();    
    setnewDate=checkin;
    setnewDate.setDate(parseInt(checkin.getDate())+parseInt(ddlNights1.options[ddlNights1.selectedIndex].value));
    setnewDate.setHours(0,0,0,0);
         
    if(isCustomSearch==0)
    {
         if (checkin!=null)
         {
           // checkin.setDate(parseInt(checkin.getDate())+parseInt(ddlNights1.options[ddlNights1.selectedIndex].value));
            document.getElementById(txtCheckOut).value = jQuery.global.format(checkin, "d");      
         }       
    }
    else
    {    
        if (checkin==null) return;
         
        var datePickerMaxDate = $('.datepicker').datepicker('option','maxDate');            
        var maxdateCal =jQuery.global.parseDate(datePickerMaxDate, patternCalendarStandard, jQuery.global.culture);
            
        var ddlHiddenNights=document.getElementById(ddlHiddenNightsClientId); 
        if(setnewDate >maxdateCal )
        {           
            document.getElementById(ddlNightsClientId).selectedIndex = parseInt(ddlHiddenNights.value)-1;
            ShowMessage("*You cannot select a check-out day after "+datePickerMaxDate +"!","","Warning");
            //popupAlert("Not a valid date!", "You cannot select a check-out day after "+ datePickerMaxDate +"!", accountDesignPath);            
        }
        else
        {           
            document.getElementById(txtCheckOut).value = jQuery.global.format(checkin, "d");             
            ddlHiddenNights.value = parseInt(document.getElementById(ddlNightsClientId).selectedIndex) + 1;                        
        }
    }                
}

function openDetailsPage(page, code, hname,prvCode,countryCode, cityCode,tid)
{
    var HotelName = unescape(hname);    
    window.open(page+"?code="+code+"&hname="+HotelName + "&pc="+prvCode + "&countryCode="+countryCode + "&cityCode="+cityCode + "&tid="+tid , "", 'scrollbars,screenY=50,height=600,width=660');
    return false;
}


function ShowCancellationPolicy(id,e){
  //  debugger;
   document.body.style.cursor = 'wait';
   cp_posx = 0;
   cp_posy = 0;
	if (!e) var e = window.event;
	cp_ev = e;
	if (e.pageX || e.pageY) 	{
		cp_posx = e.pageX;
		cp_posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		cp_posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		cp_posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}   
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	}	
	var url="../../HttpHandlers/AJAXDates.ashx";
	url=url+"?type=5";
	url=url+"&tid="+id;
	url=url+"&sid="+Math.random();
    xmlHttp.onreadystatechange = SetCancellationPolicy; 
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function SetCancellationPolicy(){
   // debugger;
	if (xmlHttp.readyState==4){ 
	  var resp = xmlHttp.responseXML.childNodes[0];
      showToolTip(cp_ev, GetXMLContent(resp));      
      document.body.style.cursor = 'default';
	}
}

function showToolTip(e,text){
       // debugger;
	    if(document.all)e = event;    	
	    var obj = document.getElementById('bubble_tooltip');
	    var obj2 = document.getElementById('bubble_tooltip_content');
	    
	    obj2.innerHTML = text;
	    obj.style.display = 'block';
	    var st = 0;//Math.max(document.body.scrollTop,document.documentElement.scrollTop);
	    if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0; 
	    var leftPos = cp_posx - 250;
	    if(leftPos<0)leftPos = 0;
	    obj.style.left = leftPos + 'px';
	    obj.style.top = cp_posy -100 + st + 'px';
    }
    
 function hideToolTip()
    {
	    document.getElementById('bubble_tooltip').style.display = 'none';    	
    }    
    
function GetXMLContent(node) {
    if (document.implementation && document.implementation.createDocument) {
        return node.textContent;
    } else {
        return node.nodeTypedValue;
    }
}	

function GetMoreRoomTypes(rowId)
{
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	}	
	var url="../../HttpHandlers/AJAXDates.ashx";
	url=url+"?type=4";
	url=url+"&rowId="+rowId;
	url=url+"&meal1="+meal1;
	url=url+"&meal2="+meal2;
	url=url+"&meal3="+meal3;
	url=url+"&meal4="+meal4;
	url=url+"&meal5="+meal5;
	url=url+"&sid="+Math.random();
    xmlHttp.onreadystatechange=AddRows; 
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function AddRows()
{
	if (xmlHttp.readyState==4)
	{ 
		var resp = xmlHttp.responseXML.childNodes[0];    
        var div = document.getElementById("div" + GetXMLContent(resp.attributes[0]));
      	div.innerHTML = GetXMLContent(resp);
      	var divtr=document.getElementById("divtr" + GetXMLContent(resp.attributes[0]));
      	divtr.style.display="none";
	}
}

function ShowSpecialOffers(e, content)
{
    cp_posx = 0;
    cp_posy = 0;
    if (!e){ 
     e = window.event;
    }
	cp_ev = e;
	if (e.pageX || e.pageY)
	{
		cp_posx = e.pageX;
		cp_posy = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		cp_posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		cp_posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	
    showToolTip(e, content);
    document.body.style.cursor = 'default';
}


