﻿var curLanguage;
var lastHight;
var messageList=new Array();
//***************************Messages*********************
messageList.gui_deleteReservation={def:"Reservation could not be removed!",de:"Reservierung konnte nicht aus Darstellung entfernt werden!"};
messageList.gui_setProducts={def:"Products can not be displayed!",de:"Artikel können nicht dargestellt werden!"}
messageList.gui_deleteArticle={def:"Product could not be removed from display!",de:"Artikel konnte nicht aus Darstellung entfernt werden!"}
messageList.MakeDoc={def:'Your browser can\'t handle this script'};
messageList.data_deleteArticle={def:"Product could not be removed from reservation list!",de:"Artikel konnte nicht aus Reservierungsliste entfernt werden!"};
messageList.importXML={def:'Loading file #1 failed!', de:'Die Datei #1 konnte nicht geladen werden!'};
messageList.valiDate={def:'"#1" is not in a valid Dateformat(dd.mm.yy)!', de:'"#1" ist kein gültiges Datumsformat(tt.mm.jj)!'};
messageList.rangeDate={def:'"#1" is out of date!', de:'"#1" ist kein gültiges Datum!'};
messageList.leapYear={def:'"#1" is no leap year!', de:'"#1" ist kein Schaltjahr!'};
messageList.valiMail={def:'"#1" is not a valid email address!', de:'"#1" ist keine gültige Emailadresse!'};
messageList.mandatory={def:'The fields that are marked by a red star are mandatory!', de:'Die Felder die durch einen roten Stern markiert sind, müssen Ausgefüllt werden!'};
messageList.fields={def:'The fields #1 are mandatory!', de:'Die Felder #1 müssen Ausgefüllt werden!'};
messageList.noClient={def:'Please fill out the "personal data" form!', de:'Bitte geben Sie ihre persönlichen Daten ein!'};
messageList.noProd={def:'No article selected!', de:'Keine Artikel gewählt!'};
messageList.noDate={def:'Please set the reservation date!', de:'Bitte geben Sie ein Reservierungsdatum ein!'};
//**************************************Alert Wrapper************************
function showMsg(id)
{
	var msg=id;
	var msgItem=messageList[id];
	if(msgItem!=null){
		if(msgItem[curLanguage]!=null){
			msg=msgItem[curLanguage.substr(0,2)];
		}else if(msgItem["def"]!=null){
			msg=msgItem["def"];
		}
	}
	for (var i=1; i<arguments.length; i++) {
	      msg= msg.split("#"+i);
	      msg= msg.join(arguments[i]);
	   }
	alert(msg);
}
//*******************************************************************************

function makeDaysOfMonth(){
	var i = 0;
	this[i++] = 0; // dummy
	this[i++] = 31;
	this[i++] = 29;
	this[i++] = 31;
	this[i++] = 30;
	this[i++] = 31;
	this[i++] = 30;
	this[i++] = 31;
	this[i++] = 31;
	this[i++] = 30;
	this[i++] = 31;
	this[i++] = 30;
	this[i  ] = 31;
	this.length = i;
}

function calcAge(dd, mm, yy){
	var t, mon, day, year, DD, MM, YY, age;
	var MTB = new makeDaysOfMonth();
	YY   = parseInt(yy,10);	// year of birth (4 digits)
	MM   = parseInt(mm,10);	// month of birth (1-12)
	DD   = parseInt(dd,10);	// date of birth (1-31)
	t    = new Date();	// get current date
	year = t.getFullYear();	// get year of current
	mon  = t.getMonth() + 1;	// get month of current
	day  = t.getDate();	// get date of current
	if (MTB[MM] < DD || DD < 1 || YY >year || (YY > 99 && YY < (year-100))){
		showMsg("rangeDate",dd+"."+mm+"."+yy);
		return -1;
	}
	//alert(year);
	YY += YY<100?YY<(year%100)?2000:1900:0;
	if (MM == 2 && DD == 29){	// check leap year
		if (!(((YY % 4 == 0) && (YY % 100 != 0)) || (YY % 400 == 0))){
		showMsg("leapYear",YY);
		return -1;
		}
	}
	age = year - YY;
	if ((MM > mon) || (MM == mon && day < DD)) age --;
	
	return age;
}
	
function initDate(from,until)
{
	var jetzt = getDDMMYY(null);
	var theForm=getForm();
	theForm.elements[from].value=jetzt;
	theForm.elements[until].value=jetzt;
}

function getDDMMYY(myDate)
{
	if(myDate==null)myDate= new Date();
	var m = myDate.getMonth() + 1;
	var y = myDate.getYear();
	var d = myDate.getDate();
	 y=y%100;
	if (y<10)y="0"+y;
	if (m<10)m="0"+m;
	if (d<10)d="0"+d;

	return ""+d+"."+m+"."+y;
}

