function DigitsOnly(e)
{
  var KeyCode = (e.keyCode) ? e.keyCode : e.which;
  return ((KeyCode == 8) // backspace
        || (KeyCode == 9) // tab
        || (KeyCode == 37) // left arrow
        || (KeyCode == 39) // right arrow
        || (KeyCode == 46) // delete
        || ((KeyCode > 47) && (KeyCode < 58)) // 0 - 9
         );
}



function dumpProps(obj,rec, parent) {
   // Go through all the properties of the passed-in object
   if (!rec) rec = 0;
  if (rec>5) return false;
  var lev = "";
  var t = rec;
  while (t > 0)
  {
    t--;
    lev+="&nbsp&nbsp;";
  }

   for (var i in obj) {
      // if a parent (2nd parameter) was passed in, then use that to
      // build the message. Message includes i (the object's property name)
      // then the object's property value on a new line

      if (parent) { var msg = lev+parent + "." + i + " = " + obj[i]; } else { var msg = lev+i + " = " + obj[i]; }
      // Display the message. If the user clicks "OK", then continue. If they
      // click "CANCEL" then quit this level of recursion
      document.getElementById('debugwin').innerHTML+=msg+'<br>';
      // If this property (i) is an object, then recursively process the object
      if (typeof obj[i] == "object") {
         if (parent) { dumpProps(obj[i],++rec, parent + "." + i); } else { dumpProps(obj[i],++rec, i); }
      }
   }
}


function LettersOnlys(e)
{
  if (!e) e = window.event;
  //ev = window.event;
  //dumpProps(e);

  var KeyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;

  //document.getElementById('debugwin').innerHTML= " "+KeyCode;

  return ((KeyCode == 8) // backspace
        || (KeyCode == 9) // tab
        || (KeyCode == 13) // enter
        || (KeyCode == 32) // space
        || (KeyCode == 35) // Home
        || (KeyCode == 36) // End
        || (KeyCode == 37) // left arrow
        || (KeyCode == 39) // right arrow
        || (KeyCode == 46) // delete .
        || (KeyCode == 45) // -
        || (KeyCode == 44) // ,
        || ((KeyCode > 64) && (KeyCode < 91)) //A - Z
        || ((KeyCode > 96) && (KeyCode < 123)) // a - z
        );


  //return true;
}


function clear_errors()
{
document.getElementById('country').className = 'forminput';
document.getElementById('city').className = 'forminput';
document.getElementById('flname').className = 'forminput';
document.getElementById('email').className = 'forminput';
document.getElementById('phone').className = 'forminput';
document.getElementById('hotelcatcontainer').className = 'hotelcatcontainer';
document.getElementById('authcode').className = 'authcode';
}

function go_check_selection()
{
if (check_selection())
  {
    document.getElementById("submitbutton").disabled = true;
    return true;
  }
else
{
 alert('Некоторые поля остались не заполнены, или заполнены неправильно!');
 return false;
}

}

function go_s()
{
  if (go_check_selection())
     document.selectionform.submit();
}


var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i

function checkmail(val)
{
  return emailfilter.test(val);
}

function check_selection()
{
clear_errors();
var OK = true;
theform = document.forms.selectionform;

if (document.getElementById('country').value == '')
  OK = (!(document.getElementById('country').className = 'forminput wrong') && OK);

if (document.getElementById('city').value == '')

  OK = (!(document.getElementById('city').className = 'forminput wrong') && OK);

if (theform.sel[0].checked)
{
  temp = false;
  for (var i=1; document.getElementById('hotel'+i); i++)
   temp = (temp || document.getElementById('hotel'+i).checked)
  if (!temp) (document.getElementById('hotelcatcontainer').className = 'hotelcatcontainer wrong');
  OK = (OK && temp);
}

if (document.getElementById('flname').value == '')
  OK = (!(document.getElementById('flname').className = 'forminput wrong') && OK);

if ((document.getElementById('email').value == '') || !(checkmail(document.getElementById('email').value)))
  OK = (!(document.getElementById('email').className = 'forminput wrong') && OK);

if (document.getElementById('phone').value == '')
  OK = (!(document.getElementById('phone').className = 'forminput wrong') && OK);

if (document.getElementById('authcode').value.length != 5)
  OK = (!(document.getElementById('authcode').className = 'authcode wrong') && OK);

return OK;
}




function selection_change()
{
 theform = document.forms.selectionform;
 if (theform.sel[0].checked)
 {
   disablecalendar('arrivedate');
   theform.adateps.disabled=true;
   theform.nights.disabled=false;
   theform.food.disabled=false;
   theform.suitesize.disabled=false;
   var i = 1;
   var tempitem = false
   while (tempitem =document.getElementById('hotel'+i))
   {
    tempitem.disabled=false;
    i++;
   }

 }
 else
 {
   enablecalendar('arrivedate');
   theform.adateps.disabled=false;
   theform.nights.disabled=true;
   theform.food.disabled=true;
   theform.suitesize.disabled=true;
   var i = 1;
   var tempitem = false
   while (tempitem = document.getElementById('hotel'+i))
   {
    tempitem.disabled=true;
    i++;
   }
 }
 check_selection();
}

function showhide(id)
{
  elem = document.getElementById('subcat_'+id);
  if (elem.className=='subcat_hidden')
    elem.className='subcat_visible';
  else
    elem.className='subcat_hidden';
}
