﻿var availBlock = 1;

function getCrtlPrefix() {
	var prefix;
	var cpfx = document.getElementById("cpfx");
	if (cpfx) prefix = cpfx.value;
	return prefix;
}

function getPage(e) {
	try {
		var f = document.getElementById('aspnetForm'), a;
		if ( e.target != undefined ) {
			a = e.target;
		}
		else {
			a = window.event.srcElement;
		}
		a = GetA(a);
		if ( a == undefined || a.href == undefined || a.nodeName == undefined || (a.host != undefined && a.host.replace(":80","") != window.location.host) || a.href.indexOf('#') != -1 ) return(true);
		if ( a.nodeName == 'A' ) {
			if ( a.pathname.substring(0,1) == '/' ) {
				f.action = a.pathname;
			}
			else {
				f.action = '/' + a.pathname;
			}
			var rn = document.getElementById(getCrtlPrefix() + 'hidRecordNumber');
			if ( a.getAttribute('recordNumber') != undefined ) {
				rn.value = a.getAttribute('recordNumber');
			}
			else { rn.value = 1; };
			f.submit();
		}
		return(false);
	}
	catch(e){alert(e.message);}
}

function GetA(node) {
	try {
		for ( ; node != undefined && node.nodeName != 'A'; node = node.parentNode) {};
		return (node);
	}
	catch(e){alert(e.message);}
}

function scrollToLoc(toID) {
	try {
		document.getElementById('azloc' + toID).scrollIntoView(1);
	}
	catch(e){}
}

function changeSortOrder() {
	try {
		var f = document.getElementById('aspnetForm'), s = document.getElementById('selSortBy');
		if ( window.location.pathname.substring(0,1) == '/' ) {
			f.action = window.location.pathname;
		}
		else {
			f.action = '/' + window.location.pathname;
		}
		f.submit();
	}
	catch(e){alert(e.message);}
}

function changePictB(elname, pictid, link) {
  if (document.getElementById) {
		var el = document.getElementById(elname);
    el.style.backgroundImage = 'url("http://www.hotels-world.com/images/2' + pictid + '")';
    var l = link;
    for(l = link; l != null; l = l.nextSibling){
			if (l.tagName == 'A' && l.style != null) l.style.fontWeight = 'normal';
    }
    for(l = link; l != null; l = l.previousSibling){
			if (l.style != null) l.style.fontWeight = 'normal';
    }
    if (link.tagName == 'A' && link.style != null) link.style.fontWeight = 'bold';
  }
}

function changePictP(elname, pictid, link) {
  if (document.getElementById) {
		var el = document.getElementById(elname);
    el.style.backgroundImage = 'url("http://image.pegs.com/images/' + pictid + '")';
    var l = link;
    for(l = link; l != null; l = l.nextSibling){
			if (l.tagName == 'A' && l.style != null) l.style.fontWeight = 'normal';
    }
    for(l = link; l != null; l = l.previousSibling){
			if (l.style != null) l.style.fontWeight = 'normal';
    }
    if (link.tagName == 'A' && link.style != null) link.style.fontWeight = 'bold';
  }
}

function toTop() {
	try {
		document.getElementById('aspnetForm').scrollIntoView(1);
		return(false);
	}
	catch(e){alert(e.message);}
}

function toBottom() {
	try {
		document.getElementById('bottomline').scrollIntoView(1);
		return(false);
	}
	catch(e){alert(e.message);}
}

//Edit description
function saveDescr(propertyID,language,descriptionCtrl) {
	try {
		if (document.getElementById) {
			document.body.style.cursor = 'wait';
			var description = document.getElementById(descriptionCtrl);
			var msg = document.getElementById('msgDescrEditSave');
			msg.innerHTML = "Saving the description content";
			msg.style.visibility = "visible";
			Ws.General.saveDescr(propertyID,language,description.innerText,SavedDescr);
		}
	}
	catch(e){alert(e.message);}
}

function SavedDescr(result, eventArgs) {
	try {
		var msg = document.getElementById('msgDescrEditSave');
		msg.innerHTML = result;
		if (result != '') {
			msg.style.visibility = "visible";
		}
		else {
			msg.style.visibility = "hidden";
		}
		document.body.style.cursor = 'default';
	}
	catch(e){alert(e.message);}
}

