﻿window.onload = function() {
	addTB();
if(browser.isIE)
flash();
}

// CSS (if JavaScript is enabled)
function writeJSstyle(){
	document.write('<link rel="stylesheet" type="text/css" media="screen" href="css/hotel16-js.css" />');
}

function isMail(mail){
  var mailre=/^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/;
  return mailre.test(mail);
}

function reVal(el){
  if(trim(el.value)!="")el.style.backgroundColor="#ffffff";
}

function reVal2(el){
	if(el.value!=0)el.style.backgroundColor="#ffffff";
}

function checkFrm(f){

	 var emptys=new Array();
	 var invalids=new Array();
	 if(f.id=="form_reservation") {
		if(f.f_room.value==0) emptys[emptys.length]=new Array(f.f_room,"Preferovaný typ pokoje");
		if(trim(f.f_date_arrival.value)=="")emptys[emptys.length]=new Array(f.f_date_arrival,"Datum příjezdu");
		if(trim(f.f_date_departure.value)=="")emptys[emptys.length]=new Array(f.f_date_departure,"Datum odjezdu");
		if(trim(f.f_name.value)=="")emptys[emptys.length]=new Array(f.f_name,"Jméno");
		if(trim(f.f_surname.value)=="")emptys[emptys.length]=new Array(f.f_surname,"Příjmení");
		if(trim(f.f_address.value)=="")emptys[emptys.length]=new Array(f.f_address,"Adresa");
		if(trim(f.f_phone.value)=="")emptys[emptys.length]=new Array(f.f_phone,"Telefon");
		if(trim(f.f_email.value)=="") {
			emptys[emptys.length]=new Array(f.f_email,"Email");
		} else {
			if(!isMail(trim(f.f_email.value)))invalids[invalids.length]=new Array(f.f_email,"Email");
		}
		/*if(f.f_card.value==0) emptys[emptys.length]=new Array(f.f_card,"Kreditní karta");
		if(f.f_card_number.value==0) emptys[emptys.length]=new Array(f.f_card_number,"Číslo karty");
		if(trim(f.f_expdate.value)=="")emptys[emptys.length]=new Array(f.f_expdate,"Expirační datum");*/
//		if(trim(f.f_ownercard.value)=="")emptys[emptys.length]=new Array(f.f_ownercard,"Držitel karty");
	 }
	 if(f.id=="form_guestbook") {
		if(trim(f.f_name.value)=="")emptys[emptys.length]=new Array(f.f_name,"Jméno");
		if(trim(f.f_email.value)=="") {
			emptys[emptys.length]=new Array(f.f_email,"Email");
		} else {
			if(!isMail(trim(f.f_email.value)))invalids[invalids.length]=new Array(f.f_email,"Email");
		}
		if(trim(f.f_message.value)=="")emptys[emptys.length]=new Array(f.f_message,"Obsah zprávy");
	 }

	if(emptys.length>0 || invalids.length>0){
		var alrt="";
		if(emptys.length>0){
			alrt+="Následující poloľky nebyly vyplněny:\n\n";
			for(var i=0;i<emptys.length;i++){
				alrt+=emptys[i][1]+"\n";
				emptys[i][0].style.backgroundColor="#e3dbbf";
			}
		}

		if(invalids.length>0){
			alrt+=(emptys.length>0?"\n\n":"")+"Následujici poloľky nebyly správně vyplněny:\n\n";
			for(var i=0;i<invalids.length;i++){
				alrt+=invalids[i][1]+"\n";
				invalids[i][0].style.backgroundColor="#e3dbbf";
			}
		}

		alert(alrt);
		return false;
	} else {
		return true;
	}
}

function fakeSup() {
  var sups=document.getElementsByTagName("sup");
  if(sups.length>0) {
	  for(var i=0;i<sups.length;i++){
	    var content=sups[i].firstChild.data;
	    var newSpan=document.createElement("span");
	    newSpan.className="fakesup";
	    var newText=document.createTextNode(content);
	    newSpan.appendChild(newText);
	    sups[i].parentNode.insertBefore(newSpan,sups[i]);
	  }

	  for(var i=0;i<sups.length;i++){
	    sups[i].style.display="none";
	  }
	}
}

function rowOver(row){
  var tds=row.getElementsByTagName("td");
  for(var i=0;i<tds.length;i++){
    tds[i].style.color="#fff";
    if(tds[i].firstChild.tagName=="STRONG"){tds[i].firstChild.style.color="#fff";};
	tds[i].style.backgroundColor="#759ed2";
	tds[0].getElementsByTagName("a")[0].style.color="#fff";
  }
}

var lang=document.getElementsByTagName("html")[0].lang?document.getElementsByTagName("html")[0].lang:"cs";

