function HotelData(name, addr, rating, img){
this.name = name;
this.addr = addr;		
this.rating = rating;
this.img = img}

function calculateOffsetLeft(r){return Ya(r,"offsetLeft")}
function calculateOffsetTop(r){return Ya(r,"offsetTop")}
function Ya(r,attr){var kb=0;while(r){kb+=r[attr];r=r.offsetParent}return kb}
var baseImg = null;

function imgScr(scr){
var p_ft = String("http://images.horse21.it/images/300/173/"), p_el = String(scr);
var i_el = p_el.length, i_ft = p_ft.length;
for(i=i_el,j=3;i>0;i--)
if(p_el.charAt(i)=="/"){i_el = i+1;j -= 1;if(j==0) break}
p_ft = p_ft + p_el.substring(i_el,p_el.length);
return p_ft;
}

function get_wh(){
var frameHeight=640;
if (self.innerHeight) frameHeight = self.innerHeight;
else if (document.documentElement && document.documentElement.clientHeight) frameHeight = document.documentElement.clientHeight;
else if (document.body) frameHeight = document.body.clientHeight;
return frameHeight;
}
			
function getBodyScrollTop(){return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);}
function getBodyScrollLeft(){return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);}

// begin add by nIxOiD
var _cache_pics = new Array();

function getSrcFromCache(src) {
// $("textareaDebug").value += src;
	if (_cache_pics[src] == null) {
		_cache_pics[src] = new Image();
		_cache_pics[src].scr = src;
//		$("textareaDebug").value += " put cache";	
	}
//	else $("textareaDebug").value += " get cache";	
//	$("textareaDebug").value += "\r";
	return _cache_pics[src].scr;
}
// end add by nIxOiD

function isSrcFromCache(src){return _cache_pics[src]}

var _url, _im, _hl, _ctnm, _cnnm;				
function drawimg(el,hotel,rating,url,ctnm, cnnm){
//alert("drawimg(): " + url+ "  " + $(url).value);
var _u = $(url);
window.status = _u.href;
	nav=$('img1').style;
	var top = calculateOffsetTop(el)+70;
	var h = get_wh()+getBodyScrollTop();
	if(top+206>h) top = h - 206; 
		
	nav.left = calculateOffsetLeft(el)-40+"px";
	nav.top  = top + "px";
	im = $("img1_hotel");
	var childNodes = im.childNodes;
	var oLI = childNodes[0];
	if (oLI){
		var h = $(hotel);
		if(h.textContent)
			oLI.nodeValue = h.textContent;
		else oLI.nodeValue = h.innerText; // innetText;
	}
        		
	_ctnm = ctnm;    		
	_cnnm = cnnm;
	im = $("img1_rating");
	im.src = getSrcFromCache(rating); 
	im = $('img1_1');
	_im = imgScr(el.src);
	
	if(im.src != _im || isSrcFromCache(_im)){
		im.src = getSrcFromCache(el.src);
		Show_ForImage(); 
	}
	else $('img1_1').src = getSrcFromCache(_im);
	_url = url;
	_hl = hotel;
	nav.display='block';
}

var  _brand, _pid, _lang, _urlMap, _urlHotel;
function drawMap(el, e, brand, pid,lang,urlMap,urlHotel){
	var iframe = $('frameMap');
	if(iframe.style.display == 'block'){
		iframe.style.display = 'none';
		//iframe.src="";
	}
	else{ 
		if(urlMap != null && urlMap != ""){
		   var s = String(urlMap).split(';');
	    	   var hd = $("hm"+s[0],"hd"+s[0],"hp"+s[0]); // ]"hi"+urlMap);
	           hotelData = new HotelData(hd[0].innerHTML, hd[1].innerHTML, s[1], hd[2].src);		 	
		}
		shadowedScreen(true);
        _urlMap = urlMap;
		var h=(screen.height - 522)/2; // 522 _map.offsetHeight _map.offsetHeight screen.height document.body.clientHeight
		var w=(screen.width  - 700)/2;// 522  _map.offsetWidth screen.width document.body.clientWidth _map.offsetWidth
		var top = getBodyScrollTop() + h - 100;
		var left = getBodyScrollLeft() + w;
	
		var l = left+ "px";
		var t = top+ "px";

		iframe.style.position='absolute';
		iframe.style.left   = l;
		iframe.style.top    = t;
		iframe.style.width  = "722px";
		iframe.style.height = "524px";


//		iframe.style.visibility = 'visible';
//		iframe.style.display='block';
//		if(brand.charAt(0)=="!")
//		    brand = brand.substring(1,brand.length);
		var src="/catalog/map21.html?Brand="+brand+"&Pid="+pid+"&Lang="+lang;
		
//urlHotel="test"		
		if(urlHotel) src += "&Url="+urlHotel; // $(urlHotel).href;
		iframe.src=src; // "tmap.html?Brand="+brand+"&Pid="+pid+"&Lang="+lang+"&Url="+urlHotel;
//alert("iframe.src= " + src);
		iframe.style.visibility = 'visible';
		iframe.style.display='block';
	}
	clearEvent(e)
}

