﻿	// Send error log for javascript 
	function SendErrorLog(message)
	{
		var objHTTP, strResult;        
		
		objHTTP = new XMLHttpRequest();
		objHTTP.open('POST','/pages/agoda/default/JavascriptErrorLog.aspx', false);        
		objHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		objHTTP.send('error_message=' + message);
		strResult=objHTTP.responseText;
	}          
	
	//These functions below are for showing hotel description on map page 
	// http://bontragerconnection.com/ and http://willmaster.com/
	// Version: July 28, 2007
	var cX = 0; var cY = 0; var rX = 0; var rY = 0;
	function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;}
	function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;}
	if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
	else { document.onmousemove = UpdateCursorPosition; }
	
	function AssignPosition(d) {
	// alert(d)
	if(self.pageYOffset) {
		rX = self.pageXOffset;
		rY = self.pageYOffset;
		}
	else if(document.documentElement && document.documentElement.scrollTop) {
		rX = document.documentElement.scrollLeft;
		rY = document.documentElement.scrollTop;
		}
	else if(document.body) {
		rX = document.body.scrollLeft;
		rY = document.body.scrollTop;
		}
	if(document.all) {
		cX += rX; 
		cY += rY;
		}	    
		//alert(cX);
		if(cX > 1100 ){
			cX = 1100;
		}
	   //alert('| 2 - ' + cX);
	d.style.left = eval(cX-(d.offsetWidth/2)) + "px";
	d.style.top = (cY+15) + "px"; 

	}
	
	function AssignPositionpopup(d) {   
	if(self.pageYOffset) {
		rX = self.pageXOffset;
		rY = self.pageYOffset;
		}
	else if(document.documentElement && document.documentElement.scrollTop) {
		rX = document.documentElement.scrollLeft;
		rY = document.documentElement.scrollTop;
		}
	else if(document.body) {
		rX = document.body.scrollLeft;
		rY = document.body.scrollTop;
		}
	if(document.all) {
		cX += rX; 
		cY += rY;
		}    
	   
	d.style.left = eval(cX-(d.offsetWidth/2)) + "px";
	d.style.top = (cY+15) + "px"; 
 
	//recalculate position if overlap
	if (cY + 25 + d.offsetHeight > 460){
		d.style.top = eval((cY-15-d.offsetHeight)) + "px"; 
	}
	
	if (cX-(d.offsetWidth/2) < 0) {
		d.style.left = "15px";
	}
	
	if (cX-(d.offsetWidth/2) + d.offsetWidth > 700) {
		 d.style.left = eval(685-d.offsetWidth) + "px";
	}
		
	}
	function HideContent(d) {
	if(d.length < 1) { return; }
	document.getElementById(d).style.display = "none";
	}
	function ShowContent(d) {
	if(d.length < 1) { return; }
	var dd = document.getElementById(d);
	dd.style.display = "block";
	AssignPosition(dd);
	}
	function ShowContent_ab(d) {
	if (d.length < 1) { return; }
	var dd = document.getElementById(d);
	dd.style.display = "block";

	}
	function ShowContentPopup(d) {
	if(d.length < 1) { return; }
	var dd = document.getElementById(d);
	dd.style.display = "block";
	AssignPositionpopup(dd);
	}
	function ReverseContentDisplay(d) {
	if(d.length < 1) { return; }
	var dd = document.getElementById(d);
	if(dd.style.display == "none") { dd.style.display = "block"; }
	else { dd.style.display = "none"; }
	AssignPosition(dd);
	}
	//--> 
	
function doCookieTest() {

	if ( !navigator.cookiesAreEnabled() ) {
	  window.alert( msg );
	} 
}


// JScript File

