function submitForm()
{
if(self.updateRTEs)updateRTEs();
//document.forms[0].submit();
return true;
}

function hideshow(id,rte)
{
document.getElementById(id).style.display=(document.getElementById(id).style.display=='block')?'none':'block';
if(document.getElementById(id).style.display=='block' && document.getElementById(rte))
	{
		if(document.all) frames[rte].document.designMode = "on";
		else document.getElementById(rte).contentDocument.designMode = "on";
	}
}

function bankswitch(inaktiv)
{
	var table = document.getElementById('banktbl');
	var tbody=table.getElementsByTagName('tbody').item(0);

for(var i=0;i<tbody.getElementsByTagName('tr').length;i++)
	{
	var tr=tbody.getElementsByTagName('tr').item(i);
	if(inaktiv=='byfon')
		{
			tr.getElementsByTagName('input')[0].disabled=true;
			tr.getElementsByTagName('td')[0].style.color='#ccc';
			tr.getElementsByTagName('font')[0].style.color='#ccc';
		}
	else
		{
			tr.getElementsByTagName('input')[0].disabled=false;
			tr.getElementsByTagName('td')[0].style.color='#000';
			tr.getElementsByTagName('font')[0].style.color='#cc0000';
		}
	}
}

function preistypswitch()
{
var table = document.getElementById('traveltbl');
var tbody=table.getElementsByTagName('tbody').item(0);
var mehrtag=tbody.getElementsByTagName('tr').item(4).getElementsByTagName('input')[0];
var tr=tbody.getElementsByTagName('tr').item(5);

if(mehrtag.checked==false)
	{
		tr.getElementsByTagName('input')[0].disabled=true;
		tr.getElementsByTagName('input')[1].disabled=true;
		tr.getElementsByTagName('td')[0].style.color='#ccc';
		tr.getElementsByTagName('td')[1].style.color='#ccc';
		document.getElementById('mainermbox').style.display='block';
		document.getElementById('mainbusermbox').style.display='none';
		document.getElementById('mainhotelermbox').style.display='none';
	}
else
	{
		tr.getElementsByTagName('input')[0].disabled=false;
		tr.getElementsByTagName('input')[1].disabled=false;
		tr.getElementsByTagName('td')[0].style.color='#000';
		tr.getElementsByTagName('td')[1].style.color='#000';
		if(tr.getElementsByTagName('input')[1].checked==true)
		{
			document.getElementById('mainermbox').style.display='none';
			document.getElementById('mainbusermbox').style.display='block';
			document.getElementById('mainhotelermbox').style.display='block';
		}
		else
		{
			document.getElementById('mainermbox').style.display='block';
			document.getElementById('mainbusermbox').style.display='none';
			document.getElementById('mainhotelermbox').style.display='none';
		}
	}
}