function drawMapOld(el, e, brand, pid,lang,urlMap,urlHotel){
//alert(el + "\n"+ e + "\n"+ brand + "\n"+ pid + "\n"+ lang + "\n"+ urlMap+ "\n"+urlHotel);
	nav=$('divMap').style;
	if(nav.display == 'block') HiddenMap();
	else{
	var top  = (calculateOffsetTop(el)+10) + "px";
	var left = calculateOffsetLeft(el)+"px";
	// _drawMap = true;
	_brand = brand;
	_pid   = pid;
	_lang = lang;
	_urlMap = urlMap;
	_urlHotel = urlHotel;
	Show_Map(); // showMap();
	clearEvent(e)
	}
}

function showMap(err){if(err!=0){CloseMap();ShowMap(_urlMap)}}
function MapShow(err){showMap(err)}

function showMapOld(err){
//alert("showMap(): " + err);
// err = 1;
if(err == 0){

//shadowedScreen(true);

	var _frame = $("frameMap");
	var _map   = $("divMap");
//	_map.style.width = "522px";
//	_map.style.height = "522px";
//var h=screen.height/2; 
//var w=screen.width/2;
//var top = getBodyScrollTop() + (screen.height-h)/2;
//var left = getBodyScrollLeft() + (screen.width-w)/2;

	_map.style.display='block';

	var h=(screen.height - 522)/2; // 522 _map.offsetHeight _map.offsetHeight screen.height document.body.clientHeight
	var w=(screen.width  - 700)/2;// 522  _map.offsetWidth screen.width document.body.clientWidth _map.offsetWidth
	var top = getBodyScrollTop() + h - 100;
	var left = getBodyScrollLeft() + w;
//window.status = 
//alert("Map: " + _map.offsetHeight + ":" +  _map.offsetWidth + "  " + 
//			    "screen: " + screen.height + ":" + screen.width + "  " + 
//				"ofs: " + top + ":" + left + "  " + 
//				"Scroll: "+ getBodyScrollTop()+":"+getBodyScrollLeft()+"  " + h + ":" + w);
                                   
	_map.style.left = left+ "px";
	_map.style.top  = top+ "px";

	_frame.style.position='absolute';
	_map.style.position='absolute';
	_frame.style.left   = _map.style.left;
	_frame.style.top    = _map.style.top;
	_frame.style.width  = _map.offsetWidth + "px";
	_frame.style.height = _map.offsetHeight + "px";


	_frame.style.visibility = 'visible';
	_map.style.visibility = 'visible';
		
	_frame.style.display='block';
	if(_urlHotel) $("linkHotel").href = $(_urlHotel).href;
//	_map.style.zIndex="999";	
//	_frame.style.zIndex="999";	
	//_map.style.filter="alpha(opacity=100)"; 
	//_map.style.opacity="1.0"; 
	//_frame.style.filter="alpha(opacity=100)"; 
	//_frame.style.opacity="1.0"; 
	shadowedScreen(true);

	}
else ShowMap(_urlMap);
}

function shadowedScreen(show){
//alert("shadowedScreen(): " + show);
	var s = $("shadowed").style;
	if(show){
		s.display='block'; 
		s.position='absolute';
		s.left='0px';
		s.top='0px';

		s.background="#a9a9a9";
		s.height = calculateOffsetTop($("botoom_menu"))+50+"px";
		s.width = document.body.clientWidth+"px"; //Присваиваем нашему диву ширину рабочей области scrollWidth
		s.filter="alpha(opacity=50)"; //Для ИЕ opacity=90
		s.opacity="0.5"; 
	}
	else s.display='none'; //"Выключаем" наш скрытый див
}

