var TimerForHotelRates;

function showFotoHotel(el){
    
	im = $("FotoHotel");

	var p_el = el.src, p_ft = im.src;
	var p = p_el.split('/');
	var f = p_ft.split('/');
	// fotoHotel.src = el.src;
	var s = "";
	for(i=0;i<f.length-3;i++) s += f[i]+"/";
	for(i=p.length-3;i<p.length;i++) s += p[i]+(i==p.length-1?"":"/");
	_im = s; 	
	// im =  	
	if(im.src != _im || isSrcFromCache(_im)){
		im.src = getSrcFromCache(_im);
		Show_ForImage(); 
	}
	else im.src = getSrcFromCache(_im); 	
/*	 	
	//fotoHotel.src = s; // p_ft.substring(0,i_ft) + p_el.substring(i_el,p_el.length);
	//if(fotoHotel.src != s){
	    window.status = "showFotoHotel(): " + fotoHotel.src + " | " + s;
	    fotoHotel.src = el.src;
	    fotoHotel.width = 277;
	    fotoHotel.height = 222;
//	    changePicture(s);
	    currentPicture = s;	
	//}
	if(timer != null) clearTimeout(timer);
	timer = setTimeout("changeFotoHotel()", 100);
*/
}
		
function changeFotoHotel(){
if(timer != null) clearTimeout(timer);
fotoHotel.src = currentPicture;
}

function EnableHotelRates(){		
var btn =  document.getElementById("btnHotelRates");
btn.disabled = false;		
}
		
function showHotelRates(el){
if(!CheckADDate()) return false;
	Rates_Request(true, true);
	var CountOfPerson = $("CountOfPerson").value;
	var CountOfRoom	  = $("CountOfRoom").value;	
	var _ArrivalDate  = $("_ArrivalDate").value;
	var _DepartureDate= $("_DepartureDate").value;
	var _VisitorID    = $("VisitorID").value;
	var _Lang		  = $("Lang").value;
	StatusRequestTable();
	TimerHotelRates();
	getRates(Brand,Pid,CountOfPerson,CountOfRoom,_ArrivalDate,_DepartureDate,3,_VisitorID,_Lang);	
}

function getRates(Brand,Pid,RoomType,AmountOfRooms,FromDate,ToDate,Amount,VisitorID,Language){
	var Rates = new CallBackObject();
	Rates.OnError    = Rates_OnError;
	Rates.OnComplete = Rates_Get;
	var uPrice = String($("uPrice").value).split(';');
	var qPrice = "uPrice=";
	var room = parseInt(RoomType,10);
	if(room >= 1 && room <= 3)
		qPrice += uPrice[room-1];

	var URL = "/CatalogueRates/getRates.aspx";
	var Query  = 'Brand='+Brand + '&'+ 'Pid=' + Pid  + '&'+ 
		'RoomType='+RoomType  + '&'+ 'AmountOfRooms='+ AmountOfRooms + '&'+
  		'FromDate=' + FromDate+'&'+ 'ToDate=' + ToDate + '&'+
  		'Amount=' + Amount+'&'+ 'VisitorID=' +VisitorID +'&'+
		'Language=' + Language+$("AddQuery").value + '&' + qPrice; // +'&user='+$("user").value; 
//alert(URL+"\n"+Query);
	Rates.DoCallBack(URL,Query);
	return true;
}
		
function Rates_OnError(status, statusText, responseText){
	alert("OnError: " + status + "\r"+ statusText+"\r"+responseText);
	Rates_Request(false);
}

function Rates_Get(responseText, responseXML){
	var divHotelRates = $("HotelRates");
	var res = String(responseText); //.trim();
	if (res.length > 0){
		res = str_replace( "%amp%", "'", res);
	    res = str_replace( "%d_amp%", '"', res);
		divHotelRates.innerHTML = res; 
	}
	
	if(TimerForHotelRates != null) clearTimeout(TimerForHotelRates);
	var b = drawInfoRates();
	// Rates_Request(false,b);
}