function valiDate(who,old,myVal){
	var ok=false;
	var elem =getElem(who);
	if(myVal.length==8)
	{
		var chkDate=getDateDDMMYY(myVal)
		if(chkDate!=null){
			var mDate= new Date();
			if(old){
				ok=(chkDate.getYear()<mDate.getYear());
			}else{
				ok=(chkDate.getYear()>=mDate.getYear() && (chkDate.getYear()<=mDate.getYear()+1) && ((chkDate.getDate()>=mDate.getDate()) && (chkDate.getMonth()==mDate.getMonth())||(chkDate.getMonth()>mDate.getMonth())));
			}
			if(!ok){showMsg("rangeDate",chkDate);elem.focus();return}
		}
	}else {ok=(myVal.length==0 && who=="birthday")}
	if(!ok){showMsg("valiDate",myVal);elem.focus();}
	return;
}

function valiNumber(elem,doNull,maxVal){
	if((elem.value)==null){elem =getElem(elem);}
	if(elem){
		var iVal=parseInt(elem.value,10);
		if(maxVal){
		    if(maxVal<iVal){iVal=maxVal;}
		}
		if(doNull){
		    elem.value=isNaN(iVal)?"0":iVal;
		}else{
		    elem.value=isNaN(iVal)?"":iVal;
		}
	}
	return;
}

function onlyNumbers(textbox, val){
	var elem =getElem(textbox);
	
	if(elem){
		if(val==null){val=elem.value}
		val = val.replace(/[\D\s]/g, '');        // strip non-digit chars
		//val = val.replace(/[\]/g, '');        // strip non-digit chars
		elem.value = val;
	}
}

function toName(textbox, val){
    var elem =getElem(textbox);
	if(elem){
		if(val==null){val=elem.value}
		try{
		var fc=val.charAt(0);
		val = fc.toUpperCase()+ val.substr(1);   
		elem.value = val;
		}catch(e){}
	}
}

function isKeyNum (evt,telefon) {
	var keyCode = evt.keyCode ? evt.keyCode:evt.charCode ? evt.charCode:evt.which ? evt.which : void 0;
	if (keyCode && keyCode>31) {
		var checkStr="0123456789";
		if(telefon==2){
		    checkStr+=".,";
		}else{
		    checkStr+=telefon?" /([])+#":"";
		}
		var key = String.fromCharCode(keyCode);
		return( checkStr.indexOf (key) != -1);
		
	}else {
		return true;
	} 
}

function onlyUrl (evt) {
	var keyCode = evt.keyCode ? evt.keyCode:evt.charCode ? evt.charCode:evt.which ? evt.which : void 0;
	if (keyCode && keyCode>31) {
		if ((keyCode>44 && keyCode<58) || (keyCode>64 && keyCode<91) || (keyCode>96 && keyCode<123) )
		{
			return true;
		}
	}else {
		return true;
	} 
	return false;
}

function valiMail(who){
	var elem =getElem(who);
    if(elem){
	    var myVal=elem.value;
	    var dotList=myVal.split(".");
        var ok=false;
	    if(myVal!=""){
		    if(myVal.indexOf("@")>0){
			    if(dotList.length>1){
				    if(dotList[dotList.length-1].length>1){
					    if(dotList[dotList.length-1].length<5){
						    ok=(myVal==encodeURI(myVal))
					    }
				    }
			    }
		    }
		    if(!ok){
			    showMsg("valiMail",myVal);
			    elem.focus();
			    return false;
		    }else{
			    return true;
		    }
	    }else{
		    return true;	
	    }
	}
	return false;
}

function getDateDDMMYY(strDate)
{
	var ddmmyy=strDate.split(".");
	if(ddmmyy.length==3)
	{
		for(var md=0;md<3;md++)
		{
            var mVal=ddmmyy[md][0]=="0"?ddmmyy[md][1]:ddmmyy[md];
		mVal=parseInt(mVal, 10);
            ddmmyy[md]=mVal;
		}

		ddmmyy[1]-= 1;
		ddmmyy[2]+=ddmmyy[2]<15?2000:1900;
		try{
			var chkDate= new Date(ddmmyy[2],ddmmyy[1],ddmmyy[0])
			return chkDate
		}catch(e){}
	}
	return;
}

function getDateDif(a,b)
{
//24*60*60*1000
	var dateA	= getDateDDMMYY(a);
	var dateB	= getDateDDMMYY(b);
	if(dateA!=null && dateB!=null)
	{
		var mDif=dateB-dateA;
		return(Math.abs(mDif/(24*60*60*1000))+1);
	}
	return 0;
}