//Avail form
function checkSubmitForm(formNo,hashIn,isList,Ciyymm,Ciday,Nights,Adults,OutDepartDt){
	try {
		if (document.getElementById) {
			availBlock = formNo;
			var y = Ciyymm.value.substr(0,4);
			var m = new Number(Ciyymm.value.substr(5,2));
			var nmd = new Number(Ciday.value);
			if (isValidDate(nmd, m-1, y)) {
				if (isList) {
					var avMap = document.getElementById('mapAvailability');
					if (avMap != undefined) {
						var fromDate = ''+y+Ciyymm.value.substr(5,2);
						if (nmd <= 9) {fromDate+='0';}
						fromDate+=nmd;
						avMap.setAttribute("fromDate",fromDate);
						avMap.setAttribute("nights",Nights.value);
						avMap.setAttribute("adults",Adults.value);
						magnify(true);
					}
				}
				else {	//property
					var fromDate = ''+y+Ciyymm.value.substr(5,2);
					if (nmd <= 9) {fromDate+='0';}
					fromDate+=nmd;
					document.getElementById('divAvailWait'+formNo).style.display='block';
					document.getElementById('divAvail'+formNo).style.display='none';
					Ws.General.GetAvailability(hashIn, fromDate, Nights.value, Adults.value, GotAvail);
				}
				return;
			}
			alert('Please note the date is not valid');
		}
	}
	catch(e){alert(e.message);}
}

function submitBookings() {
	var arr = document.getElementsByTagName('select');
	var argsRooms = '';
  var args = document.getElementById('propID').value;
	
	for ( var i = 0; i < arr.length; i++ ) {
		if ( arr[i].className == 'book') {
			if ( arr[i].value != "0" ) {
				argsRooms += arr[i].name + '=' + arr[i].value + '&';
			}
		}
	};
	if ( argsRooms == '' ) {alert ('Please first select the number of rooms required');}
	else {
		var url = 'https://secure.booking.com/book.en.html?aid=303646&label=hw&stage=1&' +  args + '&' + argsRooms;
		var wdwopt = 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=' + screen.width + ',height=' + screen.height + ',left=0,top=0';
		window.location.href=url;
		return;
	}
	for ( var i = 0; i < arr.length; i++ ){
		if ( arr[i].className == 'book') {
			arr[i].focus();
			return;
		}
	};
	return;
}

function GotAvail(result, eventArgs) {
	try {
		document.getElementById('divAvailWait'+availBlock).style.display="none";
		var da = document.getElementById('divAvail'+availBlock);
		da.style.display='block';
		da.innerHTML = result;
		document.getElementById('divAvSearch'+availBlock).scrollIntoView(1);		
	}
  catch(e){alert(e.message);}
}

function magnify() {
}

