﻿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 getAge(strDate) {
    var myDate = getDateDDMMYY(strDate);
    if (myDate != null) {
        return calcAge(null, null, null, myDate);
    }
    return 0;
}

function calcAge(dd, mm, yy,md){
	var t, mon, day, year, DD, MM, YY, age;
	var MTB = new makeDaysOfMonth();
	if (arguments.length > 3) {
	    MM = md.getMonth() + 1;
	    YY = md.getFullYear();
	    DD = md.getDate();
	} else {
	    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,myFormat)
{
	if(myDate==null)myDate= new Date();
	var m = myDate.getMonth() + 1;
	var y = myDate.getYear();
	var d = myDate.getDate();
	if (!myFormat){
		 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;
	}else{
		if( myFormat.indexOf("yyyy")>-1) {myFormat = myFormat.replace("yyyy", myDate.getFullYear());}
	}
	if (y<10)y="0"+y;
	if (m<10)m="0"+m;
	if (d<10)d="0"+d;
	myFormat = myFormat.replace("dd", d);
	myFormat = myFormat.replace("mm", m);
	myFormat = myFormat.replace("yy", y);
	return myFormat;
}

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,defVal){
    if ((elem.value) == null) { elem = getElem(elem); }
    if (typeof defVal == "undefined") defVal = maxVal;
	if(elem){
		var iVal=parseInt(elem.value,10);
		if(maxVal){
		    if (maxVal < iVal) { iVal = defVal; }
		}
		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(myVal) {
		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<6){
							ok=(myVal==encodeURI(myVal))
						}
					}
				}
			}
			if(!ok){
				showMsg("valiMail",myVal);
				return false;
			}else{
				return true;
			}
		}else{
			return true;	
		}
}

function getDateDDMMYY(strDate) {

	var del = "";
	//strDate = strDate.trim();
	try {
		for (var w = 0; w < strDate.length; w++) {
			var d = strDate.charAt(w);
			if (isNaN(parseInt(d, 10))) { del = d; break; }
		} 
	}
	catch (e) {
		//alert(e); del = "!"; 
	}
	var ddmmyy = strDate.split(del);

	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] < 25 ? 2000 : (ddmmyy[2] < 1000 ? 1900:0);
		try {
			var chkDate = new Date(ddmmyy[2], ddmmyy[1], ddmmyy[0])
			return chkDate
		} catch (e) { return }
	} else {
	   // alert("del=" + del + " " + strDate);
		return new Date(strDate);
	}
}

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! ****************************************************************
************************************************************************************************************************************************/