function draw_InfoRates(){
	var b = false;
	if ($("CatalogueRates_AmountOfRates")){
		var el = $("InfoHotelRates"); 
		var s = $("CatalogueRates_AmountOfRates").value;	
		putValue("InfoHotelRates",s);	
		b = true;
	}
	else if($("CatalogueRates_MessageTextNotAvailable")){
		var el = $("InfoHotelRates"); // RequestHotelRates		
		var s = $("CatalogueRates_MessageTextNotAvailable").value;
		el.innerHTML = s;
		b = true;
	}
	return b;
}

function drawInfoRates(){
	var b = false;
	if ($("CatalogueRates_MessageText")){
		var el = $("InfoHotelRates"); 
		var s = $("CatalogueRates_MessageText").value;
			
		el.innerHTML = s + " <A style='FONT-SIZE: 11px' href='#aHotelRates'>"+$("ShowRates").value+"</A>";	
		Rates_Request(false,true);
		//var a = $("aHotelRates");
		//var y = calculateOffsetTop(a);
		//window.scrollTo(0,y);	
		if(isRun.toLowerCase()!="true")
			sHR();	
		b = true;
	}
	else if($("CatalogueRates_MessageTextNotAvailable")){
		var el = $("InfoHotelRates"); 
		var s = $("CatalogueRates_MessageTextNotAvailable").value;
		el.innerHTML = s;
		b = true;
		Rates_Request(false,true);	
	}
	else Rates_Request(false,false);	
	return b;
}

function sHR(){
var a = $("aHotelRates");
var y = calculateOffsetTop(a);
window.scrollTo(0,y);	
}

	
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 getValue(e){
	var v = null
	var el = $(e); 
	
	if(el.innerText) v= el.innerText;
	else if(el.innerHTML) v= el.innerHTML;
	else v = el.value; 
	return v;
}		
		
function strReplace(source, pattern, replacement){
    var result = '', match;
    
    if (String(source).length > 0){
      if (match = String(source).match(pattern)) {
        result += String(source).substring(0, match.index);
		result += replacement;
		var i = match.index + String(pattern).length ;
		var l = String(source).length;
		if(i<l) result += String(source).substring(i, l);
      } 
      else result += source;
    }
    return String(result);
}		
		
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);
}		
		
// divHotelRates		
function Rates_Request(OnOff, sh){
	var StatusReqiest = $("divStatusReqiest");
	var Reqiest = $("RequestHotelRates");
	var divHotelRates = $("HotelRates");
	var infoHotelRates = $("InfoHotelRates");
	if(OnOff){
		Reqiest.style.display = "none"; 
		StatusReqiest.style.display = "block";	
		divHotelRates.style.display = "none";	
		infoHotelRates.style.display = "none";
	}
	else{
		StatusReqiest.style.display = "none";
		Reqiest.style.display = "block";	
		var err = $("Error_GetRates");
		divHotelRates.style.display = err?"none":"block";
		infoHotelRates.style.display = sh?"block":"none";	
	}
}
		
function hideHotelRates(){
	$("divStatusReqiest").style.display = "none";
	$("RequestHotelRates").disabled = false;
	$("HotelRates").style.display = "none";	
	$("InfoHotelRates").innerHTML =	"&nbsp;";
}

function TimerHotelRates(){
	if(TimerForHotelRates != null) clearTimeout(TimerForHotelRates);
	TimerForHotelRates = setTimeout('GetStatusReqiest()', 100);
}

function GetStatusReqiest(){
	var tbl = $("tblStatusRequest");
	var b = true;
	for(var c=0;c<tbl.rows[0].cells.length;c++){
		var cls = tbl.rows[0].cells[c];
		objDiv = cls.getElementsByTagName("DIV");
		if(objDiv[0].className == "load_border"){
			objDiv[0].className = "load_border2";
			b = false;break
		}
	}
	if(b){
		for(var c=0;c<tbl.rows[0].cells.length;c++){
			var cls = tbl.rows[0].cells[c];
			objDiv = cls.getElementsByTagName("DIV");
			objDiv[0].className = "load_border";
		}
	}
	TimerHotelRates();

}
		
