﻿/*************************************************************************
  This code is from Dynamic Web Coding at dyn-web.com
  Copyright 2003-5 by Sharon Paine 
  See Terms of Use at www.dyn-web.com/bus/terms.html
  regarding conditions under which you may use this code.
  This notice must be retained in the code as is!
*************************************************************************/

// adjust horizontal and vertical offsets here (distance from mouseover event which activates tooltip)
Tooltip.offX = 8;  
Tooltip.offY = 4;
Tooltip.followMouse = false;  // must be turned off for hover-tip

// tooltip content variables
function doTooltip(e, msg, delay, isAJAX) {
	//document.body.style.cursor = 'help';
	if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;	
	Tooltip.clearTimer();
	var tip = document.getElementById? document.getElementById(Tooltip.tipID): null;
	if ( tip && tip.onmouseout == null ) {
		tip.onmouseout = Tooltip.tipOutCheck;
		tip.onmouseover = Tooltip.clearTimer;
	}
	Tooltip.show(e, msg, delay, isAJAX);
}

function positionTip(pos)
{
	if ( !pos ) return;
	Tooltip.posTipAJAX(pos);
}

function hideTip() {
	//document.body.style.cursor = 'default';
	if ( typeof Tooltip == "undefined" || !Tooltip.ready ) return;
	Tooltip.timerId = setTimeout("Tooltip.hide()", 10);	// timeout changed from 100	
	var nAgt = navigator.userAgent;
	var verOffset;
	if ((verOffset=nAgt.indexOf("MSIE"))!=-1)
	{
		if (parseFloat(nAgt.substring(verOffset+5)) < 7)
		{
			if(Tooltip.page=="search")
			{
				document.getElementById('sortDiv').style.visibility='visible';
				document.getElementById('inCurrencyId').style.visibility='visible';
				document.getElementById('ddlRegions').style.visibility='visible';
				document.getElementById('ddlTowns').style.visibility='visible';
				document.getElementById('ddlLocations').style.visibility='visible';
				document.getElementById('dateFrom_Day').style.visibility='visible';
				document.getElementById('dateFrom_MonthYear').style.visibility='visible';
				document.getElementById('nights').style.visibility='visible';
				document.getElementById('occupationTypeId').style.visibility='visible';
				document.getElementById('stars').style.visibility='visible';
				document.getElementById('currencyId').style.visibility='visible';
			}
			if(Tooltip.page=="hotel")
			{
				document.getElementById('day_dateFrom').style.visibility='visible';
				document.getElementById('month_year_dateFrom').style.visibility='visible';
				document.getElementById('nights').style.visibility='visible';
				document.getElementById('currencyId').style.visibility='visible';
				
				var roomsCountHidden = document.getElementById('roomsCount');
				if (roomsCountHidden)
				{
					var roomsCount = roomsCountHidden.value;
					for (var i = 0; i < roomsCount; i++) 
					{
						document.getElementById('price' + i).style.visibility='visible';
					}
				}
			}
		}
	}
}

Tooltip.tipOutCheck = function(e) {
	e = dw_event.DOMit(e);
	// is element moused into contained by tooltip?
	var toEl = e.relatedTarget? e.relatedTarget: e.toElement;
	if ( this != toEl && !contained(toEl, this) ) Tooltip.hide();
}

// returns true of oNode is contained by oCont (container)
function contained(oNode, oCont) {
	if (!oNode) return; // in case alt-tab away while hovering (prevent error)
	while ( oNode = oNode.parentNode ) if ( oNode == oCont ) return true;
	return false;
}

Tooltip.timerId = 0;
Tooltip.clearTimer = function() {
  if (Tooltip.timerId) { clearTimeout(Tooltip.timerId); Tooltip.timerId = 0; }
}

Tooltip.unHookHover = function () {
    var tip = document.getElementById? document.getElementById(Tooltip.tipID): null;
    if (tip) {
        tip.onmouseover = null; 
        tip.onmouseout = null;
        tip = null;
    }
}

dw_event.add(window, "unload", Tooltip.unHookHover, true);

/********************************/
/************** QS **************/
/********************************/
function PageQuery(q) 
{
	if(q.length > 1) this.q = q.substring(1, q.length);
	else this.q = null;
	this.keyValuePairs = new Array();
	if(q) 
	{
		for(var i=0; i < this.q.split("&").length; i++) 
		{
			this.keyValuePairs[i] = this.q.split("&")[i];
		}
	}
	this.getKeyValuePairs = function() { return this.keyValuePairs; }
	this.getValue = function(s) 
	{
		for(var j=0; j < this.keyValuePairs.length; j++) 
		{
			if(this.keyValuePairs[j].split("=")[0] == s)
			return this.keyValuePairs[j].split("=")[1];
		}
		return false;
	}
	this.getParameters = function() 
	{
		var a = new Array(this.getLength());
		for(var j=0; j < this.keyValuePairs.length; j++) 
		{
			a[j] = this.keyValuePairs[j].split("=")[0];
		}
		return a;
	}
	this.getLength = function() { return this.keyValuePairs.length; } 
}
function queryString(key)
{
	var page = new PageQuery(window.location.search); 
	return unescape(page.getValue(key)); 
}

/*********************************************/
/************** Valid on submit **************/
/*********************************************/
function ValidOnSubmit()
{
	var result = true;
	
	var DF = document.getElementById('dateFrom');
	var dateParts = DF.value.split('-');
	if (dateParts.length == 3)
	{
		var d=30;
		var m = parseInt(dateParts[1],10);
		var y = parseInt(dateParts[0],10);
	
		if( m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12  )
		{
			d=31;
		}
		else if( m!=2 )
		{
			d=30;
		}
		else
		{
			if( y%4!=0 || (y%4==0 && y%100==0) ) d=28;
			else d=29;
		}
		if( 1<= parseInt(dateParts[2],10) && parseInt(dateParts[2],10)<=d )
		{
			try
			{
				var date = new Date(y, m-1, parseInt(dateParts[2],10));
				/*
				alert(	'y: ' + parseInt(dateParts[0],10) + '\n' +
						'm: ' + (parseInt(dateParts[1],10)-1) + '\n' +
						'd: ' + parseInt(dateParts[2],10) + '\n' +
					date );
				*/
			}
			catch(ex)
			{
				result = false;
			}
		}
		else
			result = false;
	}
	else 
		result = false;
		
	if(!result)
		alert('incorrect date!');
		
	return result;
}
/* execute by calendarPopup */
function setDateNew(d,m,y, hidden)
{
	document.getElementById(hidden).value = y + '-' + m + '-' + d;
	document.getElementById('dateFrom_Day').selectedIndex = d-1;
	
	var tmp = document.getElementById('dateFrom_MonthYear').options[0].value.split('-');
	var beginFrom_Year = parseInt(tmp[0],10);
	var beginFrom_Month = parseInt(tmp[1],10);
	
	document.getElementById('dateFrom_MonthYear').selectedIndex = 12*(y - beginFrom_Year) + m - beginFrom_Month;
}

function sleep(time){
	var sleeping = true;
	var now = new Date();
	var alarm;
	var startingMSeconds = now.getTime();
	while(sleeping){
		alarm = new Date();
		alarmMSeconds = alarm.getTime();
		if(alarmMSeconds - startingMSeconds > time){ sleeping = false; }
	}
}