var pup = null;

function img_on(imgName,imgTarg) {
    document[imgTarg].src = imgName;
}

function openwin(url,w,h,scr,title){
    var x=(screen.width/2)-(w/2); var y=(screen.height/2)-(h/2);
    if(x==null || y==null) x=y=10;
    if(pup != null && !pup.closed) pup.close();
    if(scr == null) scr="no";
    if(title != null) title="TravelAcademy"+title;
    pup=window.open(url, title,"height="+h+",width="+w+",left="+x+",top="+y+",scrollbars="+scr+",resizable=yes");
    pup.focus();
}

function getCookie(Name) {   
  var search = Name + "="; 
  if (document.cookie.length > 0) { 
    offset = document.cookie.indexOf(search); 
    if (offset != -1) { 
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      return unescape(document.cookie.substring(offset, end));
   }    
  }
  return null;
}

function setCookie(Name,value) {   
  var data=escape(value);
  var search = Name + "="   
  document.cookie=search+data+';'+'path=/';
}

function add_points(path){
  var points=getCookie('sel_points');
  if(points==null) {
     alert('Выберите точки маршрута');
     return;
  }
  window.location.href=path+'&points='+points;
  return;
}

function toggle_point(id) {   
  var res="";
  var find=false;
  if(getCookie("sel_points")){
   var points=getCookie("sel_points").split("-");
   for(i=0;i < points.length; i++){
    if(points[i]!=id) {
       if(res!="") res+="-";  
       res+=points[i];
       continue;
    }
    find=true;
   }
  }
  if(!find){
    if(res!="") res+="-";  
    res+=""+id;
  }
  setCookie("sel_points",res);  
}

function show_selections() {   

  if(getCookie("sel_points")){
   var points=getCookie("sel_points").split("-");
   for(i=0;i < points.length; i++){
    name="sel_"+points[i];
    el=document.getElementById(name);
    if(el){
        el.checked=true;
    }
   }
  }
}

function drop_selections() {   
  setCookie("sel_points","");
}

function refresh_changes() {
  window.location.reload(0);
}

function getRadioValue (radioButtonOrGroup) {
  var buttonsLength = radioButtonOrGroup.length;
  if (buttonsLength) { // group
    for (var b = 0; b < buttonsLength; b++)
      if (radioButtonOrGroup[b].checked)
        return radioButtonOrGroup[b].value;
  }
  else if (radioButtonOrGroup.checked)
    return radioButtonOrGroup.value;
  return null;
}

function uncheckRadioGroup (radioButtonOrGroup) {
  if (radioButtonOrGroup.length) { // we have a group
    for (var b = 0; b < radioButtonOrGroup.length; b++)
      if (radioButtonOrGroup[b].checked) {
        radioButtonOrGroup[b].checked = false;
        break;
      }
  }
  else 
    radioButtonOrGroup.checked = false;
}



/** XHConn - Simple XMLHTTP Interface - bfults@gmail.com - 2005-04-08        **
 ** Code licensed under Creative Commons Attribution-ShareAlike License      **
 ** http://creativecommons.org/licenses/by-sa/2.0/                           **/
function XHConn()
{
  var xmlhttp, bComplete = false;
  try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  catch (e) { try { xmlhttp = new XMLHttpRequest(); }
  catch (e) { xmlhttp = false; }}}
  if (!xmlhttp) return null;
  this.connect = function(sURL, sMethod, sVars, fnDone)
  {
    if (!xmlhttp) return false;
    bComplete = false;
    sMethod = sMethod.toUpperCase();

    try {
      if (sMethod == "GET")
      {
        xmlhttp.open(sMethod, sURL+"?"+sVars, true);
        sVars = "";
      }
      else
      {
        xmlhttp.open(sMethod, sURL, true);
        xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
        xmlhttp.setRequestHeader("Content-Type",
          "application/x-www-form-urlencoded");
      }
      xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && !bComplete)
        {
          bComplete = true;
          fnDone(xmlhttp);
        }};
      xmlhttp.send(sVars);
    }
    catch(z) { return false; }
    return true;
  };
  return this;
}




var sfield='';

function do_select(base,field,parent){

    if(sfield){
        document.getElementById('spopup').className="popuphidden";
        sfield='';
        return false;
    }

    var xc=new XHConn();
    var vars="";
    sfield=field;


    if(parent) {
        var el=document.getElementById(parent);
        if(!el.value || el.value=="0"){
             return false;
        }
        if(sfield=='city'){
            vars="CN_KEY="+el.value+"&";
        } else if(sfield=='hotel'){
            vars="CT_KEY="+el.value+"&";
        } 
        
    }

    xc.connect('/xmlreq/'+base+'.xml',"GET",vars+"rnd="+Math.random(),after_select); 
    return false;
}



function after_select(resp){

    var list=false;

    if(sfield=='country'){
        key='CN_KEY';
        name='CN_NAME';
        list=resp.responseXML.getElementsByTagName('Countries')[0].getElementsByTagName('Country');
    } else if(sfield=='city'){
        key='CT_KEY';
        name='CT_NAME';
        list=resp.responseXML.getElementsByTagName('Cities')[0].getElementsByTagName('City');
    } else if(sfield=='hotel'){
        key='HD_KEY';
        name='HD_NAME';
        list=resp.responseXML.getElementsByTagName('Hotels')[0].getElementsByTagName('Hotel');
    } 

    var i;
    var fr=document.getElementById('spopup');
    var cont='<SELECT MULTIPLE="MULTIPLE" style="width: 200px;" id="place" class="mselect" NAME="place" SIZE="10" onclick="do_confirm_select();">';

    for(i=0;i<list.length;i++){
        var place=list[i];
        cont+="<option value='"+place.getAttribute(key)+"'>"+place.getAttribute(name)+"</option>";
    }
    cont+='</SELECT>';
    fr.innerHTML=cont;

    y=getY(document.getElementById(sfield))+32;

    document.getElementById('spopup').style.top=y;
    document.getElementById('spopup').className="popupshow";

    var el=document.getElementById('place'); 
}