//Formularfelder aktualisieren
function updateRows(tbody,namestart,minrows,titlerows,zusatz,rowperiod,rowcount)
	{
	var counter=1;
	//Rowcounter in-/dekrementieren
	//document.getElementsByName(namestart+"rows"+zusatz)[0].value=parseInt(document.getElementsByName(namestart+"rows"+zusatz)[0].value)+krement;
	document.getElementsByName(zusatz+namestart+"rows")[0].value=rowcount;
			
	for(i=titlerows+1;i<tbody.getElementsByTagName("tr").length;i++)
		{
		var tr=tbody.getElementsByTagName('tr').item(i);
		//Inputnamen anpassen
		for(inp=0;inp<tr.getElementsByTagName('input').length;inp++)
			{
			var inpset=tr.getElementsByTagName('input').item(inp);
			inpnamerest=inpset.name.substring(inpset.name.indexOf('_'),inpset.name.length);
			inpset.name=zusatz+namestart;
			inpset.name+=counter;
			inpset.name+=inpnamerest;
			inpset.setAttribute('type','text');
			}
		//Selectnamen anpassen
		for(inp=0;inp<tr.getElementsByTagName('select').length;inp++)
			{
			var inpset=tr.getElementsByTagName('select').item(inp);
			inpnamerest=inpset.name.substring(inpset.name.indexOf('_'),inpset.name.length);
			inpset.name=zusatz+namestart;
			inpset.name+=counter;
			inpset.name+=inpnamerest;
			}
		//onclick anpassen
		var inpkalcount=0;
		for(img=0;img<tr.getElementsByTagName('img').length;img++)
			{
			var imgset=tr.getElementsByTagName('img').item(img);
			//DeleteImage
			if(imgset.src.indexOf('del.gif')>0)
				{
					fktname='del'+namestart.substr(0,1).toUpperCase()+namestart.substr(1,namestart.length-1)+'Row';
					imgset.onclick=new Function('F',fktname+'('+counter+','+minrows+','+titlerows+',"'+zusatz+'")');
				}
				
			//KalendarImage
			if(imgset.src.indexOf('kalender.gif')>0 && navigator.appVersion.indexOf("MSIE")==-1)
				{
				var onclickwert=String(imgset.onclick);//imgset.attributes.onclick.nodeValue;
				//alert(onclickwert);
				if(onclickwert!=null)
					{
					onclickwert=onclickwert.split('{');
					onclickwert=onclickwert[1].split('}');
					onclickwert=onclickwert[0];
					namerest=onclickwert.split('("caldiv_');
					if(namerest.length>1)namerest=namerest[1].split(')');
					if(namerest[0]!='')namerest=namerest[0].substring(namerest[0].lastIndexOf('_'),namerest[0].length-1);
					else 
						{
						namerest=onclickwert.substring(onclickwert.indexOf('_')-1,onclickwert.length);
						namerest=namerest.substring(namerest.indexOf('_'),namerest.indexOf(';'));
						}
					var inpname=zusatz+namestart+counter+namerest;
					if(namerest=='_bis')var pinpname=zusatz+namestart+counter+'_von';
					//alert(inpname);
					//document.getElementById("'+tbody.parentNode.id+'").getElementsByTagName("tr").item('+i+').getElementsByTagName("input").item('+inpkalcount+')
					if(pinpname!='undefined')var parentobjval='document.forms[0].'+pinpname+'.value';
					else var parentobjval=null;
					var filename = imgset.src.match("[^/]*$")+"";
					var gfxpath = imgset.src.slice(0,-filename.length);
					var fkt=new Function(inpname,'var inpobj=document.getElementById("'+tbody.parentNode.id+'").getElementsByTagName("tr").item('+i+').getElementsByTagName("input").item('+inpkalcount+');var cal = new CalendarPopup(\'caldiv_'+inpname+'\');cal.gfxpath=\''+gfxpath+'\';cal.select(inpobj,\'anchor_'+inpname+'\',\'dd.MM.yyyy\','+parentobjval+');return false;');
					//					if(navigator.appVersion.indexOf("MSIE") != -1){imgset.onclick=fkt; imgset.attachEvent('onclick',fkt);}
					//					else
					imgset.onclick=fkt;//'';
					inpkalcount++;
					}
				}
			}
		
		//Anchor anpassen
		for(ancr=0;ancr<tr.getElementsByTagName('a').length;ancr++)
			{
				var ancrset=tr.getElementsByTagName('a').item(ancr);
				if(ancrset.name.indexOf('anchor_')>-1)
				{
				namerest=ancrset.name.substring(ancrset.name.lastIndexOf('_'),ancrset.name.length);
				ancrset.name='anchor_'+zusatz+namestart;
				ancrset.name+=counter;
				ancrset.name+=namerest;
				ancrset.id=ancrset.name;
				}
			}
			
		//DIV-ID anpassen	
		for(div=0;div<tr.getElementsByTagName('div').length;div++)
			{
				var divset=tr.getElementsByTagName('div').item(div);
				if(divset.id.indexOf('caldiv_')>-1)
				{
				namerest=divset.id.substring(divset.id.lastIndexOf('_'),divset.id.length);
				divset.id='caldiv_'+zusatz+namestart;
				divset.id+=counter;
				divset.id+=namerest;
				}
			}
		
		if(i%rowperiod==0){counter++;}
		}
	}
	
//Kindermreihe hinzufügen
function addKindermRow(minrows,titlerows,zusatz)
  {
  //Get table element of dbRowsTable.
  var table = document.getElementById(zusatz+"kindermtbl");
  var tbody=table.getElementsByTagName("tbody").item(0);
  var newPointLine=tbody.getElementsByTagName("tr").item(titlerows).cloneNode(true);
  tbody.appendChild(newPointLine);
  
  var newTR1=tbody.getElementsByTagName("tr").item(titlerows+1).cloneNode(true);
  newTR1.getElementsByTagName("input").item(0).value='';
  newTR1.getElementsByTagName("input").item(1).value='';
  newTR1.getElementsByTagName("input").item(2).value='';
  newTR1.getElementsByTagName("input").item(3).value='00';
  newTR1.getElementsByTagName("select").item(0).selectedIndex=1;
	tbody.appendChild(newTR1);

  var newTR2=tbody.getElementsByTagName("tr").item(titlerows+2).cloneNode(true);
  newTR2.getElementsByTagName("select").item(0).selectedIndex=0;
  tbody.appendChild(newTR2);
  
  tbody.appendChild(newPointLine);
  
  table.appendChild(tbody);
  
  //Formularfelder aktualisieren
  var rowcount=tbody.getElementsByTagName("tr").length-1;
	rowcount-=titlerows-1;
	rowcount--;
	rowcount/=3;
	updateRows(tbody,'kinderm',minrows,titlerows,zusatz,3,rowcount);
  }
 