function isEmail(inputStr) 
{
var Mail
		for (var i = 0; i < inputStr.length; i++) 
		{
			var oneChar = inputStr.substring(i, i + 1)
			  if (Mail != "pass" ) 
			  {              
				if (oneChar == "@" && oneChar != " ")     
				  {
					  Mail = "pass" ;
				  }
				else
				 {
				  if (oneChar == " ")     
				   {
					  Mail = "No" ;
					}
				  } 
				} 
			 else   
				  {
				   if ( oneChar == "." )
					  {
						 Mail = Mail + "OK";      
					  }   
				 else
					 {
					  if (oneChar == " ")     
						{
						   Mail = "No" ;
						 }
					  } 
				 } 
				}
		if (Mail == "passOK") 
		{    
		  Mail = "nopass"   
		  return false;
		 }
	   else 
	   {
		 Mail = "nopass"
		 return true; 
		}
}

function CheckChar(inputstr, strLen)
{
	var retxtname = inputstr;
	for (var i = 1; i <= strLen; i++){
		retxtname = retxtname.replace("<", "");
		retxtname = retxtname.replace(">", "");
	}      
	return retxtname;
}

function checkEnglish(field) {
var valid = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-.,:;!?()+-*/=_%#@&$\'\" \r\n"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
	 return false;
   }
return true;
}

function CheckInteger(field) {
var valid = "0123456789-+ ,"
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
	return false;
   }
return true;
}

//For GoogleSearch
function _doGoogleSearch(Control) {
    var _objSearchTxt = document.getElementById(Control);
    //alert(_objSearchTxt.value);
    if (_objSearchTxt == null || _objSearchTxt.value == "") {
        return; }

    var _urlquery = "";    
	switch (lang) {
		case "1": // English
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Acp--zme4rcm&cof=FORID%3A11&q=";
			break;
		case "2": // French
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3A3bfck8jj-wm&cof=FORID%3A11&q=";
			break;
		case "3": // German
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3A2wgw-vjcq6k&cof=FORID%3A11&q=";
			break;
		case "4": // Italian
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Ai7i2xb6jgqs&cof=FORID%3A11&q=";
			break;
		case "5": // Spanish
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Aprxghvexila&cof=FORID%3A11&q=";
			break;
		case "6": // Japanese
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Ayeajzm72vua&cof=FORID%3A11&q=";
			break;
		case "7": // (T) Chinese
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Afyx0kbn4il4&cof=FORID%3A11&q=";
			break;
		case "8": // (S) Chinese
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3A9exqgiswar4&cof=FORID%3A11&q=";
			break;
		case "9": // Korean
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3A9i1al6x1zbu&cof=FORID%3A11&q=";
			break;
		case "10": // Greek
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:7wauqtubtqk&cof=FORID%3A11&q=";
			break;
		case "11": // Russian
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Axy9mjwcxnac&cof=FORID%3A11&q=";
			break;
		case "12": // Portugese
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3A2eaudyovipk&cof=FORID%3A11&q=";
			break;
		case "13": // Dutch
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Awcexdqymxia&cof=FORID%3A11&q=";
			break;
		case "22": // Thai
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3A5cxegc9-eck&cof=FORID%3A11&q=";
			break;
		case "23": // Malay
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Axucq-auqy98&cof=FORID%3A11&q=";
			break;
		case "24": // Vietnamese
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3A72fp1yq8ev4&cof=FORID%3A11&q=";
			break;
		case "25": // Swedish
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Aswwai-c-w5o&cof=FORID%3A11&q=";
			break;
		case "26": // Indonesian
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3A51wnxn7l4wk&cof=FORID%3A11&q=";
			break;
		case "27": // Polish
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Aqan4jalbtjg&cof=FORID%3A11&q=";
			break;
		case "28": // Norwegian
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Akfu16z9egfi&cof=FORID%3A11&q=";
			break;
		case "29": // Danish
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Ax_tpu5vng00&cof=FORID%3A9&q=";
			break;
		case "30": // Finnish
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Ar7t2dydbgx4&cof=FORID%3A9&q=";
			break;
		case "31": // Czeck
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:6m8sjankvfg&cof=FORID%3A9&q=";
			break;
		case "32": // Turky
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:c7stfjp57m8&cof=FORID%3A9&q=";
			break;
		case "33": // Catalan
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:5bevvmlcvoe&cof=FORID%3A9&q=";
			break;
		case "34": // Hungarian
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:kkdlptutnpe&cof=FORID%3A9&q=";
			break;
		case "35": // Hindi
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:g7ibi5kox3i&cof=FORID%3A9&q=";
			break;
		case "36": // Bulgarian
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:pdkhssi-ft8&cof=FORID%3A9&q=";
			break;
		case "37": // Romanian
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:y2qvxh4vbwu&cof=FORID%3A9&q=";
			break;
		case "38": // Slovenian
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:qgjrdzgjoka&cof=FORID%3A9&q=";
			break;
		case "39": // Hebrew
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:zog-2az-rw0&cof=FORID%3A9&q=";
			break;
		case "40": // Arabic
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281:jie0sgpn2yk&cof=FORID%3A9&q=";
			break;
		default: // English
			_urlquery = "/pages/agoda/default/page_googleresults.aspx?cx=006337136994700578281%3Acp--zme4rcm&cof=FORID%3A11&q=";
			break;
	}
	
	if (_objSearchTxt) {
		var SearchTxt=new String(_objSearchTxt.value);
		SearchTxt=SearchTxt.replace(" ","+");
		window.location.href = _urlquery + SearchTxt;
   }
}
function clearText(DefaultValue, Control) {
	document.getElementById(Control).value = "";
	document.getElementById(Control).style.backgroundPosition = DefaultValue;

}