/*
var  _brand, _pid, _lang, _urlMap;
function drawMap(el, e, brand, pid,lang,urlMap){
// alert(el + "\n"+ e + "\n"+ brand + "\n"+ pid + "\n"+ lang + "\n"+ urlMap);
	nav=$('divMap').style;
	if(nav.display == 'block') HiddenMap();
	else{
	var top  = (calculateOffsetTop(el)+10) + "px";
	var left = calculateOffsetLeft(el)+"px";
	// _drawMap = true;
	_brand = brand;
	_pid   = pid;
	_lang = lang;
	_urlMap = urlMap;
	Show_Map(); // showMap();
	clearEvent(e)
	}
}

function showMap(err){
if(err == 0){
	var _frame = $("frameMap");
	var _map   = $("divMap");
	//_map.style.width = "540px";
	//_map.style.height = "480px";
	_map.style.display='block';
	_frame.style.left   = _map.style.left;
	_frame.style.top    = _map.style.top;
	_frame.style.width  = _map.offsetWidth + "px";
	_frame.style.height = _map.offsetHeight + "px";

	_frame.style.visibility = 'visible';
	_map.style.visibility = 'visible';
		
	_frame.style.display='block'}
else ShowMap(_urlMap);
}
*/
function browseMap(){
_checkcode = '12';
 f_brov('div_Map', _checkcode, _brand, _pid,_lang, showMap);
 //showMap(0);
}

var TimerForMap;
function Show_Map(){
if(TimerForMap != null) clearTimeout(TimerForMap);
TimerForMap = setTimeout('browseMap()', 100);
}

function HiddenMap(){
//$("divMap").style.display='none'; 
$("frameMap").style.display='none';
_drawMap = false;
shadowedScreen(false);
if(fmap) map = null;
}

function getKeyboard(e){
if (e.keyCode == 27){
 if($('frameMap').style.display != 'none') HiddenMap();
 if($('divAssessment').style.display != 'none') HiddenAssessment();}
}

function escapeURI(La){
if(encodeURIComponent) return encodeURIComponent(La);
if(escape) return escape(La)}

function GotoHotel(url){CloseMap();imgclick(url)}
                               
function CloseMap(){HiddenMap();$("frameMap").src = ""}

function imgclick(url){
	var a = $(_url);
	if(a==null) a = $(url);
	if(a.click){
		a.click();
	}
	else
	{
		var newF = document.createElement("form"); 
		newF.action = a.href ;
		newF.method = 'POST'; 
		
		document.getElementsByTagName('body')[0].appendChild(newF); 
		newF.submit(); 
	}
}
/*	
	var a = $("aTempLabel");
	var u = $(_hl);
	var s = u.innerText?u.innerText:u.textContent;
	var h = s.split(' ');
	s = "";
	for(var k=0; k<h.length; k++){
		if(s.length>0) s += "+";
		s += escapeURI(h[k]); 
	}	
	if(_ctnm==null) _ctnm = $("City").value;
	
	var ctnm = _ctnm.split(' ');
	_ctnm = "";
	for(var k=0; k<ctnm.length; k++){
		if(_ctnm.length>0) _ctnm += "+";
		_ctnm += escapeURI(ctnm[k]); 
	}
	var cn;
	if(_cnnm) cn = _cnnm;
	else cn = $("Country").value;
	
	s = "/"+cn+"+hotels/"+_ctnm+"+hotels/"+s;
	
var s = $(_url).href; 
var ctnm = s.split('/');
var h = ctnm[ctnm.length-1].split('+');
s="";
for(var k=0; k<h.length; k++){
	if(s.length>0) s += "+";
	if(h[k].indexOf("%")==-1) s += escapeURI(h[k]); 
	else s += h[k]; 
}
h="";
for(var k=0;k<ctnm.length-1;k++){
	// if(h.length>0) h += "/";
	h += ctnm[k] + "/";
}
// alert("hotel:\n" + s+"\n"+h);
s = h + s;	
// s = escapeURI(ctnm[ctnm.length-1]);
alert("imgclick(): " + "\n" + $(_url).href + "\n"+s);
var _u = $(_url);

	if(a.click){
		a.href = s ; // "/"+$("Country").value+"+hotels/"+$("City").value+"+hotels/"+s; // $(_url).href;
		a.click();
	}
	else
	{
		var newF = document.createElement("form"); 
		newF.action = s ;
		newF.method = 'POST'; 
		
		document.getElementsByTagName('body')[0].appendChild(newF); 
		newF.submit(); 
	}
	
}
*/