function openWin(win,pic,w,h,sc)
{
	L=(screen.width-w)/2;
	T=(screen.height-h)/2;
	if(sc==1){
		scb=", scrollbars=no, status=no, toolbar=no, resizable=no" ;
		
	}else{
	    if(sc==2){
		    scb=", scrollbars=no, status=no, toolbar=no, resizable=yes" ;
    		
	    }else{
		    scb=", scrollbars=yes, resizable=yes";
	    }
	}
	var myWin = window.open(pic,win,"width=" + w +" , height="+h+", innerWidth=" + w+ " , innerHeight="+h +", left=" + L+ ", top="+T+ scb);

	myWin.focus();
	return myWin;
}
function postBack() {
      if(showHide){showHide("loader",true);}
      var theform=getForm();
      theform.submit();
      //alert("postBack(HURZ)");
}

function reset() {
      var theform=getForm();
      theform.reset();
}
function getForm()
{
    var theform;
      if (document.forms) {
	     theform = document.forms[0];
      }
      else
       {
	     theform = document.message;
	     if(!theform){
	        theform = document.getElementsByTagName("form")[0];
	      //  alert (theform);
	     }
      }
      return theform;
  }


function getElem(who)
{
    if (!who) var who = window.event; 
    if(typeof(who)== "object"){
        var retval=who;
        if(!(who.parentNode)){
            if(who.target){
                retval=who.target;
            }else{
                if (who.srcElement){
                    retval=who.srcElement;
                }
            }
        }
        return retval;
    }else{
       if(document.getElementById){
  	        who=who.replace(/:/g,"_");
            return document.getElementById(who);
        }else{
            if(document.all){
                return eval("document.all."+who);
            }else{
                if(document.layers){
	    	    if(document.layers[who]){
               		    return  document.layers[who];
		    }
	    	    if(document.images[who]){
               		    return  document.images[who];
		    }
	    	    if((document.forms[0]) && (document.forms[0][who])){
               		    return  document.forms[0][who];
		    }
	    	    if(document.anchors[who]){
               		    return  document.anchors[who];
		    }
	    	    if(document.links[who]){
               		    return  document.links[who];
		    }
                }
            }
        }
    }
}

function setText(who,what)
{
  var elem;
  if(document.getElementById){
        elem= document.getElementById(who);
        if(elem){
             if(elem.firstChild){
                elem.firstChild.nodeValue =what;
             }else{
                var tn=document.createTextNode(what);
                elem.appendChild(tn);
             }
        }
    }else{
        if(document.all){
            elem= eval("document.all."+who);
            if(elem){
                elem.innerText=what;
            }
        }else{
            if(document.layers){
               elem=  document.layers[who];
                if(elem){
                    elem.document.open();
                    elem.document.write(what);
                    elem.document.close();
                }
            }
        }
    }
}


    function adjustHeight(strElem,intOff,minVal)
    {
    	var h=400;
        var elem=getElem(strElem);
	var what
	//if(parent?window:this;
        if(elem){
            if(self.innerHeight){
                h=Math.max(self.innerHeight-intOff,minVal);
		//alert("SI:"+h);
            }else if(document.documentElement && document.documentElement.clientHeight){
                h=Math.max(document.documentElement.clientHeight-intOff,minVal);
		//alert("documentElement.clientHeight:"+h);
            }else if(document.body && document.body.clientHeight){
                h=Math.max(document.body.clientHeight-intOff,minVal);
		//alert("body.clientHeight:"+h);
            }
            if(!elem.height && elem.style){
                elem=elem.style;
             }
	    if(h!=lastHight){
		    if(lastHight!=parseInt(elem.height)|| Math.abs(h-parseInt(elem.height))>20)
		    {
			elem.height=h+"px";
		    }
		 lastHight=h;
	    }	
        }
    }
    
function showHide(who,show,noBlock)
{
	var myLoad=who.id?who:getElem(who);
	if(myLoad){
		if(myLoad.style){myLoad=myLoad.style;}
	    if(show==3){show=(myLoad.display=="none")}
		if(show){
			myLoad.display=(noBlock)?"":"block";
			myLoad.visibility="visible";
		}else{
			myLoad.display="none";
		}
	}
}    

function setVisi(who,show)
{
	var myLoad=who.id?who:getElem(who);
	if(myLoad){
		if(myLoad.style){myLoad=myLoad.style;}
		if(show){
			myLoad.visibility="visible";
		}else{
			myLoad.visibility="hidden";
		}
	}
}
function swapImg(who,suff)
{
	if(who.src){
		var mySrc=who.src.split("_")[0];
		mySrc+=suff+".gif";
		who.src=mySrc;
	}
}

function addEvent(obj, evType, fn, useCapture){
      if (obj.addEventListener){
        obj.addEventListener(evType, fn, useCapture);
        return true;
      } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
        return r;
      } else {
            eval("obj.on"+evType+"="+fn);
        //alert("Handler could not be attached");
      }
} 
   
/***********************************************************************************************************************************************
****************************************************************** end of script! ****************************************************************
************************************************************************************************************************************************/