//Kindermreihe löschen
function delKindermRow(rowindex,minrows,titlerows,zusatz)
	{
	var tbody=document.getElementById(zusatz+'kindermtbl').getElementsByTagName('tbody').item(0);
	rowindex*=3;
	rowindex--;
	rowindex+=titlerows-1;
	
	//Zeilen entfernen
	var tr=tbody.getElementsByTagName('tr').item(rowindex);
	tbody.removeChild(tr);
	var tr=tbody.getElementsByTagName('tr').item(rowindex);
	tbody.removeChild(tr);
	var tr=tbody.getElementsByTagName('tr').item(rowindex);
	tbody.removeChild(tr);

	//Leerzeilen hinzufügen, wenn nötig
	if(tbody.getElementsByTagName("tr").length<(minrows+2)*2){addKindermRow(minrows,titlerows,zusatz);}
	
	//Formularfelder aktualisieren
	var rowcount=tbody.getElementsByTagName("tr").length-1;
	rowcount-=titlerows-1;
	rowcount--;
	rowcount/=3;
	updateRows(tbody,'kinderm',minrows,titlerows,zusatz,3,rowcount);
	}

//Zuschlagsreihe hinzufügen
function addZuschlagRow(minrows,titlerows,zusatz)
  {
  //Get table element of dbRowsTable.
  var table = document.getElementById(zusatz+"zuschlagtbl");
  var tbody=table.getElementsByTagName("tbody").item(0);
	var newPointLine=tbody.getElementsByTagName("tr").item(titlerows).cloneNode(true);
    
	var newTR1=tbody.getElementsByTagName("tr").item(titlerows+1).cloneNode(true);
	newTR1.getElementsByTagName("input").item(0).value='';
  newTR1.getElementsByTagName("select").item(0).selectedIndex=0;
  newTR1.getElementsByTagName("input").item(1).value='';
  newTR1.getElementsByTagName("input").item(2).value='00';
  newTR1.getElementsByTagName("select").item(1).selectedIndex=0;
	tbody.appendChild(newTR1);
	tbody.appendChild(newPointLine);
	
	table.appendChild(tbody);
	
	//Formularfelder aktualisieren
	var rowcount=tbody.getElementsByTagName("tr").length-1;
	rowcount-=titlerows-1;
	rowcount--;
	rowcount/=2;
	updateRows(tbody,'zuschlag',minrows,titlerows,zusatz,2,rowcount);
  }

//Zuschlagsreihe löschen
function delZuschlagRow(rowindex,minrows,titlerows,zusatz,rowcount)
	{
	var tbody=document.getElementById(zusatz+'zuschlagtbl').getElementsByTagName('tbody').item(0);
	rowindex*=2;
	rowindex+=titlerows-1;
	
	//Zeilen entfernen
	var tr=tbody.getElementsByTagName('tr').item(rowindex);
	tbody.removeChild(tr);
	var tr=tbody.getElementsByTagName('tr').item(rowindex);
	tbody.removeChild(tr);
	
	//Leerzeilen hinzufügen, wenn nötig	
	if(tbody.getElementsByTagName("tr").length<(minrows+1)*2)addZuschlagRow(minrows,titlerows,zusatz);
	
	//Formularfelder aktualisieren
	var rowcount=tbody.getElementsByTagName("tr").length-1;
	rowcount-=titlerows-1;
	rowcount--;
	rowcount/=2;
	updateRows(tbody,'zuschlag',minrows,titlerows,zusatz,2,rowcount);
	} 
	
//Zuschlagsreihe hinzufügen
function addEinzelterminRow(minrows,titlerows,zusatz)
  {
  //Get table element of dbRowsTable.
  var table = document.getElementById(zusatz+"einzeltermtbl");
  var tbody=table.getElementsByTagName("tbody").item(0);
	var newPointLine=tbody.getElementsByTagName("tr").item(titlerows).cloneNode(true);
     
	var newTR1=tbody.getElementsByTagName("tr").item(titlerows+1).cloneNode(true);
	for(i=0;i<newTR1.getElementsByTagName("input").length;i++)newTR1.getElementsByTagName("input").item(i).value='';
	tbody.appendChild(newTR1);
	tbody.appendChild(newPointLine);
	
	table.appendChild(tbody);
	
	//Formularfelder aktualisieren
	var rowcount=tbody.getElementsByTagName("tr").length-1;
	var lasttr=tbody.getElementsByTagName("tr").item(rowcount-1);
	rowcount-=titlerows-1;
	rowcount--;
	rowcount/=2;
	lasttr.getElementsByTagName("td").item(0).innerHTML='Termin '+rowcount+':';
	updateRows(tbody,'einzeltermin',minrows,titlerows,zusatz,2,rowcount);
  }

