//(c)Kheifets & Schwabauer GbR 14.03.2011
//--------------------------------------------------------------------------------------
function check_name(s){
  shablon=/^[A-Z]{1}[a-z]{2,}$/;
  tmp=s.split("-");
  m=tmp.length;
   for(i=0;i<m;i++){
      if(tmp[i].match(shablon)==null) return false;
        }
        return true;
 }
//--------------------------------------------------------------------------------------
function check_lat_alt(s){
  shablon=/^[a-zA-Z]/;
  m=s.length;
  if(m < 1) return false;
  else if(s.match(shablon)==null) return false;
  else return true;
 }
//--------------------------------------------------------------------------------------
function  check_lat(field) {
m = field.length;
  if(m < 1) return false;
var valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -";
valid=valid+"\xC4\xE4\xD6\xF6\xDC\xFC\xDF";
var temp;
for (var i=0; i<field.length; i++) {
	temp = "" + field.substring(i, i+1);
	if (valid.indexOf(temp) == "-1")
	{
		return false;
	}
}
return true;
}
//--------------------------------------------------------------------------------------
function  check_lat_firma(field) {
m = field.length;
  if(m < 1) return false;
var valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 &-/,.";
valid=valid+"\xC4\xE4\xD6\xF6\xDC\xFC\xDF";
var temp;
for (var i=0; i<field.length; i++) {
	temp = "" + field.substring(i, i+1);
	if (valid.indexOf(temp) == "-1")
	{
		return false;
	}
}
return true;
}
//--------------------------------------------------------------------------------------
function  check_lat_num(field) {
m = field.length;
  if(m < 1) return false;
var valid = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 .,/-";
valid=valid+"\xC4\xE4\xD6\xF6\xDC\xFC\xDF";
var temp;
for (var i=0; i<field.length; i++) {
	temp = "" + field.substring(i, i+1);
	if (valid.indexOf(temp) == "-1")
	{
		return false;
	}
}
return true;
}
//--------------------------------------------------------------------------------------
function check_num(s){
  shablon=/^[0-9]/;
  m=s.length;
  if(m < 1) return false;
  else if(s.match(shablon)==null) return false;
  else return true;
 }
//--------------------------------------------------------------------------------------

function check_phone_alt(s){
  shablon=/^[+0-9]+[0-9]/;
  m=s.length;
  if(m < 1) return false;
  else if(s.match(shablon)==null) return false;
  else return true;
 }
//-------------------------------------------------------------------------------------- 
function check_phone(s){
  var valid = "+0123456789 /-()"
  m=s.length;
  if(m < 1) return false;
  var temp;
	for (var i=0; i<s.length; i++) 
	{
		temp = "" + s.substring(i, i+1);
		if (valid.indexOf(temp) == "-1")
		{
			return false;
		}
	}
	return true;
 } 
//--------------------------------------------------------------------------------------
function check_input(i,t){
	var f = document.booking;
	var v = "";
    if(f.elements[i].type == "text" || f.elements[i].type == "textarea" )
    	v = f.elements[i].value;
    else
    {
    	ind = f.elements[i].selectedIndex;
        if(ind==0) v==""; else v = "ok";
    }

	switch(t){
   	case 0:
    erg = check_lat(v);
    break;

   	case 1:
    erg = check_lat_num(v);
    break;

   	case 2:
    erg = check_phone(v);
    break;

 	case 3:
    erg = datum_check(v,10);
    break;

    case 4:
    erg = check_email(v);
    break;
 	}

if(!erg) show_error(i);  else   show_no_error(i);

return erg;
}
//--------------------------------------------------------------------------------------
 function days(datum){
        tmp=datum.split(".");
           day=parseInt(tmp[0]);
           month=parseInt(tmp[1]);
           year=parseInt(tmp[2]);

    if(month < 3)
    {
        month = month + 12;
        year = year - 1;
    }

    jd = day + Math.floor((153 * month - 457) / 5) + 365 * year
          + Math.floor(year / 4) - Math.floor(year / 100)
          + Math.floor(year / 400) + 1721118.5;
    return  Math.round (jd);
        }

//--------------------------------------------------------------------------------------
        function getDaysInMonth(month,year) {
        var days;
        if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) days=31;
        else if (month==4 || month==6 || month==9 || month==11) days=30;
        else if (month==2) {
        if (isLeapYear(year)) { days=29; }
        else { days=28; }
        }
        return (days);
        }
//--------------------------------------------------------------------------------------
        function isLeapYear (Year) {
        if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
        return (true);
        } else { return (false); }
        }
//--------------------------------------------------------------------------------------
   function datum_check(datum,n){               
				tmp=datum.split(".");				
				if(tmp.length<3) return false;
				DH=new Date();
				YH=DH.getFullYear();				
                if(n==8) shablon=/\d{1,2}.\d{1,2}.\d{2}/i;
                else shablon=/\d{1,2}.\d{1,2}.\d{4}/i;               
                day= tmp[0];
                month=tmp[1];
                year=tmp[2];
                max_d=getDaysInMonth(month,year);
                if(datum.length!=n) return false;
                else if(datum.match(shablon)==null) return false;
        		else if(day>max_d || day<1) return false;
                else if(month>12 || month<1) return false;
                else if(n==10 && (year<1900 || year>YH+10)) return false;
                else if(n==8 && (year<0 || year>99)) return false;
                else  return true;
        }