function StatusRequestTable(){
	// коллекция всех таблиц в документе
	t = $("tblStatusRequest");
	for(var c=0;c<$("tblStatusRequest").rows[0].cells.length;c++){
		var cls = $("tblStatusRequest").rows[0].cells[c];
		objDiv = cls.getElementsByTagName("DIV");
		objDiv[0].className = "load_border";
	}
}

function bookclick(an){
var a = $(an);
// alert("bookclick(): " + an);
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()}
}

function shPost(){
	var obj = $("Comment"); // document.getElementById(id); 
    if (obj.style.display == '') { 
            obj.style.display = 'none'; 
            $("CommentCtrl").innerHTML = '...>>'; 
    } else { 
            obj.style.display = ''; 
            $("CommentCtrl").innerHTML = hideComment; 
    } 
    hideAllPost('');
}

function hideAllPost(id){
    for(var i=0;i<100;i++){
        if(i!=id){
            var o = $("post"+i);
            if(o && o.style.display != 'none'){
                o.style.display = 'none'; 
                $("post_"+i).innerHTML = '...>>';
            }
        }    
    }
}

function showhide(id){
    if(!id) shPost();
    else{
	    var obj = $("post"+id); // document.getElementById(id); 
        if (obj.style.display == '') { 
                obj.style.display = 'none'; 
                $("post_"+id).innerHTML = '...>>'; 
        } 
        else { 
            obj.style.display = ''; 
            var o = $("post_"+id);
            o.innerHTML = hideComment; 
            hideAllPost(id);
            o = $("Comment");
            if (o.style.display == ''){ 
                o.style.display = 'none'; 
                $("CommentCtrl").innerHTML = '...>>'; 
            } 
        }
   }   
}

function LoadEvent(){
//alert("LoadEvent()")
onSetPeriod();
if(isRun.toLowerCase()=="true"){ 
	sHR();
	showHotelRates();
}
}

//addLoadEvent(LoadEvent);


function setOnUnloadPage(){               
    for(var i=0; i<document.links.length; i++){
        link = document.links[i];
        if(!link.onclick) link.onclick = "unloadPage();return true"}
}

function SaveCookie(){
if($("BookBlock")){
    deleteCookie("search_cookie");
    var cookies = GetParamForCookies();
    setCookie("search_cookie",cookies);
}}
function unloadPage(){
//alert("unloadPage()");
SaveCookie();
return true;
}
	    
function s(n,v){
     var el = $(n);
     v = String(v).toUpperCase();
     if(el)
        for(j=0;j<el.options.length;j++)
            if(el.options[j].value == v){el.selectedIndex=j;break}
}

function LoadEvent(){
onSetPeriod();
if(isRun.toLowerCase()=="true"){ 
	sHR();
	showHotelRates();
}
}

function onloadPage(){
if(isCook=="yes"){
    var cookie = getCookie("search_cookie");
//    alert("cookie:\n" + cookie);
    if(cookie){
        var ps = cookie.split("&");
        for(ii=0;ii<ps.length;ii++){
            var p = ps[ii].split("=");
            if(p.length>1){
                var f = String(p[0]).toLowerCase()
                if(f == "roomtype") RoomType = p[1];
                else if(f == "amountofrooms") AmountOfRooms = p[1];
                else if(f == "arrivaldate") ArrivalDate = p[1];
                else if(f == "departuredate") DepartureDate = p[1];
                else if(f == "visitorid") $("VisitorID").value = p[1];
                ;
	        }
        }
    }
}
LoadEvent();

return true;
}

addLoadEvent(LoadEvent);


function GetParamForCookies(){
    var cookies = 
        'RoomType=' + $v("CountOfRoom") + '&'+ 'AmountOfRooms='+ $v("CountOfPerson") + '&'+
  		'ArrivalDate=' + $v("_ArrivalDate")+'&'+ 'DepartureDate=' + $v("_DepartureDate") + '&'+
  		'VisitorID=' + $v("VisitorID");
  	return cookies;
}