//Zuschlagsreihe löschen
function delEinzelterminRow(rowindex,minrows,titlerows,zusatz,rowcount)
	{
	var tbody=document.getElementById(zusatz+'einzeltermtbl').getElementsByTagName('tbody').item(0);
	rowindex*=2;
	rowindex+=titlerows-1;
	
	//Zeilen entfernen
	var tr=tbody.getElementsByTagName('tr').item(rowindex);
	tbody.removeChild(tr);
	var tr=tbody.getElementsByTagName('tr').item(rowindex);
	tbody.removeChild(tr);
	
	//Leerzeilen hinzufügen, wenn nötig	
	if(tbody.getElementsByTagName("tr").length<(minrows+1)*2)addEinzelterminRow(minrows,titlerows,zusatz);
	
	//Formularfelder aktualisieren
	var rowcount=tbody.getElementsByTagName("tr").length-1;
	rowcount-=titlerows-1;
	rowcount--;
	rowcount/=2;
	updateRows(tbody,'einzeltermin',minrows,titlerows,zusatz,2,rowcount);
	var counter=0;
	for(var i=titlerows+1;i<tbody.getElementsByTagName("tr").length;i+=2)
		{
		counter++;
		tbody.getElementsByTagName("tr").item(i).getElementsByTagName("td").item(0).innerHTML='Termin '+counter+':';
		}
	} 

var picwin=0;	

function bilder (reise, bild, root, isinet)
{
	if (picwin && !picwin.closed) picwin.close();
	var inetstr = "";
	if (isinet)	
		inetstr = "&inet=1";
	if(reise!='')
	{
		var picwin=window.open(root +"/popup_reisebilder.php?reise="+ reise + inetstr +"&bild="+bild,"picwin","width=550,height=530,left=4,top=0,resizable=no,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,dependent=yes");
	}
}

function reisekarte (reise, root, isinet)
{
	if (picwin && !picwin.closed) picwin.close();
	var inetstr = "";
	if (isinet)	
		inetstr = "&inet=1";
	if(reise!='')
	{
		var picwin=window.open(root +"/popup_reisekarte.php?reise="+ reise + inetstr,"picwin","width=350,height=400,left=4,top=0,resizable=no,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,dependent=yes");
	}
}

function zoom(picname,copyright)
{
	//noch offene Zoomfenster schliessen
	if (picwin && !picwin.closed) picwin.close();
	
	if(picname!='')
	{
		picname = escape (picname);
		var picwin=window.open("","picwin","width=100,height=100,left=4,top=0,resizable=no,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,dependent=yes");
		picwin.document.open("text/html","replace");
		picwin.document.write("<html>\n<head>\n");
	  picwin.document.write("<title>Zoom</title>\n");
	  picwin.document.write("</head>\n");
	  picwin.document.write('<body style="text-align:center;margin-top:20px;font-size:9px;font-family:Arial;color:#8383C7;" onload="self.resizeTo((self.document.images[0].width+50),(self.document.images[0].height+110));">');
	  picwin.document.write("<p align=center><img src=\""+picname+"\" hspace=\"0\" vspace=\"0\">");
	  if(typeof copyright!='undefined') picwin.document.write("<br />Quelle: "+ copyright);
	  
	  picwin.document.write("</p>");
	  picwin.document.write("</body>\n</html>");
	  picwin.document.close();
	  picwin.moveTo(0,0);
	  picwin.focus();
	}
}

function setPreviewpic (selfobj,deselect,picpool,picpath)
	{
	var preview=document.getElementById('preview');
	if(selfobj.selectedIndex>0)
		{
			var selpicpath=picpool+selfobj.options[selfobj.selectedIndex].value;
			preview.src=selpicpath;
			preview.name=selpicpath;
			preview.onclick=new Function('F','zoom(\''+selpicpath+'\')');
			preview.style.cursor='pointer';
		}
	else 
		{
			preview.name='';
			preview.src=picpath+'nopic.gif';
			preview.onclick='';
			preview.style.cursor='default';
		}
	document.getElementsByName(deselect)[0].selectedIndex=0;
	}
	
function openWindow(path,w,h)
{
if(!path)var path="";
if(!w)var w=200;
if(!h)var h=100;
var win=window.open(path,"buswin","width="+w+",height="+h+",left=0,top=0,resizable=1,scrollbars=1,status=0,toolbar=0,menubar=0,location=0,dependent=1");
//win.moveTo(screen.width/2-300,screen.height/2-300);
}

function popupWindow (path, w, h, scrollb, toolb)
{
	if(!path)var path="";
	if(!w)	var w=200;
	if(!h)	var h=100;
	var win=window.open(path,"buswin","width="+w+",height="+h+",left=0,top=0,resizable=1,scrollbars=1,status=0,toolbar=0,menubar=0,location=0,dependent=1");

}