function createElement(newF,key,val){
//	var newH = $(key);

//	if(!newH)
	{
		/*@cc_on @if (@_jscript)  
		var newH = document.createElement("<input id='"+key+"' name='"+key+"'>");  
		@else */  
		newH = document.createElement("input"); 
		newH.name = key; /* @end @*/ 
		newH.type = 'hidden'; 
		newF.appendChild(newH);
	}
	newH.value = val; 
}

function str_replace ( search, replace, subject ) {
var result = ""; var prev_i = 0;
for (i = subject.indexOf(search); i > -1; i = subject.indexOf(search, i)) {
result += subject.substring(prev_i, i);
result += replace;
i += search.length;
prev_i = i;
}
return result + subject.substring(prev_i, subject.length);
}		


function hideimg(el){nav=$('img1').style;nav.display='none'}
function imgdraw(el){nav=$('img1').style;nav.display='block'}
function imghide(el){nav=$('img1').style;nav.display='none'}

function ShowMap(url){
//var h=screen.height/2; 
//var w=screen.width/2;
//var top = (screen.height-h)/2;
//var left = (screen.width-w)/2;
//myWin=window.open(url,"GoogleMap","menubar=no,status=no,resizable=yes,width="+w+",height="+h+",top="+top+",left="+left);
}

var drawAddAss = 0, daaId = null;
var _drawMap = false;
function daaFocus(){drawAddAss = 1}
function daaUnfocus(){drawAddAss = 0}

//function mapFocus(){if($('divMap').style.display != "none") _drawMap = false; window.status = _drawMap + " " + $('divMap').style.display} //  true}
//function mapUnfocus(){if($('divMap').style.display != "none") _drawMap = true; window.status = _drawMap + " " + $('divMap').style.display}

function mapFocus(){_drawMap = false; window.status = _drawMap + " " + $('divMap').style.display} //  true}
function mapUnfocus(){_drawMap = true; window.status = _drawMap + " " + $('divMap').style.display}


function clearEvent(e){
if (e.preventDefault){e.preventDefault();e.stopPropagation();} 
else{e.returnValue = false;e.cancelBubble = true;}
}

function HiddenAssessment(){
var e = $("divAssessment");
if(e) e.style.display='none'; 
e = $("frameAssessment")
if(e) e.style.display='none';
}

function ShowAssessment(){
var _frame = $("frameAssessment");
var _ass   = $("divAssessment");

_ass.style.display='block';
_frame.style.left   = _ass.style.left;
_frame.style.top    = _ass.style.top;
_frame.style.width  = _ass.offsetWidth + "px";
_frame.style.height = _ass.offsetHeight + "px";

_frame.style.visibility = 'visible';
_ass.style.visibility = 'visible';
	
_frame.style.display='block';

}

var Brand;
var Pid;
var ur;
function daa(el,e,b,p,u){
nav=$('divAssessment').style;
if(nav.display == 'block'){
	drawAddAss = 0;	
	var da = daaId;
	HiddenAssessment();
	if(el.id == da)	return;
}	
	
var d = getCookie("AddAss_"+b+"_"+p);
var curDate	= new Date();
if(d != null){
	var dd = new Date(d);
	dd.setTime(dd);
	if(dd.getTime()>curDate.getTime()) return;
}

clearAssessment();
	
var top = calculateOffsetTop(el)+14;
var h = get_wh()+getBodyScrollTop();
if(top+210>h) top -= 210; 
		
nav.left = calculateOffsetLeft(el)+"px";
nav.top  = top + "px";
	
$('iUserAssessment').url = el.url; 
	
daaId = el.id;
Brand = b;
Pid   = p;
ur    = u;
clearEvent(e);
ShowAssessment();
return false;
}

function setDelay(name){
var curDate = new Date();
curDate.setTime(curDate.getTime() + (24*60*60*1000)); // чрфхЁцър 1 ўрё 1*60*60*1000
setCookie("AddAss_"+Brand+"_"+Pid, curDate);
}

function showAssessment(){$('divAssessment').style.display='block'}

var TimerForAssessment;
function Show_Assessment(){
if(TimerForAssessment != null) clearTimeout(TimerForAssessment);
TimerForAssessment = setTimeout('showAssessment()', 100);
}

var TimerForImage;
function Show_ForImage(){
if(TimerForImage != null) clearTimeout(TimerForImage);
TimerForImage = setTimeout('showImage()', 10);
}

function showImage(){im.src = getSrcFromCache(_im)}

function clearAssessment(){
var radioAssessment = document.getElementsByName("radioAssessment");
for(i=0;i<radioAssessment.length;i++) radioAssessment[i].checked = false;
}