function FormValidator(el,mode,errClass){
  var mailRE=/^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$/;
  var iso_dateRE=/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
  var czech_dateRE=/^([0-9]{1,2}\ *\.){1,2}\ *[0-9]{4}$/;
  var phoneRE=/^(\ *[0-9]\ *){9}$/;
  var intRE=/^[0-9]+$/;


  this.mode=isUndefined(mode)?1:mode;
  if(this.mode==1)this.errClass=isUndefined(errClass)?"error":errClass;

  if(typeof(el)=="string")el=getEl(el);
  this.inps=new Array();

  if(isFunction(el.onsubmit))el.originalOnsubmit=el.onsubmit;

  this.labels=new Array();
    var labelEls=el.getElementsByTagName("label");
    for(var i=0;i<labelEls.length;i++){
      if(!isUndefined(labelEls[i].htmlFor) && labelEls[i].htmlFor!="")this.labels[labelEls[i].htmlFor]=labelEls[i].firstChild.data;
    }

  el.checkform=this;



  el.onsubmit=function(){

    if(!isUndefined(this.originalOnsubmit))this.originalOnsubmit();

    var emptys=new Array();
    var invalids=new Array();

    var imess="Následující položky mají chybný formát:";
    var emess="Následující položky nebyly vyplněny:";

    if(lang=="sk"){
      var imess="Následujúce položky majú chybný formát:";
      var emess="Následujúce položky neboly vyplneny:";
    }

    if(lang=="en"){
      var imess="The following items have invalid format:";
      var emess="The following items are required:";
    }

    var imess_0='Položka "%" má chybný formát';
    var emess_0='Položka "%" není vyplněna';

    if(lang=="en"){
      var imess_0='The item "%" has incorrect format';
      var emess_0='The item "%" is required';
    }


    var inps=this.checkform.inps;

    var modeEnabled=function(mode,modearray){
      for(var i=0;i<modearray.length;i++){
        if(modearray[i]==mode)return true;
      }
      return false;
    }


    var alrt="";


    for(var i=0;i<inps.length;i++){

      if(isUndefined(inps[i][4]) || eval(inps[i][4])){

        if(typeof(inps[i][0])=="string")inps[i][0]=getEl(inps[i][0]);
        var el=inps[i][0];
        var mode=inps[i][1].toLowerCase().replace(/\ /gi,"");

        var modesdef=["require","validate"];

        var modes=mode.split("&");

        for(var j=0;j<modesdef.length;j++)eval("var mode_"+modesdef[j]+"="+(modeEnabled(modesdef[j],modes)?"true":"false"));

        var type=inps[i][2];
        if(typeof type=="string" && type.trim()!="")var typeRE=eval(type+"RE");else var typeRE=type;

        var label="";
        if(!isUndefined(inps[i][3]) && !isNull(inps[i][3]))label=inps[i][3]; else if(!isUndefined(this.checkform.labels[el.id]))label=this.checkform.labels[el.id];




        if(mode_require){
          if(el.value.trim()==""){
            emptys[emptys.length]=label;

            if(this.checkform.mode==0){
              alert(emess_0.replace(/%/,label));
              el.focus();
              return false;
            }
            el.className+=" "+el.form.checkform.errClass;
            if(isFunction(el.onchange))el.originalOnchange=el.onchange;
              var nF=new Function('if(isFunction(this.originalOnchange) && isUndefined(this.originalOnchange.chfempty))this.originalOnchange();if(this.value.trim()!="")this.className=this.className.replace(/\ *'+el.form.checkform.errClass+'\ */gi,"");else if(this.className.indexOf("error")==-1)this.className+="'+el.form.checkform.errClass+'";');
              nF.chfempty=true;
              el.onchange=nF;

          }
        }



        if(mode_validate){
          if(el.value.trim()!="" && !typeRE.test(el.value)){
            invalids[invalids.length]=label;
             if(this.checkform.mode==0){
              alert(imess_0.replace(/%/,label));
              el.focus();
              return false;
            }

            el.className+=" "+el.form.checkform.errClass;
            if(isFunction(el.onchange))el.originalOnchange=el.onchange;
              var nF=new Function('if(isFunction(this.originalOnchange) && isUndefined(this.originalOnchange.chfinvalid))this.originalOnchange();if(this.value.trim()!="" && '+typeRE+'.test(this.value))this.className=this.className.replace(/\ *'+el.form.checkform.errClass+'\ */gi,"");');
              nF.chfinvalid=true;
              el.onchange=nF;

          }
        }


      }
    }



    if(emptys.length>0 || invalids.length>0){
      if(emptys.length>0){
        alrt+=emess+"\n\n";
        for(var i=0;i<emptys.length;i++)alrt+=emptys[i]+"\n";
      }

      if(invalids.length>0){
        if(emptys.length>0)alrt+="\n\n";
        alrt+=imess+"\n\n";
        for(var i=0;i<invalids.length;i++)alrt+=invalids[i]+"\n";
      }

      alert(alrt);
      return false;
    }

  }


}



FormValidator.prototype.registerInput=function(){
  this.inps[this.inps.length]=arguments;
}


var flash=function(){
	var objs=document.getElementsByTagName("object");
	var objl=objs.length;
	for(var i=0;i<objl;i++){
		var obj=objs[i];
		var parent=obj.parentNode;
		var html=obj.outerHTML;
		html=html.substring(0,html.indexOf("</"));
		var params=parent.getElementsByTagName("param");
		var parl=params.length;
		for(var j=0;j<parl;j++)html+=params[j].outerHTML;
		html+="</object>";
		obj.outerHTML=html;
		var nobjs=parent.getElementsByTagName("object");
		setDB(nobjs[0]);
	}
}