function DoWinResize() 
{
	if (getElement("winheight").offsetHeight < (screen.height - 80) ) 
	{
		self.moveTo(100,0);
		winY = getElement("winheight").offsetHeight + 60;
		self.window.resizeTo(490,winY);
		self.focus();
	}
	else {self.window.resizeTo(490,screen.height-80);}
}

function pickToOpener(selectname,optionvalue,loadafter, dontsubmit) 
{
  if (window.opener && !window.opener.closed)
  {
  	var selectbox=window.opener.document.getElementsByName(selectname)[0];
  	selectbox.selectedIndex=0;
  	for(i = 0; i < selectbox.length; i++)
  	{
  	if(selectbox.options[i].value==optionvalue)
  		{
  			selectbox.selectedIndex=selectbox.options[i].index;
  		}
  	}
  	
  	if (!dontsubmit)
  		window.opener.document.forms[0].submit();
  	
  	if (loadafter)
  	{
  		window.location.href=loadafter;
  		window.resizeTo(880, 600)
  		window.focus();
  	}
  	else
  		window.close();
  }
}



function checkBoxes(tblid,chkname)
{
var table = document.getElementById(tblid);
var tbody=table.getElementsByTagName('tbody').item(0);
for(i=0;i<tbody.getElementsByTagName("input").length;i++)
	{
	var inp=tbody.getElementsByTagName("input").item(i);
	if(inp.name==chkname)inp.checked=!inp.checked;
	}
}

function serialize(eingabe) 
{
		var input = eingabe;
		if(typeof input != 'object') return false;
		if(typeof giveback == 'undefined') var giveback = new String();
		giveback = giveback+'a:'+input.length+':{';
		for(var position in input) {
			if(typeof position == 'object') serialize(position);
			else {
				if(typeof position == 'string') giveback = giveback+'s'+':'+position.length+':"'+position+'";';
				if(typeof position == 'number') giveback = giveback+'i:'+position+';';
				if(typeof input[position] == 'string') giveback = giveback+'s'+':'+input[position].length+':"'+input[position]+'";';
				if(typeof input[position] == 'number') giveback = giveback+'i:'+input[position]+';';				
			}
		}
		giveback = giveback+'}';
		return giveback;
}

function unserialize(inp) 
{
        this.error = 0;
        if (inp == "" || inp.length < 2) {
            this.raiseError("input is too short");
            return;
        }
        var val, kret, vret, cval;
        var type = inp.charAt(0);
        var cont = inp.substring(2);
        var size = 0, divpos = 0, endcont = 0, rest = "", next = "";

        switch (type) {
        case "N": // null
            if (inp.charAt(1) != ";") {
                this.raiseError("missing ; for null", cont);
            }
            // leave val undefined
            rest = cont;
            break;
        case "b": // boolean
            if (!/[01];/.test(cont.substring(0,2))) {
                this.raiseError("value not 0 or 1, or missing ; for boolean", cont);
            }
            val = (cont.charAt(0) == "1");
            rest = cont.substring(1);
            break;
        case "s": // string
            val = "";
            divpos = cont.indexOf(":");
            if (divpos == -1) {
                this.raiseError("missing : for string", cont);
                break;
            }
            size = parseInt(cont.substring(0, divpos));
            if (size == 0) {
                if (cont.length - divpos < 4) {
                    this.raiseError("string is too short", cont);
                    break;
                }
                rest = cont.substring(divpos + 4);
                break;
            }
            if ((cont.length - divpos - size) < 4) {
                this.raiseError("string is too short", cont);
                break;
            }
            if (cont.substring(divpos + 2 + size, divpos + 4 + size) != "\";") {
                this.raiseError("string is too long, or missing \";", cont);
            }
            val = cont.substring(divpos + 2, divpos + 2 + size);
            rest = cont.substring(divpos + 4 + size);
            break;
        case "i": // integer
        case "d": // float
            var dotfound = 0;
            for (var i = 0; i < cont.length; i++) {
                cval = cont.charAt(i);
                if (isNaN(parseInt(cval)) && !(type == "d" && cval == "." && !dotfound++)) {
                    endcont = i;
                    break;
                }
            }
            if (!endcont || cont.charAt(endcont) != ";") {
                this.raiseError("missing or invalid value, or missing ; for int/float", cont);
            }
            val = cont.substring(0, endcont);
            val = (type == "i" ? parseInt(val) : parseFloat(val));
            rest = cont.substring(endcont + 1);
            break;
        case "a": // array
            if (cont.length < 4) {
                this.raiseError("array is too short", cont);
                return;
            }
            divpos = cont.indexOf(":", 1);
            if (divpos == -1) {
                this.raiseError("missing : for array", cont);
                return;
            }
            size = parseInt(cont.substring(1, divpos - 1));
            cont = cont.substring(divpos + 2);
            val = new Array();
            if (cont.length < 1) {
                this.raiseError("array is too short", cont);
                return;
            }
            for (var i = 0; i + 1 < size * 2; i += 2) {
                kret = this.unserialize(cont, 1);
                if (this.error || kret[0] == undefined || kret[1] == "") {
                    this.raiseError("missing or invalid key, or missing value for array", cont);
                    return;
                }
                vret = this.unserialize(kret[1], 1);
                if (this.error) {
                    this.raiseError("invalid value for array", cont);
                    return;
                }
                val[kret[0]] = vret[0];
                cont = vret[1];
            }
            if (cont.charAt(0) != "}") {
                this.raiseError("missing ending }, or too many values for array", cont);
                return; 
            }
            rest = cont.substring(1);
            break;
        case "O": // object
            divpos = cont.indexOf(":");
            if (divpos == -1) {
                this.raiseError("missing : for object", cont);
                return;
            }
            size = parseInt(cont.substring(0, divpos));
            var objname = cont.substring(divpos + 2, divpos + 2 + size);
            if (cont.substring(divpos + 2 + size, divpos + 4 + size) != "\":") {
                this.raiseError("object name is too long, or missing \":", cont);
                return;
            }
            var objprops = this.unserialize("a:" + cont.substring(divpos + 4 + size), 1);
            if (this.error) {
                this.raiseError("invalid object properties", cont);
                return;
            }
            rest = objprops[1];
            var objout = "function " + objname + "(){";
            for (key in objprops[0]) {
                objout += "this." + key + "=objprops[0]['" + key + "'];";
            }
            objout += "}val=new " + objname + "();";
            eval(objout);
            break;
        default:
            this.raiseError("invalid input type", cont);
        }
        return (arguments.length == 1 ? val : [val, rest]);
}