function userAssessment(el){
	var acc = "0";
	var radioAssessment = document.getElementsByName("radioAssessment");
	for(i=0;i<radioAssessment.length;i++){
		if(radioAssessment[i].checked){
			acc = radioAssessment[i].value;	
			break;
		}		
	}
	if(acc != 0) AddAssessment(el,acc)
	drawAddAss = 0;
	HiddenAssessment();
}

function BodyOnClick(){
window.status += " BodyOnClick(): " + _drawMap+"  " + $('divMap').style.display;
 hideAssessment();
 return true;
}

function hideAssessment(body){
if(drawAddAss == 0 && $('divAssessment').style.display != 'none') HiddenAssessment();
// if(_drawMap && $('divMap').style.display != 'none') HiddenMap();
if($('divMap').style.display != 'none') return false;
return true;
}

function fShowMap(){
return $('divMap').style.display != 'none';
}
function AddAssessment(el,acc){	
if(typeof(CallBackObject) == 'function'){
	var ClickAssessment = new CallBackObject();
	ClickAssessment.OnError    = Assessment_OnError;
	ClickAssessment.OnComplete = Assessment_Get;
	var URL = "/catalog/AddAssessment.aspx";// /catalog/
	var Query = "Property="+Brand+";"+Pid+"&acc="+acc;
	setDelay("AddAss_"+Brand+"_"+Pid);
	ClickAssessment.DoCallBack(URL,Query);
}
return true;
}

function Assessment_OnError(status, statusText, responseText){
alert("Assessment_OnError(): " + responseText);
}

function Assessment_Get(responseText, responseXML) 
{
if($("UsersRated") || ur){
	var rate = String(responseText).split(";");
	if(rate.length>0 && $("AvgRateHotel")) putValue("AvgRateHotel",rate[0])
			
	if(	rate.length>1 && $("CountUserRate")){
		var s = getValue("CountUserRate"); 
		s = s.substring(0,s.indexOf(":")+1)
		s = s + " " + rate[1];
		putValue("CountUserRate",s);
	}
	if($("UsersRated"))	$("UsersRated").style.display = 'block';
	if(ur && rate.length>0) putValue(ur,rate[0]);
}
}

function putValue(e,v){
var el = $(e); 
var childNodes = el.childNodes;
var e;
if (childNodes.length>0) e = childNodes[0];
else e = el;
		
if(e.textContent) e.nodeValue = v;
else e.nodeValue = v; 
}	

function setCookie(name, value) {
var curCookie = name + "=" + value.toString(); document.cookie = curCookie;
}

function getCookie(name) {
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1) return null
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length
return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}

function deleteCookie(name) {if (getCookie(name)) {document.cookie = name + "="}}        

function GetCountryHotels(CnNm,Search,SortBy,PageNum)
{
var Cbo = new CallBackObject();
Cbo.OnError    = GetCountryHotels_OnError;
Cbo.OnComplete = GetCountryHotels_Complete;
var URL = "/catalog/CountryListHotel.aspx";
var Query = "Country="+ CnNm+"&Search=" + escapeURI(Search)+"&SortBy="+SortBy+"&Page="+PageNum; 
$("btSearch").disabled=true;
var nm = $("Name");
//	$("Name").disabled=true;
nm.readOnly =  true;
var sr = $("SearchResult").innerHTML = msgWaitWeSearch; // "Wait. We search ...";
Cbo.DoCallBack(URL,Query,1);
return true;

}

function escapeURI(La){
if(encodeURIComponent) return encodeURIComponent(La);
if(escape) return escape(La)}


function GetCountryHotels_OnError(status, statusText, responseText){
$("btSearch").disabled=false;
var nm = $("Name");
$("Name").disabled=false;
$("SearchResult").innerHTML = msgErrorSearch; // "error search";
}

function GetCountryHotels_Complete(responseText, responseXML)
{
var nm = $("Name");
$("btSearch").disabled=false;
//$("Name").disabled=false;
nm.readOnly = false;
$("Name").focus();
var len = String(responseText).trim().length, msg = "";
if(len>0) $("tdListHotel").innerHTML = responseText;
else msg = msgNotFound; // ""; // ═шўхую эх эрщфхэю 
$("SearchResult").innerHTML = msg;
}

function gchPN(NP){
GetCountryHotels($("Country").value,$("lhSearch").value,$("lhSort").value,NP);
return false
}

function gchSB(Sort){
GetCountryHotels($("Country").value,$("lhSearch").value, Sort,"1");
return false
}