function resetText(DefaultValue, Control) {
	if (document.getElementById(Control).value == "")     
	{
		document.getElementById(Control).style.backgroundPosition = DefaultValue;  
	}
}    

function checkSingleQuote(event, alert_text, id) {
	var textbox = document.getElementById(id);
	if (window.event) {
		if (event.keyCode == 39) {
			alert(alert_text);
			event.returnValue = false;
			textbox.focus();
			return false;
		}
	}
	else {
		if (event.charCode == 39) {
			alert(alert_text);
			event.returnValue = false;
			textbox.focus();
			return false;
		}
	}
	
	return true;
}

var win = null;
function NewWindow(mypage,myname,w,h,scroll){
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable'
	win = window.open(mypage,myname,settings)
}

var goMenuTimeout = null;
function delayShowPopup(fn,times) {  
   
   //goMenuTimeout = setInterval(fn,times);
  goMenuTimeout = setTimeout(fn,times);
}

function delayHidePopup(ctrl) {
	clearTimeout(goMenuTimeout);
	HideContent(ctrl);
   //clearInterval(goMenuTimeout);
	 
}

///Go to an anchor within page(all broswer support|including chrome).
function GoToAnchor(anchorName){
	
	var is_chrome = /chrome/.test(navigator.userAgent.toLowerCase());
	if(is_chrome){
		window.location.hash='';
		//for chrome support. Reset hash
	}
	
	//Go to <a name="anchorName" />
	window.location.hash=anchorName;

}



///
/// This script is used in page_city, 3/4/5 stars, area, cheap, hotelfacility, hoteltype, and luxury pages.
///
var jquerySupport = true;
try{
	//test jquery support on webpage(has jquery file reference) .
	$(document).ready(function () {});
} catch (ex) {
	//page that refer to this file does not contain jquery file as reference.
	jquerySupport = false;
}