function sortOptions(what) {
    var copyOption = new Array();
    for (var i=0;i<what.options.length;i++)
        copyOption[i] = new Array(what[i].value,what[i].text);

    copyOption.sort(function(a,b) { return a[1].toLowerCase()-b[1].toLowerCase(); });

    for (var i=what.options.length-1;i>-1;i--)
        deleteOption(what,i);

    for (var i=0;i<copyOption.length;i++)
        addOption(what,copyOption[i][1],copyOption[i][0])
}

function deleteOption(object,index) {
    object.options[index] = null;
}

function addOption(object,text,value) {
    var defaultSelected = false;
    var selected = true;
    object.options[object.length] = new Option(text, value, defaultSelected, selected);
}

function stationClear(preset)
{
	
	if(preset==undefined)
	{
		preset=Array();
		preset['zusatztxt']='';
		preset['zuschlagvz']='+';
		preset['zuschlageur']='';
		preset['zuschlagcent']='';
		preset['abzeith']='';
		preset['abzeitm']='';
		preset['code']='';
	}
	document.getElementsByName('zusatztxt')[0].value='';
	document.getElementsByName('zuschlag_plusminus')[0].value=preset['zuschlagvz'];
	document.getElementsByName('zuschlag_eur')[0].value=preset['zuschlageur'];
	document.getElementsByName('zuschlag_cent')[0].value=preset['zuschlagcent'];
	document.getElementsByName('abzeit_hour')[0].value=preset['abzeith'];
	document.getElementsByName('abzeit_min')[0].value=preset['abzeitm'];
	document.getElementsByName('code')[0].value=preset['code'];
	
	document.getElementById('backbtn').style.display=(document.getElementById('backbtn').style.display=='none')?'inline':'none';
	document.getElementById('newbtn').style.display=(document.getElementById('backbtn').style.display=='inline')?'none':'inline';
	
	document.getElementsByName('zusatztxt')[0].disabled=(document.getElementsByName('zusatztxt')[0].style.display!='none');
	document.getElementsByName('zusatztxt')[0].style.display=(document.getElementsByName('zusatztxt')[0].style.display=='none')?'inline':'none';
	if(document.getElementsByName('stationsel').length==1)
	{
		document.getElementsByName('stationsel')[0].style.display=(document.getElementsByName('stationsel')[0].style.display=='none')?'inline':'none';
		document.getElementsByName('code')[0].disabled=(document.getElementsByName('stationsel')[0].style.display!='none');
	}
}


//****** Zimmerbelegungskram ***/
function zimmeraenderung(element)
{
	var ausgewaehlt = element.selectedIndex;
	// if (!ausgewaehlt) return;
	
	var formular = element.form;
	
	var test = checkLeftout (formular);
	
	for (i=0; i<formular.length; i++) 
	{
		if (formular.elements[i]==element || formular.elements[i].type != 'select-one')
			continue;
		
		if (formular.elements[i].selectedIndex==ausgewaehlt)
			formular.elements[i].selectedIndex = 0;
		
		for (j=0; j<formular.elements[i].options.length; j++)
		{
			if (in_array(j, test))
					formular.elements[i].options[j].style.fontWeight = 'bold';
			else	formular.elements[i].options[j].style.fontWeight = 'normal';
		}
	}
	
}