function isValidDate(day,month,year){
  //Purpose: return true if the date is valid, false otherwise. Valid dates should be current date or after
  //Variables: dteDate - date object
  var dteDate;
  //javascript months start at 0 (0-11 instead of 1-12)
  dteDate = new Date(year,month,day);
  var crntDt = new Date();
  var crntdate = new Date(crntDt.getYear(),crntDt.getMonth(),crntDt.getDate());
  var res = (crntdate <= dteDate);
  if (res) res=((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
  return res;
}

function checkDateOrder(Ciyymm,Ciday,Nights,Adults,OutDepartDt){
	try {
		if (document.getElementById) {
			var my = Ciyymm.value.split("-");
			var ci = new Date (my[0], my[1]-1, Ciday.value, 12, 0, 0, 0);
		}
	}
	catch(e){alert(e.message);}
}

function calcDeparture(cal,Ciyymm,Ciday,Nights,Adults,OutDepartDt){
  if (document.getElementById) {
    /*format-date( $lookupEndDate, 'dddd d MMMM yyyy'*/
    var y = Ciyymm.value.substr(0,4); //2006-01
    var m = new Number(Ciyymm.value.substr(5,2)); //2006-01
    var nmd = new Number(Ciday.value);
    var nmNights = new Number(Nights.value);
    var d = nmd + nmNights;
    var dt = new Date(y, m-1, d);
    var days = new Array("Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday");
    var months = new Array("January", "February", "March", "April","May", "June", "July", "August", "September", "October", "November", "December");
	  if (isValidDate(nmd, m-1, y)) {
      OutDepartDt.innerHTML = days[dt.getDay()] + ' ' + dt.getDate() + ' ' + months[dt.getMonth()] + ' ' + dt.getFullYear();
		  return;
	  }
    OutDepartDt.innerHTML = '';
  }
}

function showCalendar(cal,Ciyymm,Ciday,Nights,Adults,OutDepartDt){
	if (document.getElementById) {
		calendar.calfrm = 'aspnetForm';
		calendar.cal = cal; // document.getElementById(cal);
		calendar.calf = document.getElementById(calendar.calfrm);
		calendar.Ciyymm = Ciyymm; //document.getElementById(Ciyymm);
		calendar.Ciday = Ciday; //document.getElementById(Ciday);
		calendar.ClSearchNights = Nights; //document.getElementById(Nights);
		calendar.Adults = Adults;
		calendar.OutDepartDt = OutDepartDt; //document.getElementById(OutDepartDt);
		var my = calendar.Ciyymm.value.split("-");
		y=my[0];m=my[1];d=calendar.Ciday.value;
		buildCal(y,m,d);
		calendar.cal.style.display="block";
	}
}

function butBookHi(img) {
	try {
		img.src='/tmplimages/submitBook.png';
	}
  catch(e){alert(e.message);}
}

function butBookLi(img) {
	try {
		img.src='/tmplimages/submitBookLi.png';
	}
  catch(e){alert(e.message);}
}

function submitBook(nmbr,rateplanID,roomID) {
	try {
		if (document.getElementById){
			var selNmbr = document.getElementById(nmbr);
			if ( selNmbr.value == 0 ) {
				alert('Please first select the number of rooms required');
			}
			else { 
				var domain = document.getElementById('bookurl');
				var availID = document.getElementById('availID');
				window.location.href=domain.value + '?availID=' + availID.value + '&nmbrRooms=' + selNmbr.value + '&rateplanID=' + rateplanID + '&roomID=' + roomID;
			}
		}
	}
  catch(e){alert(e.message);}
}

function displinks() {
	try {
		if (document.getElementById){
			var displinks = document.getElementById('AvSeeNxt');
			if (displinks != undefined && displinks.style.display != "block") {
				displinks.style.display = "block";
			}
			else {
				displinks.style.display = "none";
			}
		}
	}
  catch(e){alert(e.message);}
}

function switchExpandv2(expandViewRoomsExplainViewAll,expandViewRoomsExplainHideAll,expandViewRooms,additRooms) {
	try {
		var d = document.getElementById(expandViewRooms);
		if (d != undefined && d.className == 'viewAll') {
			d.className = 'noViewAll';
		}
		else {
			d.className = 'viewAll';
		}
		var r = document.getElementById(additRooms);
		if (r != undefined && r.style.display == "none") {
			r.style.display = "block";
			document.getElementById(expandViewRoomsExplainViewAll).style.display = "none";
			document.getElementById(expandViewRoomsExplainHideAll).style.display = "inline";
		}
		else {
			r.style.display = "none";
			document.getElementById(expandViewRoomsExplainViewAll).style.display = "inline";
			document.getElementById(expandViewRoomsExplainHideAll).style.display = "none";
		}
		return false;
  }
  catch(e){alert(e.message);}
}

function closeCal() {
	calendar.cal.style.display='none';
	calcDeparture(calendar.cal,calendar.Ciyymm,calendar.Ciday,calendar.ClSearchNights,calendar.Adults,calendar.OutDepartDt)
}

function makeArray() {
	for (i = 0; i<makeArray.arguments.length; i++)
		this[i] = makeArray.arguments[i];
}

function buildCal(y,m,d){
  var daysInMonth=[31,0,31,30,31,30,31,31,30,31,30,31];
  var monthsNr = new makeArray("01","02","03","04","05","06","07","08","09","10","11","12");
  td=new Date();
  if (!y) y = td.getFullYear();
  if (!m) m = monthsNr[td.getMonth()];
  if (!d) d = td.getDate;
  var frm = calendar.calfrm;
  var mDate = new Date(y, m-1, 1);
  var firstMonthDay = mDate.getDay();
  daysInMonth[1]=(((mDate.getFullYear()%100!=0)
    &&(mDate.getFullYear()%4==0)) || (mDate.getFullYear()%400==0))?29:28;

  var today = (y==td.getFullYear() && m==td.getMonth()+1)? td.getDate() : 0;
  var t='<table class="caltable" cellspacing="0"><tr>';
  var flm=td.getMonth()+1;var flyr=td.getFullYear();
  for(p=0;p<=10;p++){
    if (flm == m) {
        filaMonth = p;
    }
    flm++; if (flm>12) { flm=1;flyr++ }
  }
  t+='<td class="calheader" colspan="7" >';
  if (filaMonth == 0) {
    t+='<img class="calNoPrevMonth" src="' + tr.icons + '/transparent.png" width="24" height="24" alt="'+tr.prevMonth+'">';
  }
  else {
    t+='<a class="calPrevMonth" href="" onclick="prevMonth('+y+','+m+'); return false;" title="'+tr.prevMonth+'"><img src="' + tr.icons + '/transparent.png" width="24" height="24" alt="'+tr.prevMonth+'"></a>';
  }
  t+='&nbsp;<select name="ym" onchange="goMonth(this.options[this.selectedIndex].value)">';
  var mn=td.getMonth()+1;var yr=td.getFullYear();
  for(n=0;n<=10;n++){
    t+='<option value="' + mn + '"';
    if (mn == m) {
        t+=' selected="selected"';
    }
    t+='>' + months[mn-1] + ' ' + yr +'</option>';
    mn++; if (mn>12) { mn=1;yr++ }
  }
  t+= ' </select>&nbsp;';
  if (filaMonth == 10) {
    t+='<img class="calNoNextMonth" src="' + tr.icons + '/transparent.png" width="24" height="24" alt="' + tr.nextMonth + '">';
  }
  else {
    t+='<a class="calNextMonth" href="" onclick="nextMonth('+y+','+m+'); return false;" title="' + tr.nextMonth +'"><img src="' + tr.icons + '/transparent.png" width="24" height="24" alt="' + tr.nextMonth + '"></a>';
  }
  t+='</td></tr>';
  t+='<tr class="dayNames">';
  for(dn=0;dn<7;dn++){
    var cl = '';
    if ((dn%7==5) || (dn%7 == 6)) cl += ' weekend';
    t+='<td class="'+cl+'">'+days[dn]+'</td>';
  }
  t+='</tr><tr class="days">';
  for(i=1;i<=42;i++){
    var x = i - (firstMonthDay+6)%7;
    if (x > daysInMonth[m-1] || x <1) x = '&nbsp;';
    var cl = '';
    var href = 0;
    if ((i%7==0) || (i%7 == 6)) cl += ' weekend';
    if (x>0){
        var xDay = new Date(y, m-1, x);
        if ((xDay.getFullYear() == y) && (xDay.getMonth()+1 == m)
            && (xDay.getDate() == d))
            { cl += ' selected' ; href=1}
        if ((xDay.getFullYear() == td.getFullYear())
            && (xDay.getMonth() == td.getMonth())
            && (xDay.getDate() == td.getDate()))
            { cl += ' today'; href=1;}
        else {
            if (xDay > td){ cl += ' future'; href=1; }
            else {
                if (xDay < td) { cl += ' past'}
            }
        }
    };
    t+='<td class="'+cl+'">';
    if (href){
        t+='<a href="#" onclick="pickDate('+y+','+m+','+x+',\''+frm+'\'); return false;">'+x+'</a>';
    } else {
        t+=x;
    }
    t+='</td>';
    if(((i)%7==0)&&(i<36)) {
        t+='</tr><tr class="days">';
    }
  }
  t+='</tr><tr><td colspan="7"><a href="#" onclick="closeCal();return false;">' + tr.closeCalendar + '</a></td></tr></table>';
  calendar.cal.innerHTML=t;
}

function prevMonth(y,m) {
  if (new Date(y,m-1,1) < td) return;
  if (m > 1) {m--} else {m = 12; y--};
  buildCal(y,m);
}

function nextMonth(y,m) {
  if (m<12){m++;} else {m=1;y++;}
  if (y > td.getFullYear() && m >= td.getMonth() ) return;
  buildCal(y,m);
}

function goMonth(m){
  var y = td.getFullYear();
  if (m < td.getMonth()+1) y++;
  buildCal(y,m);
}

function pickDate(y,m,d,frm){
	// set form values
	var f = calendar.calf;
	var monthsNr = new makeArray("01","02","03","04","05","06","07","08","09","10","11","12");
	calendar.Ciyymm.value = y + "-"  + monthsNr[m-1];
	calendar.Ciday.value = d;
	closeCal();
}

calendar = new Object();
tr = new Object();
tr.nextMonth = "Next month";
tr.prevMonth = "Previous month";
tr.closeCalendar = "Close";
tr.pressCtlD = "";
tr.pressCtlP = "";
tr.url = "";
tr.title = "Hotels-World Welcome";
tr.icons = "/tmplimages";
var months=['January','February','March','April','May','June','July','August','September','October','November','December'];
var days=['Mo','Tu','We','Th','Fr','Sa','Su'];

// old av forms
/*
function checkDate(formday, formmonth, formyear){
	var day   = parseInt(formday, 10);
	var month = parseInt(formmonth, 10);
	var year  = parseInt(formyear, 10);
	var febdays = 28;
	if(isNaN(day) || isNaN(month) || isNaN(year) || (day != formday) || (month != formmonth) || (year != formyear)|| (formyear.length != 4) )
		return false;
	if( (month > 12) || (day < 1) || (month < 1) || (year < 1) )
		return false;
	if( (month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12) ){
		if(day > 31)
			return false;
		}else{
			if(day > 30)
				return false;
		}
		if(month == 2){
			if( ( ((year % 4) == 0) && ((year % 100) != 0) ) || ((year % 400) == 0) )
				febdays = 29;
				if(day > febdays)
					return false;
		}
		return true;
}
function isInteger(val, radix, min, max){
	var int_val = parseInt(val, radix);
	if(isNaN(int_val))
		return false;
	if(val != int_val)
		return false;
	if(min < max)
		if( (int_val > max) || (int_val < min) )
			return false;
	return true;
}

function doValidate(){
	var f = document.frmDetails;
	if(!checkDate(f.txtDateDay.value, f.txtDateMonth.value, f.txtDateYear.value)){
		alert("Please fill in a valid arrival date.");
		f.txtDateDay.focus();
		return false;
	}
	dtArr = new Date(f.txtDateYear.value, f.txtDateMonth.value-1, f.txtDateDay.value);
	dtNow = new Date();
	dtYear = new Date();
	dtYear.setFullYear(dtNow.getFullYear()+1);
	if(dtArr < dtNow){
		alert("Arrival date cannot be in the past.");
		f.txtDateDay.focus();
		return false;
	}
	if(dtArr > dtYear){
		alert("Sorry, you cannot book a room more than 1 year in advance.");
		f.txtDateDay.focus();
		return false;
	}
	if(!isInteger(f.txtNights.value, 10, 1, 99999)){
		alert("Please fill in a valid number of rooms.");
		f.txtNights.focus();
		return false;
	}
	if(!isInteger(f.txtNights.value, 10, 1, 21)){
		alert("Sorry, you can only book for maximum 21 nights at once.");
		f.txtNights.focus();
		return false;
	}
	if(!isInteger(f.txtPersons.value, 10, 1, 1000)){
		alert("Please fill in a valid number of persons.");
		f.txtPersons.focus();
		return false;
	}
	if(!isInteger(f.txtRooms.value, 10, 1, 1000)){
		alert("Please fill in a valid number of rooms.");
		f.txtRooms.focus();
		return false;
	}
	f.action="http://www.arakea.com/book/clientweb/makeReservation.aspx?hotelcode=" + hc;
	f.target="_blank";
	f.submit();
}
*/
// eo old av forms