if(jquerySupport){

	 $(document).ready(function () {
		var isClickShowRate = false;



		$('.hot-item').mouseover(function () {

			$(this).attr('style', 'background-color:#efefef;cursor:pointer;z-index:1');
			//hotel link
			var hotellink = 'hotlnk-' + $(this).attr('itemid');
			//        $("#" + hotellink).attr('style','color:#234c9b;');
			//show rate link
			var showrate = "showrate-item" + $(this).attr('itemid');
			//$("a[itemid='" + showrate + "']").attr('style', 'background:url("http://img.agoda.net/images/ABTest/ABTest350/bullet_blue.png") no-repeat right 1px');
			$("a[itemid='" + showrate + "']").attr('class', 'see_allreviewhover');
			isClickShowRate = false;

		});
		$('.hot-item').mouseout(function () {
			$(this).removeAttr('style');
			//hotel link
			var hotellink = 'hotlnk-' + $(this).attr('itemid');
			$("#" + hotellink).removeAttr('style');
			//show rate link.
			var showrate = "showrate-item" + $(this).attr('itemid');
			$("a[itemid='" + showrate + "']").removeAttr('style');
		});
		$('.hot-item').click(function () {
			if (!isClickShowRate) {
				var hotellink = 'hotlnk-' + $(this).attr('itemid');
				window.location = $("#" + hotellink).attr('href');
			}
		});
		$('.see_allreview').click(function () {
			isClickShowRate = true;
		});

	});

}

///
/// End This script is used in page_city, 3/4/5 stars, area, cheap, hotelfacility, hoteltype, and luxury pages.
///

// 
// Class ClientTimer - use this class in DestinationSearchResult page(CitySearhResult control).
//                          To handle long run loading data situation(page always show "loading" and it keeps hitting the server)
//


	// Class constructor
	// This code gets called when you instantiate this class
	ClientTimer = function Client$Timer(expires, userCallback, shouldContinue) {
		// Calls the base ctor, if any
		ClientTimer.initializeBase(this);

		// Initializes the private members
		this._shouldContinue = false;
		if (typeof (shouldContinue) !== 'undefined') {
			this._shouldContinue = shouldContinue;
		}
		this._expires = expires;
		this._raiseTickDelegate = Function.createDelegate(this, this._raiseTick);
		this._userCallback = userCallback;
		this._timer = null;
	}

	// PROPERTY:: expires: int (milliseconds)
	function Client$Timer$get_expires() { 
		if (arguments.length !== 0) throw Error.parameterCount();
		return this._expires;
	}
	function Client$Timer$set_expires(value) {
		var e = Function._validateParams(arguments, [{name: 'value', type: Int}]);
		if (e) throw e;

		this._expires = value;
	}

	// PROPERTY:: isActive: bool 
	function Client$Timer$get_isActive() { 
		if (arguments.length !== 0) throw Error.parameterCount();
		return (this._timer !== null);
	}



	// METHOD:: stop()
	function Client$Timer$stop(){
	   this._stopTimer();
	}

	// METHOD:: start()
	function Client$Timer$start(){
		this._startTimer();
	}


	///////                     ///////
	///////  PRIVATE members    ///////
	///////                     ///////


	function Client$Timer$_startTimer() {
		this._timer = window.setTimeout(this._raiseTickDelegate, this._expires);
	}

	function Client$Timer$_stopTimer() {
		this.dispose(); 	
	}

	function Client$Timer$_dispose() {
		if (this._timer !== null) {
			window.clearTimeout(this._timer);
			this._timer = null;
		}
	}

	function Client$Timer$_raiseTick() {
		if (this._userCallback !== null)
			this._userCallback();
		if (this._shouldContinue)
			this._startTimer();
	}

	// Class PROTOTYPE
	ClientTimer.prototype = 
	{
		get_isActive:  Client$Timer$get_isActive,
		get_expires:   Client$Timer$get_expires,
		set_expires:   Client$Timer$set_expires,
		dispose:       Client$Timer$_dispose,
		stop:          Client$Timer$stop,
		start:         Client$Timer$start,
		_raiseTick:    Client$Timer$_raiseTick,
		_startTimer:   Client$Timer$_startTimer,
		_stopTimer:    Client$Timer$_stopTimer
	}
	
// 
// End Class ClientTimer
//