function checkLeftout (formular)
{
	var zaehler = 0;
	var dabei = Array();
	var x=0;
	var y=0;
	var namen 			= Array();
	var personentest 	= Array();
	var gegentest = Array();
	var nichtdabei = Array();
	var allegelisteten = Array();
	for (i=0; i<formular.length; i++) 	
	{
		if (formular.elements[i].type != 'select-one')
			continue;
		if (formular.elements[i].name.substring(0,14) == 'zimmerbelegung')
		{
			if (namen.length==0)
			{
				for (j=0; j<formular.elements[i].options.length; j++)
				{
					if (formular.elements[i].options[j].value)
					{
						namen[j] = formular.elements[i].options[j].text;
						if (formular.elements[i].options[j].value>0)
							personentest[formular.elements[i].options[j].value] = formular.elements[i].options[j].value;
					}
					
				}
			}
			if (formular.elements[i].selectedIndex>0)
			{
				gegentest[formular.elements[i].selectedIndex] = formular.elements[i].selectedIndex;
				allegelisteten[zaehler++] = formular.elements[i].selectedIndex;
			}
		}
	}
	for (i=0; i<personentest.length; i++) 
	{
		if (in_array(personentest[i], gegentest))
				dabei[x++]=personentest[i];
		else	nichtdabei[y++]=personentest[i]; 
	}
	return (nichtdabei);
}

function getLeftoverPersons (formular)
{
	var allegelisteten 	= Array();
	var personentest 	= Array();
	var namen 			= Array();
	var gegentest 		= Array();
	var test 			= Array();
	var doppelt 		= Array();
	var dabei 			= Array();
	var nichtdabei 		= Array();
	var x = 0;
	var y = 0;
	var zaehler = 0;
	var ausgabetext = '';
	
	for (i=0; i<formular.length; i++) 	
	{
		if (formular.elements[i].type != 'select-one')
			continue;
		if (formular.elements[i].name.substring(0,14) == 'zimmerbelegung')
		{
			if (namen.length==0)
			{
				for (j=0; j<formular.elements[i].options.length; j++)
				{
					if (formular.elements[i].options[j].value)
					{
						namen[j] = formular.elements[i].options[j].text;
						if (formular.elements[i].options[j].value>0)
							personentest[formular.elements[i].options[j].value] = formular.elements[i].options[j].value;
					}
					
				}
			}
			if (formular.elements[i].selectedIndex>0)
			{
				gegentest[formular.elements[i].selectedIndex] = formular.elements[i].selectedIndex;
				allegelisteten[zaehler++] = formular.elements[i].selectedIndex;
			}
		}
	}
	
	

	
	for (i=0; i<personentest.length; i++) 
	{
		if (in_array(personentest[i], gegentest))
				dabei[x++]=personentest[i];
		else	nichtdabei[y++]=personentest[i]; 
	}
	for (i=0;i<allegelisteten.length;i++)
	{
		if (in_array(allegelisteten[i], test))
				doppelt.push (allegelisteten[i]);
		else	test.push(allegelisteten[i]);
	}
	if (doppelt.length>0)
	{
		ausgabetext += 'Folgende Personen sind doppelt zugewiesen:\\n';
		doppelt = unique (doppelt);
		for (i=0;i<doppelt.length; i++)
			ausgabetext += namen[doppelt[i]] +'\\n';
		ausgabetext += '\\n';
	}
	if (nichtdabei.length>0)
	{
		ausgabetext += 'Bitte weisen Sie folgenden Personen Zimmer zu: \\n';
		for (i=0;i<nichtdabei.length; i++)
			ausgabetext += namen[nichtdabei[i]] +'\\n';
	}
	if (ausgabetext && ausgabetext != '')
		alert (ausgabetext);
}

function unique(a) {
	tmp = new Array(0);
	for(i=0;i<a.length;i++){
		if(!in_array(a[i], tmp)){
			tmp.length+=1;
			tmp[tmp.length-1]=a[i];
		}
	}
	return tmp;
}

function in_array (element, array)
{
	for (var i=0; i<array.length; i++) {
		if (array[i] == element) return true;
	}
	return false;

}

function auswertung (formular)
{
	var text ='';
	for (i=0; i<formular.length; i++) 
	{
		if (formular.elements[i].type != 'select-one')
			continue;
		if (formular.elements[i].selectedIndex)
			text += formular.elements[i].name +'='+ formular.elements[i].selectedIndex +' ';
	}
	// alert (text );
	getLeftoverPersons (formular);
}