function do_confirm_select(){

    var el=document.getElementById('place');

    var op=el.options[el.selectedIndex];

    document.getElementById(sfield).value=op.value;
    document.getElementById(sfield+"_name").value=op.innerHTML;

    document.getElementById('spopup').className="popuphidden";
    sfield=false;
}


function getY (el) {
  if(document.layers){
    return el.y;
  } else {
   var ol = el.offsetTop;
   while ((el = el.offsetParent) != null)
    ol += el.offsetTop;
   return ol;
  }
}


/** 
01.01.2009 --> 
2009-01-01 */

function conv_date(fd){

    var nd="";    
    if(fd.length !=10 ) return false;
    nd+=fd.charAt(6);
    nd+=fd.charAt(7);
    nd+=fd.charAt(8);
    nd+=fd.charAt(9);
    nd+="-";
    nd+=fd.charAt(3);
    nd+=fd.charAt(4);
    nd+="-";
    nd+=fd.charAt(0);
    nd+=fd.charAt(1);
    return nd;
}

function conv_date_rev(fd){

    var nd="";    
    if(fd.length !=10 ) return false;
    nd+=fd.charAt(8);
    nd+=fd.charAt(9);
    nd+="-";
    nd+=fd.charAt(5);
    nd+=fd.charAt(6);
    nd+="-";
    nd+=fd.charAt(0);
    nd+=fd.charAt(1);
    nd+=fd.charAt(2);
    nd+=fd.charAt(3);
    return nd;
}

function submit_hotel_form(ikey){

//    ikey=4293;

    var xc=new XHConn();
    var form=document.forms['hotelform'];
    var vars="";

    var d1=conv_date(form.elements["FR_DATE"].value);
    var d2=conv_date(form.elements["TO_DATE"].value);
    if(!d1 || !d2) {
        alert('Укажите даты в формате ДД.ММ.ГГГГ');
        return false;
    }

    vars+= "FR_DATE="+d1+"&";
    vars+= "TO_DATE="+d2+"&";
    vars+= "HD_KEY="+ikey+"&";
    vars+= "ADT="+form.elements["ADT"][form.elements["ADT"].selectedIndex].value+"&";
    vars+= "AGE1="+form.elements["AGE1"][form.elements["AGE1"].selectedIndex].value+"&";
    vars+= "AGE2="+form.elements["AGE2"][form.elements["AGE2"].selectedIndex].value+"&";
    vars+= "AGE3="+form.elements["AGE3"][form.elements["AGE3"].selectedIndex].value+"&";
    vars+= "AGE4="+form.elements["AGE4"][form.elements["AGE4"].selectedIndex].value+"&";
//    vars+= "CHLD"+form.elements["CHLD"][form.elements["CHLD"].selectedIndex].value+"&";
    vars+= "IS_STOP=1&PN_KEY=isnull&PG_KEY=isnull&";
    vars+= "rnd="+Math.random();
        
    xc.connect('/xmlreq/hdRequest.xml',"GET",vars,show_price_table);  
    return false;
}


function trim(string){
return string.replace(/(^\s+)|(\s+$)/g, "");
}


function show_price_table(resp){
    var dv=document.getElementById('hotelprice_table');
    var list=resp.responseXML.getElementsByTagName('ROOT')[0].getElementsByTagName('v');
    var cont="<table border='0' width='100%' cellspacing='1' cellpadding='0' class='bordtab'>";
    cont+="<tr><td><b>Дата заезда</b></td><td><b>Ночей</b></td><td><b>Номер</b></td><td><b>Тип номера</b></td><td><b>Питание</b></td><td><b>Цена за номер</b></td></tr>";
    
    for(i=0;i<list.length;i++){
        var v=list[i];
        var s=list[i].getElementsByTagName('s')[0];
        cont+="<tr>";
        cont+="<td nowrap='nowrap'>"+conv_date_rev(s.getAttribute("hd_date").substring(0,10))+"</td>";
        cont+="<td>"+s.getAttribute("hd_nday")+"</td>";
        cont+="<td>"+v.getAttribute("va_name")+"</td>";
        cont+="<td>"+v.getAttribute("rc_name")+"</td>";
        cont+="<td>"+v.getAttribute("pn_name")+"</td>";
        var p=v.getAttribute("rs_sum");
        if(!p) p="";
        else p=trim(v.getAttribute("rs_rate"))+trim(p);

        cont+="<td>"+p+"</td>";
        cont+"</tr>";
    }
    cont+="</table>";
    dv.innerHTML=cont;    
}

function active_ages(){
    var sel=document.forms['hotelform'].CHLD.selectedIndex;
    var i;

    for(i=1;i<=4;i++){
        if(sel>=i)  document.getElementById('a'+i).style.display="block";
        else  {
            document.forms['hotelform'].elements['AGE'+i].selectedIndex=0;
            document.getElementById('a'+i).style.display="none";
        }
    }
    
}