//--------------------------------------------------------------------------------------
 function check_email(email){
  email = email.toLowerCase();
  ok = true;
  shablon=/^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,4}$/;
  if (email == "")
    {
    ok=false;
    }
  else if(email.match(shablon)==null)
    {
        ok=false;
    }
  return ok;
 }
//--------------------------------------------------------------------------------------
function radio_txt_disabled(id_r,id_txt_1,id_txt_2,id_txt_3, i_ok)
{
   if(window.document.getElementsByName(id_r)[i_ok].checked) r = false; else  r = true;
		if(i_ok == 2 && id_txt_3!="")
			window.document.getElementById(id_txt_3).disabled= r;
		else{
			window.document.getElementById(id_txt_1).disabled = r;
			if(id_txt_2!="") window.document.getElementById(id_txt_2).disabled= r;
			if(id_txt_3!="") window.document.getElementById(id_txt_3).disabled= true;
			}

}
//--------------------------------------------------------------------------------------
function feld_check(ind){
	F = document.form1;
	frei_felde = new Array(6,10,14,15,17,20,23,24,26,27,28);
	res = true;
	if(F.elements[i].type == "text" || F.elements[i].type == "textarea" ){
	for(k=0; k <= frei_felde.length; k++)
	{
		if(frei_felde[k] == ind){res = false; break}
	}
	}else res = false;

	return res;
}
//--------------------------------------------------------------------------------------
function check_submit()
{
	OK = true;
	var buf="";
	F = document.form1;
	im = F.elements.length;
	/*
	for(i=0; i<im; i++)
	{
	buf += i +"~"+ F.elements[i].name +"~"+ F.elements[i].type +"~"+ F.elements[i].value+"~"+feld_check(i)+"\n";
	}

	alert(buf);
	*/

	for(i=0; i<im; i++)
	{
		if(feld_check(i) &&  F.elements[i].value=="" || F.elements[i].value==" "){
		OK = false;
		show_error(i);
		}
	}
	//---------------------------------------
	if(!datum_check(F.elements[4].value,10))
	{
		OK = false;
		show_error(4);
	}
	if(!datum_check(F.elements[25].value,10))
	{
		OK = false;
		show_error(25);
	}
	if(!check_email(F.elements[11].value))
	{
		OK = false;
		show_error(11);
	}
	if(F.r2[1].checked)
	{
	i=14;
		if(F.elements[i].value=="" || F.elements[i].value==" " || F.elements[i].value=="Name of insurance Company"){
		OK = false;
		show_error(i);
		}
	i=15;
		if(F.elements[i].value=="" || F.elements[i].value==" " || F.elements[i].value=="Insurance policy number"){
		OK = false;
		show_error(i);
		}
      show_no_error(17);
	}
    if(F.r2[2].checked)
	{
		i=17;
		if(F.elements[i].value=="" || F.elements[i].value==" " || F.elements[i].value=="Your payment"){
		OK = false;
		show_error(i);
		show_no_error(14);
		show_no_error(15);
		}
	}

	if( OK ) F.submit(); else window.document.getElementById("error").style.visibility = "visible";
}
//--------------------------------------------------------------------------------------
function show_error(i){
	F = document.booking;
	F.elements[i].style.backgroundColor = x21;
	F.elements[i].style.borderStyle = "solid";
	F.elements[i].style.borderWidth = "1px";
	F.elements[i].style.borderColor = x17;
}
//--------------------------------------------------------------------------------------
function show_no_error(i){
	F = document.booking;
	F.elements[i].style.backgroundColor = x1;
	F.elements[i].style.borderStyle = "solid";
	F.elements[i].style.borderWidth = "1px";
	F.elements[i].style.borderColor = x17;
}
//--------------------------------------------------------------------------------------
function show_error_byid(id){
	window.document.getElementById(id).style.backgroundColor = x21;
}
//--------------------------------------------------------------------------------------
function show_no_error_byid(id){
	window.document.getElementById(id).style.backgroundColor = x2;
}
//--------------------------------------------------------------------------------------
function trim (zeichenkette) {
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}
//--------------------------------------------------------------------------------------
function  check_cyr(field,i) {
	  m = field.length;
	  if(m < 1) return false;
		var valid = schablon_cyr + "- ";		
		var valid_lat = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&";
		var valid_number = "0123456789";
		//var valid_quot = "\x22\x27";
		var valid_sonder = ".,/";
		switch (i) 
		{		  
		  case 1:
			valid += valid_lat;
			valid += valid_number;
			//valid += valid_quot;
			valid += valid_sonder;
			break;
		  case 2:				
			valid += valid_number;			
			valid += valid_sonder;
			break;
		}		
	var temp;	
	for (var i=0; i<field.length; i++) 
	{
		temp = "" + field.substring(i, i+1);		
		if (valid.indexOf(temp) == "-1")
		{
			return false;
		}
	}
		return true;
}	
//--------------------------------------------------------------------------------------