function toggleVersicherung (element)
{
	var formular = element.form;
	
	if (element.value == 'ok') 
    		var deaktiviert = false;
  	else 	var deaktiviert = true;
  	
	var versicherungsbox = document.getElementById ('versicherungsbox');
  	if (!versicherungsbox)
  		return;
  	/*
  	if (deaktiviert)
  			versicherungsbox.style.color='#ccc';
  	else	versicherungsbox.style.color='#000';
  	*/
  	if (formular.familienversicherung)
		formular.familienversicherung.disabled = deaktiviert;
	if (formular.einzelversicherung)
		formular.einzelversicherung.disabled = deaktiviert;
	
	if (formular.reiseversicherungsbankinfo)
	{
		for(i = 0; i < formular.reiseversicherungsbankinfo.length; i++)
		{
			formular.reiseversicherungsbankinfo[i].disabled = deaktiviert;
			if (deaktiviert)
				bankswitch('byfon');
			else if (!deaktiviert && formular.reiseversicherungsbankinfo[i].checked)
				bankswitch(formular.reiseversicherungsbankinfo[i].value);
		}
	}
}

function updateVersicherung (auswahl, preis, htmlbereich)
{
	var summe = (auswahl * preis);
	
	var versicherungsgesamtsummenbereich = document.getElementById (htmlbereich);
	
	versicherungsgesamtsummenbereich.innerHTML = '';
	if (summe)
		versicherungsgesamtsummenbereich.innerHTML = ' (Gesamt: '+ summe +' &euro;)';
}


	function switchLizenzmodell (formular)
	{
		var cclizenzzeile  		= document.getElementById('cclizenzzeile');
		var urllizenzzeile 		= document.getElementById('urllizenzzeile');
		var cclizenztitelzeile  = document.getElementById('cclizenztitelzeile');
		var urlbildnamezeile    = document.getElementById('urllizenzbildnamezeile');
		
		var cclizenz       = formular.lizenz_cclizenzen;
		var urllizenz	   = formular.lizenz_urllizenzen;
		var cclizenztitel  = formular.lizenz_cclizenztitel;
		var urllizenzbildname = formular.lizenz_urllizenzbildname;
		
		cclizenz.disabled  		= true;
		urllizenz.disabled 		= true;
		cclizenztitel.disabled 	= true;
		urllizenzbildname.disabled = true;
		
		cclizenzzeile.style.display  	  = 'none'; 
		urlbildnamezeile.style.display 	  = 'none';
		cclizenztitelzeile.style.display  = 'none'; 
		urllizenzzeile.style.display 	  = 'none'; 
		
		if (formular.bild_lizenz.value == 2 || formular.bild_lizenz.value == 3 || formular.bild_lizenz.value == 7)
		{
			cclizenz.disabled = false;	
			try {
				cclizenzzeile.style.display = 'table-row';
			} catch (e) {
				cclizenzzeile.style.display = 'block';
			}
			cclizenztitel.disabled 	= false;
			try {
				cclizenztitelzeile.style.display = 'table-row';
			} catch (e) {
				cclizenztitelzeile.style.display = 'block';
			}
		}
		else if (formular.bild_lizenz.value == 4 || formular.bild_lizenz.value == 5)
		{
			try {
				urllizenzzeile.style.display = 'table-row';
			} catch (e) {
				urllizenzzeile.style.display = 'block';
			}
			urllizenz.disabled = false;
			
			try {
				urlbildnamezeile.style.display = 'table-row';
			} catch (e) {
				urlbildnamezeile.style.display = 'block';
			}
			
			// urlbildnamezeile.style.display = 'table-row';
			urllizenzbildname.disabled = false;
		}
	}

function showDiv(divname)
{
	if (!divname)
		return;
	var dasDiv = document.getElementById (divname);
	if (!dasDiv)
		return;
	dasDiv.style.display = "block";
	
}

function hideDiv(divname)
{
	if (!divname)
		return;
	var dasDiv = document.getElementById (divname);
	if (!dasDiv)
		return;
	dasDiv.style.display = "none";
}

//Das Objekt, das gerade bewegt wird.
var dragobjekt = null;
// Position, an der das Objekt angeklickt wurde.
var dragx = 0;
var dragy = 0;
// Mausposition
var posx = 0;
var posy = 0;

function draginit() {
 // Initialisierung der Überwachung der Events
  document.onmousemove = drag;
  document.onmouseup = dragstop;
   
}


function dragstart(element) {
   //Wird aufgerufen, wenn ein Objekt bewegt werden soll.

  dragobjekt = element;
  dragx = posx - dragobjekt.offsetLeft;
  dragy = posy - dragobjekt.offsetTop;
  
}


function dragstop() {
  //Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.

  dragobjekt=null;
}


function drag(ereignis) {
  //Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.

  posx = document.all ? window.event.clientX : ereignis.pageX;
  posy = document.all ? window.event.clientY : ereignis.pageY;
  if(dragobjekt != null) {
    dragobjekt.style.left = (posx - dragx) + "px";
    dragobjekt.style.top = (posy - dragy) + "px";
  }
}




