/**************************************************************
 * Allgemeines
 **************************************************************/
try {
    var oLocomatForm   = null;
    var firstDayBoxRun = 0;
    var LOCOMAT_CHANGE = '';
    var aTabs          = new Array();
    var ritOnly        = false;
    var iTab           = 0;
    var bKid           = false;
    var bKidView       = false;
    var bExpert        = 0;
    var sPrefix        = '';
    var bExtern        = 0;
    var bShowExpert    = 1;
    var sTabDesign     = 'MixMaster';
    var bMMRit         = 0;
    var bSearchLocomat = 0;
    var bOpenExpert    = 0;
    var sMdt 		   = 'DB';
    var bAlertError	   = 0;
    var bConfigEE	   = true;

/**************************************************************
 * Ex locomat_addon.functions.js
 **************************************************************/
 
	var iCalDateMaxDay  = 30;
	var iCalDateNextDay = 1;
	var iCalDateStay    = 2;
	var iDaysAdd    = (1000*60*60*24*(iCalDateStay-1)); // 2 Tage
	var iDaysNext   = (1000*60*60*24*(iCalDateNextDay-1)); // 2 Tage
	var iDaysMax    = (1000*60*60*24*(iCalDateMaxDay-1)); // 2 Tage
	var oOptionHelper = 0;
	var iDayDiff      = 7;
	var aDestinationCache 	= new Array();
	var sDestCache			= '';
	var aOriginCache 		= new Array();
	var sOrigCache			= '';
	var bBlockSearch        = 0;
	var aCarDest			= new Array();

/**************************************************************
 * Setzt den Monat und das Jahr
 **************************************************************/
    function setMonthYear() {
        var sMonthYear = getElem('name',sPrefix+'start_datum_monthyear',0).value;
        getElem('name',sPrefix+'start_datum_month',0).value = sMonthYear.substring(0,2);
        getElem('name',sPrefix+'start_datum_year',0).value  = sMonthYear.substring(2);
    }

/**************************************************************
 * Setzt die Dauer
 **************************************************************/
    function changeRd(iVal) {
        getElem('name',sPrefix+'rd_max',0).value = iVal;
    }

/**************************************************************
 * Setzt die Flexibilitï¿½t
 **************************************************************/
    function changeFlex(iVal) {
        getElem('name',sPrefix+'flexr',0).value = iVal;
    }

    function MM_getErrorMsg(sKey) {
        var sFehler = '';
        try {
            sFehler = eval(sKey);
        } catch (e) {
            sFehler = '';
        }
        if (sFehler == '') {
            sFehler = 'Unbekannter Fehler!';
        }
        return sFehler;
    }

/**************************************************************
 * Setzt die Origins zu Destination
 **************************************************************/

    function MM_changeDestination() {
        if (bBlockSearch==1)
                return false;
        bBlockSearch = 1;
	var _iId = 0;
        var _sSa = getElem('name','sa',0).value;
        if (_sSa=='HTR') {
                _iId = 2;
        }
        if (_sSa=='FLR') {
                _iId = 1;
        }
        if (getElem('name',sPrefix+'sa',0).value == 'HTR' || bMMRit==1)
                return true;
        try {
                var oMMzo     = getElem('name',sPrefix+'zo',0);
        } catch(e) {
                var oMMzo     = getElem('id','zo',0);
        }
        try {
                if(oMMzo.value!='' && getElem('name',sPrefix+'sa',0).value == 'PAR')
        	        if (MM_isCarDest(oMMzo.value))
                                MM_showCar();
                        else
                                MM_hideCar()
        } catch (e) {alert(e)}
        var cFoah = "";
        var oMMfoah   = getElem('name',sPrefix+'foah',0);
        //oMMfoah.disabled = true;
        try {
                try { cZo = oMMzo.value; } catch(e) { }
                try { cFoah = oMMfoah.value; } catch(e) { }
                var outDest  = Object(); var i = 0; iiLand = -1;
                if (cZo=="")
		{
                        for (key in aOriginStruct)
                        {
                             outDest[key]= aOriginStruct[key];
                             i = i+1;

			}
		}
                else
                        for (key in aOriginStruct)
				if (typeof aDestOrigin[key][cZo] == 'string')
               		             outDest[key]= aOriginStruct[key];
                var sOut = '<select class="mmSelect" id="foah" name="'+sPrefix+'foah" onChange="this.blur();MM_changeOrigin();" style="margin-top:1px;display:block;width:100%;">';
                sOut = sOut + '<option value="">Abflughafen w&auml;hlen...</option>';
                for (ikey in outDest)
		{
		    sOut = sOut + '<option value="'+ikey+'"';
		    if (ikey==cFoah)
	                sOut = sOut + ' selected="selected"';
		    sOut = sOut + '>'+outDest[ikey]+'</option>';
		}
                sOut = sOut + '</select>';
                MM_setOrigins(sOut);
                try {
                        getElem('name','mmSubmit',0).focus();
                        oMMzo.blur();
                        oMMfoah.blur();
                } catch (e) {
		}
        } catch (e) {
                bBlockSearch = 0;
	}
    }

    function MM_setOrigins(sHtml) {
    	bInitSelectOrigin   = 1;
	setHTML('id', 'mmOriginsDiv', 0, sHtml);
	bBlockSearch = 0;
	if (bInitSelectDest==0) {
		MM_changeOrigin();
	}
    }

/**************************************************************
 * Blendet den Mietwagen aus
 **************************************************************/
	function MM_hideCar() {
		try{getElem('id','mmIconCar',0).style.visibility        = "hidden";} catch (e) {}
		try{getElem('name',sPrefix+'car',0).style.display       = "none";} catch (e) {}
		try{getElem('id','mmCarTitle',0).style.display          = "none";} catch (e) {}
		try{getElem('name',sPrefix+'car',0).checked = false;} catch (e) {}
	}

/**************************************************************
 * Blendet den Mietwagen aus
 **************************************************************/
	function MM_showCar() {
		try{getElem('id','mmIconCar',0).style.visibility        = "visible";} catch (e) {}
		try{getElem('name',sPrefix+'car',0).style.display       = "block";} catch (e) {}
		try{getElem('id','mmCarTitle',0).style.display          = "block";} catch (e) {}
	}

	function MM_isCarDest(sVal) {
		for (var i=0;i<aCarDest.length;i++) {
			if (aCarDest[i]==sVal) {
				return true;
			}
		}
		return false;
	}

/**************************************************************
 * Setzen der Geburtsdaten
 **************************************************************/
	function MM_setKidsBirthFromRequest() {
	    var aData = new Array();
	    //alert(aKidsBirth);
	    for(var i=0;i<aKidsBirth.length;i++) {
	        aData = aKidsBirth[i].split('-');
	        getElem('name','mmKid'+(i+1)+'Day',0).value    = aData[0];
	        getElem('name','mmKid'+(i+1)+'Month',0).value  = aData[1];
	        getElem('name','mmKid'+(i+1)+'Year',0).value   = aData[2];
	    }
	}

/**************************************************************
 * Setzt die Destinations zu Origin
 **************************************************************/
	function MM_changeCarOrigin() {
		MM_changeOrigin();
	}
    function MM_changeOrigin() {
        if (bBlockSearch==1)
                return false;
        bBlockSearch = 1;
        var sOut = '';
        try {
                var oMMzo     = getElem('name',sPrefix+'zo',0);
//                oMMzo.disabled = true;
        } catch(e) {
                var oMMzo     = getElem('id','zo',0);
  //              oMMzo.disabled = true;
        }
        var _iId = 0;
        var _sSa = getElem('name','sa',0).value;
        if (_sSa=='HTR') {
                _iId = 2;
        }
        if (_sSa=='FLR') {
                _iId = 1;
        }

	var cFoah = "";
        var oMMfoah   = getElem('name',sPrefix+'foah',0);
        try {
	    try { cZo = oMMzo.value; } catch(e) { }
	    try { cFoah = oMMfoah.value; } catch(e) { }
	    var outDest  = Array(); var optGroup = Array(); var i = 0; iiLand = -1;
	    if (_iId!=2)
	    {
        	if (cFoah=="")
		{
                        aOutput = Object();
                        for (key in aDestOrigin)
			{
                            for (val in aDestOrigin[key])
			    {
				if (typeof aOutput[val]  == 'string')
				{
				}
				else
				{
					aOutput[val] = "1";
				}
			    }
			}
		}
		else
		{
	                aOutput = aDestOrigin[cFoah];
		}

		if (_iId==1) {
			var aOutput2 = Object();
			for (ii=0; ii<aCarDest.length; ii++)
                //                if (typeof aOutput[aCarDest[ii]] == 'string')  
					aOutput2[aCarDest[ii]] = "1";
			aOutput = aOutput2;
		}

	        for(ii=0; ii<aDestStruct.length; ii++) 
		{
          	        for (key in aDestStruct[ii])
			{
		  	        var found = aOutput[key];
		    		if ((typeof found == 'object')||(typeof found == 'string')) 
				{
					optGroup[i] = 0;
					if (iiLand>=0)
					{
			    			outDest[i]= aDestStruct[iiLand];
	                                        if (iiLand>0) 
							optGroup[i] = 1;
			    			i = i+1;
                            			iiLand = -1;
					}
		  	  	        outDest[i]  = aDestStruct[ii];
				        i = i+1;
				}
				else
				{
	               			for (ikey in aDestStruct[ii])
					{
						tmp_ziel = aDestStruct[ii][ikey]+"";
						if ((tmp_ziel.substr(0,2)!="--")&&(tmp_ziel.substr(0,2)!="++"))
//						if ((tmp_ziel[0]!="-" && tmp_ziel[1]!="-")&&(tmp_ziel[0]!="+" && tmp_ziel[1]!="+"))
			 				iiLand = ii;
						if (tmp_ziel.substr(0,2)=="++" && (ikey=="ZZZ" || ikey=="123"))
						{
							outDest[i]  = aDestStruct[ii];
							i = i+1;
						}
		       			}
		    		}
              		}
        	}
		var bfound_optgroup = 0;
	        var sOut = '<select class="mmSelect" id="zo" name="'+sPrefix+'zo" onChange="this.blur(); if (this.options[this.selectedIndex].disabled) this.selectedIndex=this.selectedIndex+1; this.blur(); MM_changeDestination();" style="margin-top:1px;display:block;width:100%;">';
        	sOut = sOut + '<option value="">Reiseziel w&auml;hlen...</option>';
        	for(ii=0; ii<outDest.length; ii++)
    	  		for (ikey in outDest[ii])
			{
			    zoStr = outDest[ii][ikey];
			    if (zoStr.substr(0,2)=="++")
			        zoStr = zoStr.substring(3,zoStr.length);
			    if (optGroup[ii]==1)
			    {
//				if (bfound_optgroup==1)
//				    sOut = sOut + '</optgroup>';
//				sOut = sOut + '<optgroup label="'+zoStr+'">';
sOut = sOut + '<option disabled>'+zoStr+'</option>';
				bfound_optgroup = 1;
			    }
			    else
			    {
				    if (ikey=="123")
				    {
//	                                    sOut = sOut + '<optgroup label="'+zoStr+'">';
sOut = sOut + '<option disabled>'+zoStr+'</option>';
	                                    bfound_optgroup = 1;
				    }
				    else
				    {
		                	    sOut = sOut + '<option value="'+ikey+'"';
		                    	    if (ikey==cZo)
        		                	sOut = sOut + ' selected="selected"';
	                		    sOut = sOut + '>'+zoStr+'</option>';
				    }
			    }
			}
//		if (bfound_optgroup==1)
//                    sOut = sOut + '</optgroup>';
        	sOut = sOut + '</select>';
	    } else {
		var sOut = '<select class="mmSelect" id="zo" name="'+sPrefix+'zo" style="margin-top:1px;display:block;width:100%;">';
                
        // Top-Destinationen beimischen
        sOut = sOut + '<option value="">Reiseziel w&auml;hlen...</option>';
        sOut = sOut + '<option disabled="disabled">Top FlyLoco Ziele</option>';
        sOut = sOut + '<option value="BER">Berlin</option>';
        sOut = sOut + '<option value="DRS">Dresden</option>';
        sOut = sOut + '<option value="DUS">D&uuml;sseldorf</option>';
        sOut = sOut + '<option value="FRA">Frankfurt/Main</option>';
        sOut = sOut + '<option value="HAM">Hamburg</option>';
        sOut = sOut + '<option value="CGN">K&ouml;ln/Bonn</option>';
        sOut = sOut + '<option value="MUC">M&uuml;nchen</option>';
        sOut = sOut + '<option value="RUG">R&uuml;gen</option>';
        sOut = sOut + '<option disabled="disabled">------------------------------------</option></optgroup>';
                
                for (ii_key in aRitDest)
		{
                        sOut = sOut + '<option value="'+ii_key+'"';
                        if (ii_key==cZo)
                             sOut = sOut + ' selected="selected"';
                        sOut = sOut + '>'+aRitDest[ii_key]+'</option>';
		}
                sOut = sOut + '</select>';
	    }
                MM_setDestinations(sOut);	
            try {
	        getElem('name','mmSubmit',0).focus();
                oMMzo.blur();
	        oMMfoah.blur();
	    } catch (e) {
	    }
	} catch (e) {
            bBlockSearch = 0;
//            oMMzo.disabled = false;
            oMMzo.innerHTML = getHTML('id','mmDestError',0);
        }
    }

    function MM_setDestinations(sHtml) {
    	bInitSelectDest   = 1;
		setHTML('id', 'mmDestDiv', 0, sHtml);
		bBlockSearch = 0;
		if (bInitSelectOrigin==0) {
			MM_changeDestination();
		}
    }

/**************************************************************
 * Initialisierung mit Standartwerten
 **************************************************************/
	var bInitSelectOrigin = 0;
	var bInitSelectDest   = 0;

    function MM_initSelect() {
        MM_changeOrigin();
    }

/**************************************************************
 * Nach getaner Arbeit aufr?umen
 **************************************************************/
	function MM_destructor(oEvent) {
		if (!oEvent) {
    		oEvent = window.event;
    	}
    	MM_hideWaiting();
        getElem('id','mmContent',0).style.display = 'block';
        getElem('id','mmKids',0).style.display    = 'none';
        if (bExpert==1) {
        	getElem('id','mmExt',0).style.display     = 'block';
        } else {
//        	getElem('id','mmExt',0).style.display     = 'none';
        }
	}

/**************************************************************
 * Nach getaner Arbeit aufr?umen
 **************************************************************/
	function MM_hideCals(oEvent) {
		if (!oEvent) {
    		oEvent = window.event;
    	}
    	var oSrc;
    	try {
	    	if (MS == 1) oSrc = oEvent.srcElement;
			else oSrc = oEvent.target;
			var sId = getAttrObj(oSrc,'id');
	        if (sId!='mmCalHin' && sId!='mmCalRueck' && sId!=sPrefix+'start_datum' && sId!=sPrefix+'end_datum') {
		        MM_hideCal(0,'0');
		        MM_hideCal(1,'0');
	        } else {
	        	return;
	        }
    	} catch (e) {
    		return;
    	}
    	return;
	}

/**************************************************************
 * Leert die Fehlermeldungen
 **************************************************************/
    function MM_clearError(oEvent) {
    	if (!oEvent) {
    		oEvent = window.event;
    	}
        // 4631: Auskommentiert, da sonst Blaettern im Kalender mit Firefox 3 defekt!
    	//MM_hideCals(oEvent);
    	try {
	        var oMain = getElem('id','mmMain',0);
	        for (var i=0;i<aErrorIds.length;i++) {
	            try { oMain.removeChild(getElem('id',aErrorIds[i],0)); } catch (e) {}
	        }
    	} catch(e) {}
        // spezielle Felder wieder einblenden, die ggf. für den IE ausgeblendet wurden
        if ( document.getElementById("mmHkTitle") && (document.getElementById("mmHkTitle").style.display != "none") ) {
            getElem('name','hk',0).style.display  = "block";
        }
        return;
    }

/**************************************************************
 * Kalender anzeigen
 * iId = welcher Kalender
 **************************************************************/
     function MM_showCal(iId) {
         try {
             MM_hideCal(iCalType,'0');
             var aValue = new Array();
             if (iId==0) {
                 var oCal   = getElem('id','mmCalHin',0);
                 var oDate  = getElem('id',sPrefix+'start_datum',0);
                 aValue = getElem('name',sPrefix+'start_datum',0).value.split('.');
                 iCalType = 0;
             } else {
                 var oCal   = getElem('id','mmCalRueck',0);
                 var oDate  = getElem('id',sPrefix+'end_datum',0);
                 aValue 	= getElem('name',sPrefix+'end_datum',0).value.split('.');
                 iCalType 	= 1;
             }
             try {
             	//if (MS==0) {
             		getElem('id','mmLtrFlashObj',0).style.display = 'none';
             		getElem('id','mmLtrFlashImg',0).style.display = 'inline';
             	//}
         	 } catch (e) {}
             MM_initCal(aValue[0],aValue[1],aValue[2]);
             oCal.innerHTML = sCalHTML;
             oCal.style.display = 'inline';
             oDate.focus();
         } catch(e) {
            alert(e);
        }
     }

/**************************************************************
 * Kalender anzeigen
 * iId = welcher Kalender
 **************************************************************/
     function MM_showCalTime(sDay,sMonth,sYear) {
         var aValue = new Array();
         if (iCalType==0) {
             var oCal   = getElem('id','mmCalHin',0);
         } else {
             var oCal   = getElem('id','mmCalRueck',0);
         }
         sCalHTML = '';
         MM_initCal(sDay,sMonth,sYear);
         oCal.innerHTML = sCalHTML;
         oCal.style.display = 'inline';
     }

/**************************************************************
 * Kalender ausblenden
 **************************************************************/
     function MM_hideCal(iType,sFocus) {
         if (iType==1) {
             var oCal = getElem('id','mmCalRueck',0);
             var oDate  = getElem('id',sPrefix+'end_datum',0);
         } else {
             var oCal = getElem('id','mmCalHin',0);
             var oDate  = getElem('id',sPrefix+'start_datum',0);
         }
         try {
         	//if (MS==0) {
         		getElem('id','mmLtrFlashObj',0).style.display = 'block';
         		getElem('id','mmLtrFlashImg',0).style.display = 'none';
         	//}
         } catch (e) {}
         oCal.style.display = 'none';
         sCalHTML = '';
         if (sFocus!='0') {
         	oDate.focus();
         }
     }

/**************************************************************
 * Kalender initialisieren
 * sDay - ausgewï¿½hlter Tag
 * sMonth - ausgewï¿½hlter Monat
 * sYear - ausgewï¿½hltes Jahr
 **************************************************************/
     function MM_initCal(sDay,sMonth,sYear) {
        if (iCalType==0) {
			iChgMonthStart = sMonth*1;
			iChgYearStart  = sYear*1;
			iChgDayStart   = sDay*1;
        } else {
    		iChgMonthEnd   = sMonth*1;
			iChgYearEnd    = sYear*1;
			iChgDayEnd     = sDay*1;
        }
        MM_setDate(iCalType,new Date(sYear,sMonth*1-1,sDay*1));
        Kalender(sMonth,sYear);
     }

     var sCalHTML = '';
     var iCalType = 0;

/**************************************************************
 * Kalender ausgabe schreiben und beenden
 * sDay - ausgewï¿½hlter Tag
 * sMonth - ausgewï¿½hlter Monat
 * sYear - ausgewï¿½hltes Jahr
 **************************************************************/
    function MM_CalWriteDate(sDay) {
        if (iCalType==0) {
			var sMonth = iChgMonthStart;
        	var sYear  = iChgYearStart;
        	iChgDayStart = sDay*1;
        } else {
    		var sMonth = iChgMonthEnd;
			var sYear  = iChgYearEnd;
			iChgDayEnd = sDay*1;
        }
        if(MM_compareCal(iCalType)) {
            MM_setDate(iCalType,new Date(sYear*1,sMonth*1-1,sDay*1));
            MM_hideCal(iCalType,'1');
        }
    }

/**************************************************************
 * Setzt ein Datum
 * iId = Typ
 **************************************************************/
    function MM_setDate(iId,oDate) {
        var sYear    = oDate.getYear()*1;
        if(sYear < 999) sYear+=1900;
        var sDay     = oDate.getDate()*1;
        var sMonth   = (oDate.getMonth())*1+1;

        if (iId==0) {   var sPre = sPrefix+'start';
        } else {        var sPre = sPrefix+'end'; }

        getElem('name',sPre+'_datum',0).value = MM_CalFormatDateFromString(sDay,sMonth,sYear);
        getElem('name',sPre+'_datum_day',0).value   = sDay;
        getElem('name',sPre+'_datum_month',0).value = sMonth;
        getElem('name',sPre+'_datum_year',0).value  = sYear;
        return true;
    }


/**************************************************************
 * Kalender prï¿½fen
 * iId = Typ
 **************************************************************/
    function MM_compareCal(iId) {
    	if (iId==0) {
    		return MM_compareCalHin();
    	} else {
    		return MM_compareCalRueck();
    	}
    }

/**************************************************************
 * Kalender Hin prÃ¼fen
 * iId = Typ
 **************************************************************/
    function MM_compareCalHin() {
    	var oDateNow    = new Date();
    	var oDateEnd    = new Date( getElem('name',sPrefix+'end_datum_year',0).value*1,
                                    getElem('name',sPrefix+'end_datum_month',0).value*1-1,
                                    getElem('name',sPrefix+'end_datum_day',0).value*1);
    	var oDateStart  = new Date(iChgYearStart,(iChgMonthStart*1-1),iChgDayStart);
        var iMonthNow   = oDateNow.getMonth()*1;
        var iYearNow    = oDateNow.getYear()*1;
        if(iYearNow < 999) iYearNow+=1900;
        var iDayNow     = oDateNow.getDate()*1+iCalDateNextDay;

    	if ((oDateStart.getTime()-iDaysNext)<oDateNow.getTime()) {
            MM_hideCal(iCalType,'1');
            MM_setDate(0,new Date(iYearNow,iMonthNow,iDayNow));
            //alert('Bitte g&uuml;ltiges Datum w&auml;hlen (Heute+2)!');
            //MM_raiseError('foah','Bitte g&uuml;ltiges Datum w&auml;hlen (Heute+2)!',395,100,150,30,4);
            return false;
        }   /*
        if ((oDateEnd.getTime()-oDateStart.getTime())>iDaysMax) {
        	MM_setDate(1,new Date(oDateStart.getFullYear(),oDateStart.getMonth(),oDateStart.getDate()+iCalDateMaxDay));
            MM_raiseError('foah','Bitte g&uuml;ltiges Datum w&auml;hlen (MAX30)!',395,100,150,30,4);
            return false;
        }     */
        if ((oDateStart.getTime()+iDaysAdd)>oDateEnd.getTime()) {
        	MM_hideCal(iCalType,'1');
        	var iY = oDateStart.getFullYear();
        	if(iY < 999) iY+=1900;
            MM_setDate(1,new Date(iY,oDateStart.getMonth(),oDateStart.getDate()+iCalDateStay));
            //alert('Bitte g&uuml;ltiges Datum w&auml;hlen (Min 2)!');
            //MM_raiseError('foah','Bitte g&uuml;ltiges Datum w&auml;hlen (Min 2)!',395,100,150,30,4);
            return true;
        }
        return true;
    }

/**************************************************************
 * Kalender Rueck prÃ¼fen
 * iId = Typ
 **************************************************************/
    function MM_compareCalRueck() {
    	var oDateNow    = new Date();
    	var oDateStart  = new Date( getElem('name',sPrefix+'start_datum_year',0).value*1,
                                    getElem('name',sPrefix+'start_datum_month',0).value*1-1,
                                    getElem('name',sPrefix+'start_datum_day',0).value*1);
    	var oDateEnd    = new Date(iChgYearEnd,(iChgMonthEnd*1-1),iChgDayEnd);
        var iMonthNow   = oDateNow.getMonth()*1;
        var iYearNow    = oDateNow.getYear()*1;
        if(iYearNow < 999) iYearNow+=1900;
        var iDayNow     = oDateNow.getDate()*1+iCalDateNextDay;

    	if ((oDateEnd.getTime()-iDaysNext)<oDateNow.getTime()) {
            MM_hideCal(iCalType,'1');
            MM_setDate(1,new Date(iYearNow,iMonthNow,iDayNow+iCalDateStay));
            //alert('Bitte g&uuml;ltiges Datum w&auml;hlen (Heute+2)!');
            MM_raiseError('foah',MM_getErrorMsg('sErrorDateMin2DaysDiff'),395,150,150,30,4);
            return false;
        }   /*
        if ((oDateEnd.getTime()-oDateStart.getTime())>iDaysMax) {
        	MM_setDate(0,new Date(oDateEnd.getFullYear(),oDateEnd.getMonth(),oDateEnd.getDate()+iCalDateMaxDay));
            MM_raiseError('foah','Bitte g&uuml;ltiges Datum w&auml;hlen (MAX30)!',395,100,150,30,4);
            return false;
        }     */
        if ((oDateStart.getTime()+iDaysAdd)>oDateEnd.getTime()) {
        	MM_hideCal(iCalType,'1');
        	var iY = oDateEnd.getFullYear();
        	if(iY < 999) iY+=1900;
            MM_setDate(0,new Date(iY,oDateEnd.getMonth(),oDateEnd.getDate()-iCalDateStay));
            //alert('Bitte g&uuml;ltiges Datum w&auml;hlen (Min 2)!');
            MM_raiseError('foah',MM_getErrorMsg('sErrorDateMin2Days'),395,150,150,30,4);
            return true;
        }
        return true;
    }

/**************************************************************
 * Eingabe prÃ¼fen
 **************************************************************/
    function MM_checkInputDate(iId) {
        try {
        	if (iId==0) {
        		var sPre = sPrefix+'start';
        	} else {
        		var sPre = sPrefix+'end';
        	}
        	var sValue = getElem('name',sPre+'_datum',0).value;
        	var sDay   = '';
        	var sMonth = '';
        	var sYear  = '';

        	var sRegEx1 = /^\d\d\d\d\d\d\d\d$/; // PrÃ¼fen auf TTMMYYYY
        	var sRegEx2 = /^\d\d\.\d\d\.\d\d\d\d$/; // PrÃ¼fen auf TT.MM.YYYY
        	var sRegEx3 = /^\d\d-\d\d-\d\d\d\d$/; // PrÃ¼fen auf TT-MM-YYYY
        	var sRegEx4 = /^\d\d\d\d\d\d$/; // PrÃ¼fen auf TTMMYY
        	var sRegEx5 = /^\d\d\.\d\d\.\d\d$/; // PrÃ¼fen auf TT.MM.YY
        	var sRegEx6 = /^\d\d-\d\d-\d\d$/; // PrÃ¼fen auf TT-MM-YY
        	var sRegEx7 = /^\d\d\d\d\.\d\d\.\d\d$/; // PrÃ¼fen auf YYYY.MM.TT
        	var sRegEx8 = /^\d\d\d\d\-\d\d\-\d\d$/; // PrÃ¼fen auf YYYY-MM-TT

        	var sRegEx9  = /^\d\d\d\d$/; // PrÃ¼fen auf TMYY
        	var sRegEx10 = /^\d\.\d\.\d\d$/; // PrÃ¼fen auf T.M.YY
        	var sRegEx11 = /^\d-\d-\d\d$/; // PrÃ¼fen auf T-M-YY
        	var sRegEx12 = /^\d\d\d\d\d\d$/; // PrÃ¼fen auf TMYYYY
        	var sRegEx13 = /^\d\.\d\.\d\d\d\d$/; // PrÃ¼fen auf T.M.YYYY
        	var sRegEx14 = /^\d-\d-\d\d\d\d$/; // PrÃ¼fen auf T-M-YYYY

        	if (sRegEx1.test(sValue)) {
        		var sDay   = sValue.substr(0,2);
        		var sMonth = sValue.substr(2,2);
        		var sYear  = sValue.substr(4,4);
        	} else if ( sRegEx2.test(sValue) ||
        				sRegEx3.test(sValue)) {
        		var sDay   = sValue.substr(0,2);
        		var sMonth = sValue.substr(3,2);
        		var sYear  = sValue.substr(6,4);
        	} else if (sRegEx4.test(sValue)) {
    			var sDay   = sValue.substr(0,2);
        		var sMonth = sValue.substr(2,2);
        		var sYear  = '20'+sValue.substr(4,2);
        	} else if ( sRegEx5.test(sValue) ||
        				sRegEx6.test(sValue)) {
    			var sDay   = sValue.substr(0,2);
        		var sMonth = sValue.substr(3,2);
        		var sYear  = '20'+sValue.substr(6,2);
        	} else if ( sRegEx7.test(sValue) ||
        				sRegEx8.test(sValue)) {
    			var sDay   = sValue.substr(6,2);
        		var sMonth = sValue.substr(4,2);
        		var sYear  = sValue.substr(0,4);
        	} else if (sRegEx9.test(sValue)) {
    			var sDay   = sValue.substr(0,1);
        		var sMonth = sValue.substr(1,1);
        		var sYear  = '20'+sValue.substr(2,2);
    		} else if ( sRegEx10.test(sValue) ||
        				sRegEx11.test(sValue)) {
    			var sDay   = sValue.substr(0,1);
        		var sMonth = sValue.substr(2,1);
        		var sYear  = '20'+sValue.substr(3,2);
        	} else if (sRegEx12.test(sValue)) {
    			var sDay   = sValue.substr(0,1);
        		var sMonth = sValue.substr(1,1);
        		var sYear  = sValue.substr(2,4);
    		} else if ( sRegEx13.test(sValue) ||
        				sRegEx14.test(sValue)) {
    			var sDay   = sValue.substr(0,1);
        		var sMonth = sValue.substr(2,1);
        		var sYear  = sValue.substr(3,4);
        	} else { // reset
    			MM_setDate(iId,new Date(getElem('name',sPre+'_datum_year',0).value*1,
    									getElem('name',sPre+'_datum_month',0).value*1-1,
    									getElem('name',sPre+'_datum_day',0).value*1));
        	}
        	if (iId==0) {
        		iChgYearStart = sYear*1;
    			iChgMonthStart = sMonth*1;
    			iChgDayStart = sDay*1;
    		} else {
    			iChgYearEnd = sYear*1;
    			iChgMonthEnd = sMonth*1;
    			iChgDayEnd = sDay*1;
    		}
        	if(MM_compareCal(iId)) {
        		MM_setDate(iId,new Date(sYear*1, sMonth*1-1, sDay*1));
        	}
        } catch(e) {
            alert(e);
        }
    }

/**************************************************************
 * Kalender blï¿½ttern
 * sDay = Tag
 **************************************************************/

	var iChgMonthStart = 0;
	var iChgYearStart  = 0;
	var iChgDayStart   = 0;
	var iChgMonthEnd   = 0;
	var iChgYearEnd    = 0;
	var iChgDayEnd     = 0;

    function MM_CalchgDsp(iKind){
    	iChgMonthStart = iChgMonthStart*1;
    	iChgMonthEnd   = iChgMonthEnd*1;
    	iChgYearStart = iChgYearStart*1;
    	iChgYearEnd = iChgYearEnd*1;
        if (iKind==0 && iCalType==0) {
            if (iChgMonthStart==1) {
                iChgMonthStart = 12;
                iChgYearStart  = iChgYearStart - 1;
            } else {
                iChgMonthStart = iChgMonthStart - 1;
            }
        } else if (iCalType==0 && iKind == 1) {
        	if (iChgMonthStart==12) {
                iChgMonthStart = 1;
                iChgYearStart  = iChgYearStart + 1;
            } else {
                iChgMonthStart = iChgMonthStart + 1;
            }
        }

        if (iKind==0 && iCalType==1) {
            if (iChgMonthEnd==1) {
                iChgMonthEnd = 12;
                iChgYearEnd  = iChgYearEnd - 1;
            } else {
                iChgMonthEnd = iChgMonthEnd - 1;
            }
        } else if (iCalType==1 && iKind == 1) {
        	if (iChgMonthEnd==12) {
                iChgMonthEnd = 1;
                iChgYearEnd  = iChgYearEnd + 1;
            } else {
                iChgMonthEnd = iChgMonthEnd + 1;
            }
        }
        sCalHTML = '';
        if (iCalType==0) {
        	var oCal   = getElem('id','mmCalHin',0);
        	Kalender(iChgMonthStart,iChgYearStart);
        } else {
        	var oCal   = getElem('id','mmCalRueck',0);
        	Kalender(iChgMonthEnd,iChgYearEnd);
        }
        //alert(sCalHTML);
        oCal.innerHTML = sCalHTML;
        oCal.style.display = 'inline';
    }

/**************************************************************
 * Gibt den Integerwert eines Datums zurï¿½ck
 * inDate = Datum (String)
 **************************************************************/
function MM_CalgetDateInt(inDate) {
	index1 = inDate.indexOf(".");
	index2 = inDate.lastIndexOf(".");
	if (index1 >= 0 && index2 >= 0)	{
		var year = inDate.substring(index2 + 1, inDate.length);
		var month;
		if (index1 == index2) {
			today = new Date();
			year = today.getYear();
			if (year < 2000)
				year = 1900 + year;
			month = inDate.substring(index1 + 1, inDate.length) - 1;
		} else {
			month = inDate.substring(index1 + 1, index2) - 1;
        }
		if (year.length == 2)
			year = "20" + year;
		var tempDate = new Date(year, month, inDate.substring(0, index1));
		var retDate = new Date(2000,01,01);
		if (isNaN(tempDate.getTime()))
			return retDate.getTime();
		else
			return tempDate.getTime();
	} else
		return 0;
}

/**************************************************************
 * vergleicht 2 Daten
 * oDateHin = Datum (String)
 * oDateRueck = Datum (String)
 **************************************************************/
function MM_CalCompareDate(oDateHin,oDateRueck) {
    var iTimeHin   = oDateHin.getTime()+(60*60*24*2);
    var iTimeRueck = oDateRueck.getTime();
    if (iTimeHin>iTimeRueck) {
        return false;
    }
    return true;
}

/**************************************************************
 * vergleicht 2 Daten
 * oDateHin = Datum (String)
 * oDateRueck = Datum (String)
 **************************************************************/
function MM_CalCompareValue(source,target,type) {
    var sourcedate =  MM_CalgetDateInt(source.value)
    var targetdate  =  MM_CalgetDateInt(target.value)
    d = new Date();
    if( sourcedate<d.getTime() ) {
        source.value = MM_CalFormatDate(d);
    }
    try {
        switch(type) {
            case "GreaterThan":
                if( sourcedate<targetdate ) {
                    source.value=target.value;
                }
                break;
            case "LessThan":
                if (sourcedate>targetdate) {
                    source.value=target.value;
                }
                break;
            case "CanNotBeLessThan":
                if( sourcedate>targetdate ) {
                    target.value=source.value;
                    target.onchange();
                }
                break;
            default:
        }
    } catch(e) {alert(e);}
}

/**************************************************************
 * formatiert ein Datum
 * oDateHin = Datum (String)
 * oDateRueck = Datum (String)
 **************************************************************/
function MM_CalFormatDateFromString(sDay,sMonth,sYear) {
    if (sDay<10) {
        sDay = '0'+sDay;
    }
    if (sMonth<10) {
        sMonth = '0'+sMonth;
    }
	return sDay + "." + sMonth + "." + sYear;
}

/**************************************************************
 * formatiert ein Datum
 * oDateHin = Datum (String)
 * oDateRueck = Datum (String)
 **************************************************************/
function MM_CalFormatDate(date) {
	var year = date.getYear();
	if (year < 2000) {
		year = 1900 + year;
    }
    var sDay = date.getDate()*1;
    var sMonth = (date.getMonth() + 1)*1;
    var sYear = year*1;
    if (sDay<10) {
        sDay = '0'+sDay;
    }
    if (sMonth<10) {
        sMonth = '0'+sMonth;
    }
	return sDay + "." + sMonth + "." + sYear;
}

/**************************************************************
 * Objekt fuer Select Felder
 **************************************************************/
	function MM_OptionObject(sKey) {
		this.sKey   	= sKey;
		this.sValue 	= eval('sMMFoah'+sKey);
		try {
			this.sCountry 	= eval('sMMCountry'+sKey);
		} catch(e) {
			this.sCountry 	= '';
		}
	}

	function MM_SelectObject() {
		this.options = new Array();
	}

    function MM_SelectObject_push(sKey,oOption) {
        this.options.push();
    }

/**************************************************************
 * Verstecken des Wartelayers
 **************************************************************/
    function MM_hideWaiting() {
        getElem('id','mmWaiting',0).style.display = "none";
    }

 /**************************************************************
 * Kinder
 **************************************************************/
    function MM_prepareKids(iNum) {
    	for(var x=1;x<=iNum;x++) {
			if(!MM_checkKidBirth(x)) {
				return false;
			}
    	}
    	var x = 0;
        for (var i=1;i<=iNum;i++) {
        	var iAlter = MM_getAlter(getElem('name','mmKid'+i+'Day',0).value, getElem('name','mmKid'+i+'Month',0).value, getElem('name','mmKid'+i+'Year',0).value);
            getElem('id','SEA_kids'+i,0).value = iAlter;
            getElem('id','SEA_kids_birth['+i+']',0).value = getElem('name','mmKid'+i+'Year',0).value+"-"+getElem('name','mmKid'+i+'Month',0).value+"-"+getElem('name','mmKid'+i+'Day',0).value;
            x++;
        }
        //alert(x);
        for (var j=(x+1);j<=4;j++) {
        	try { getElem('id','SEA_kids'+j,0).value = '';
        	getElem('id','SEA_kids_birth['+j+']',0).value = ''; } catch (e) {}
        }
        /*for(i=1;i<=iNum;i++) {
        	alert('SET '+'SEA_kids'+i+': '+getElem('id','SEA_kids'+i,0).value+"\n"+'SET '+'SEA_kids_birth['+i+']'+': '+getElem('id','SEA_kids_birth['+i+']',0).value);
        }*/
        return true;
    }

    function MM_showKid(iNum) {
        MM_hideExpert(iTab);
        try { getElem('id','mmContent',0).style.display = 'none'; } catch(e) {}
        try { getElem('id','mmKids',0).style.display = 'block'; } catch(e) {}
        for (var i=1;i<=iNum;i++) {
            getElem('id','mmKid'+i,0).style.visibility = 'visible';
        }
    }

    function MM_updateKids() {
        var oKids   = getElem('name',sPrefix+'SEA_kids',0);
        var iKid    = oKids.value;
        var iMax    = 6;
        if (getElem('name',sPrefix+'sa',0).value=='FLR') {
        	 iMax = 5;
        }
        if (getElem('name',sPrefix+'sa',0).value=='HTR') {
        	 iMax = 4;
        }
        var iValue  = iMax - (getElem('name',sPrefix+'SEA_adults',0).value*1);
        if (iValue>4) {
            iValue = 4;
        }
        oKids.options.length = 0;
        for (var i=0;i<=iValue;i++) {
            oKids.options[i] = new Option(i,i);
        }
        if (iKid<=iValue) {
        	oKids.value = iKid;
        } else {
        	oKids.value = iValue;
        }
        return true;
    }

    function MM_getBack() {
        bKid = false;
        bKidView = false;
        getElem('id','mmContent',0).style.display = 'block';
        getElem('id','mmKids',0).style.display = 'none';
        for (var i=1;i<=4;i++) {
            getElem('id','mmKid'+i,0).style.visibility = 'hidden';
        }
        if (bExpert==0) {
            try { MM_hideExpert(iTab); } catch (e) {}
        } else {
            MM_openExpert(iTab);
        }
    }

    function MM_getAlter(sDay, sMonth, sYear) {

		var heute 		 = new Date();
		var heute_Tag	 = heute.getDate();
		var heute_Monat  = heute.getMonth();
		var heute_Jahr   = heute.getYear();
		if (MS==0) {
			heute_Jahr += 1900;
		}

		//alert(heute_Tag+"-"+heute_Monat+"-"+heute_Jahr);

		var Geburtsdatum_Tag   = sDay*1;
		var Geburtsdatum_Monat = sMonth*1;
		var Geburtsdatum_Jahr  = sYear*1;

		//alert(Geburtsdatum_Tag+"-"+Geburtsdatum_Monat+"-"+Geburtsdatum_Jahr);

		var Alter_Jahre  = 0;

		if (Geburtsdatum_Monat > heute_Monat || ((Geburtsdatum_Tag >= heute_Tag)&&(Geburtsdatum_Monat == heute_Monat))) {
			Alter_Jahre  = heute_Jahr - Geburtsdatum_Jahr -1;
		} else {
			Alter_Jahre = heute_Jahr - Geburtsdatum_Jahr;
		}
		return Alter_Jahre;
    }

/**************************************************************
 * Ex calender.functions.js
 **************************************************************/
 
 /**************************************************************
 * Kalender erzeugen
 * Monat = Aktueller Monat
 * Jahr = Aktuelles Jahr
 **************************************************************/

    var Monatsname     = new Array ("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
    var Tag            = new Array ("Mo","Di","Mi","Do","Fr","Sa","So");

 function Kalender(Monat,Jahr) {
    var maxMonth = 12;
    Monat = Monat*1;
    var KSchrArt = "Verdana,Arial"; /* Schriftart Kalenderkopf */
    var KSchrGroesse = 1;           /* Schriftgroesse 1-7 Kalenderkopf */
    var KSchrFarbe = "#000000";     /* Schriftfarbe Kalenderkopf */
    var Khgrund = "#ff0000";        /* Hintergrundfarbe Kalenderkopf */
    var TSchrArt = "Verdana,Arial"; /* Schriftart Tagesanzeige */
    var TSchrGroesse = 1;           /* Schriftgroesse 1-7 Tagesanzeige */
    var TSchrFarbe = "#000";     /* Schriftfarbe Tagesanzeige */
    var Thgrund = "#FFF";        /* Hintergrundfarbe Tagesanzeige */
    var SoFarbe = "#FFF";        /* Schriftfarbe f. Sonntage */
    var Sohgrund = "/images/GEW/kal_bg2.gif";       /* Hintergrund f. Sonntage */
    var KoSohgrund = "/images/GEW/kal_bg2.gif";       /* Hintergrund f. Sonntage */
    var Ahgrund = "#FFF";        /* Hintergrundfarbe f. heutigen Tag */
    var Mohgrund = "#120066";		/* Hintergrundfarbe f. MonatsangGEWe */

    var jetzt = new Date();

    var DieserMonat = jetzt.getMonth()+1;
    var DiesesJahr = jetzt.getYear();
    if(DiesesJahr < 999) DiesesJahr+=1900;
    var DieserTag = jetzt.getDate();
    var Zeit = new Date(Jahr,Monat-1,1);
    var Start = Zeit.getDay();
    if(Start > 0) Start--;
    else Start = 6;
    var Stop = 31;
    if(Monat==4 ||Monat==6 || Monat==9 || Monat==11 ) --Stop;
    if(Monat==2) {
     Stop = Stop - 3;
     if(Jahr%4==0) Stop++;
     if(Jahr%100==0) Stop--;
     if(Jahr%400==0) Stop++;
    }
       // var xJahr = Jahr*1;
      //  if (xJahr<DiesesJahr || xJahr>(DiesesJahr+1)) {
       //     Jahr = DiesesJahr;
       // }

        //var xMonth = Monat*1;
        //if ((xMonth<DieserMonat && xJahr==DiesesJahr) || xMonth<1 || xMonth>12) {
       //     Monat = DieserMonat;
        //}

    // Sonderfall Bahn: nur derzeit Kalender genauso wie beim else-Zweig -> aendert sich wieder :-)
    // Achtung: JavaScript zaehlt Monate ab 0! :-)
    if (document.getElementById("rit_class") && document.getElementById("rit_class").style.display == 'block') {
        var oDateMax = new Date('2011','11','30');
    } else {
        // Achtung: JavaScript zaehlt Monate ab 0! :-)
        var oDateMax = new Date('2011','11','30');
    }
    // var oDateMax = new Date(DiesesJahr,(DieserMonat+11),DieserTag);

    var lastMonth = oDateMax.getMonth();
    var lastYear  = oDateMax.getFullYear();
    if (lastYear<=999) {
    	lastYear += 1900;
    }
    var showName  = Monatsname[Monat-1];

    sCalHTML +='<table onclick="return false;" border="0" cellspacing="0" cellpadding="1" style="background:#f6f6f6;background-position:0px 16px;">';
    var Monatskopf ="<table border='0' cellspacing='0' cellpadding='0' width='100%' style='background:#fe0000;'><tr style='height:16px;'>";
    if (Zeit.getMonth()>jetzt.getMonth() || Zeit.getFullYear()>jetzt.getFullYear()){
        Monatskopf += "<td width='14' align='right' style='cursor:pointer;vertical-align:middle;' onClick='MM_CalchgDsp(0);'><img src=\"/images/GEW/kalender_pfeil_zurueck.gif\" style=\"margin-top:3px;\" align=\"GEWsmiddle\" border=\"0\">";
    } else { Monatskopf += '<td width="14">'; }
    Monatskopf +="</td><td align='center' style='vertical-align:middle;'><font size='1' color='#ffffff' face='Verdana'><b>"+ showName + " " + Jahr+"</b></font></td>";
    if (Zeit.getMonth()<lastMonth || Zeit.getFullYear()<lastYear){
        Monatskopf +="<td width='14' align='left' style='cursor:pointer;vertical-align:middle;' onClick='MM_CalchgDsp(1);'><img src=\"/images/GEW/kalender_pfeil_vor.gif\" style=\"margin-top:3px;\" align=\"GEWsmiddle\" border=\"0\">";
    } else { Monatskopf += '<td width="14">'; }
        Monatskopf +="</td></tr></table>";
        SchreibeKopf(Monatskopf,Khgrund,KSchrFarbe,KSchrGroesse,KSchrArt);
    var Tageszahl = 1;

    if (iCalType==0) {
        var iAdd = 1;
    } else {
        var iAdd = 2;
    }

    if ((DieserTag+iAdd)>Stop) {
        var iTmp1  = (DieserTag+iAdd) - Stop;
        if (Monat==12) {
            var iTmp2 = 1;
            var iTmp3 = DiesesJahr+1;
        } else {
            var iTmp2 = DieserMonat+1;
            var iTmp3 = DiesesJahr;
        }
    } else {
        var iTmp1 = (DieserTag+iAdd);
        var iTmp2 = DieserMonat;
        var iTmp3 = DiesesJahr;
    }

    for(var i=0;i<=5;i++) { // DOWNSTEP
          sCalHTML +="<tr>";
          for(var j=0;j<=5;j++) { // RIGHTSTEP
                if((i==0)&&(j < Start))
                  SchreibeLeereZelle('',''); // Noch nicht gÃ¼ltig
                else {
                      if(Tageszahl > Stop)
                            SchreibeLeereZelle('',''); // Nicht mehr gÃ¼ltig
                      else {
                            if((Jahr==DiesesJahr)&&(Monat==DieserMonat)&&(Tageszahl==DieserTag)) {
                                SchreibeLeereZelle(Tageszahl,'#fe0000','#ffffff');  //Heute
                            } else if ((Jahr<=iTmp3)&&(Monat<=iTmp2)&&(Tageszahl<iTmp1)&&(Tageszahl!=DieserTag)) {
                                if (j==5) {
                                    SchreibeLeereZelle(Tageszahl,'#dfdfdf','#000000');
                                } else {
                                    SchreibeLeereZelle(Tageszahl,'','#000000');
                                }
                            } else if ((Jahr<=DiesesJahr)&&(Monat<=DieserMonat)&&(Tageszahl<DieserTag)) {
                                if (j==5) {
                                    SchreibeLeereZelle(Tageszahl,'#dfdfdf','#000000');
                                } else {
                                    SchreibeLeereZelle(Tageszahl,'','#000000');
                                }
                            } else
                                if (j == 5){
                                    SchreibeZelle(Tageszahl,'#dfdfdf','#000000',TSchrGroesse,TSchrArt); // Schreiben
                                }else{
                                    SchreibeZelle(Tageszahl,'','#000000',TSchrGroesse,TSchrArt); // Schreiben
                                }
                            Tageszahl++;
                      }
                }
           }
            if(Tageszahl > Stop)
                SchreibeLeereZelle(''); // SchreibeZelle("&#160;",'',SoFarbe,TSchrGroesse,TSchrArt); // Nicht mehr gÃ¼ltig
            else {
                  if((Jahr==DiesesJahr)&&(Monat==DieserMonat)&&(Tageszahl==DieserTag)) {
                        SchreibeZelle(Tageszahl,'#6D003A','#FFF',TSchrGroesse,TSchrArt); // Heute Sonntag
                  } else if ((Jahr<=iTmp3)&&(Monat<=iTmp2)&&(Tageszahl<iTmp1)&&(Tageszahl!=DieserTag)) {
                        SchreibeLeereZelle(Tageszahl,'#dfdfdf','#000000');
                  } else if ((Jahr<=DiesesJahr)&&(Monat<=DieserMonat)&&(Tageszahl<DieserTag)) {
                        SchreibeLeereZelle(Tageszahl,'#dfdfdf','#000000');
                  } else
                        SchreibeZelle(Tageszahl,'#dfdfdf','#000000',TSchrGroesse,TSchrArt); // Sonntag > Heute
                  Tageszahl++;
            }
            sCalHTML +="<\/tr>";
      }
    sCalHTML +="<\/table>";
    sCalHTML +="<div style='color:#FFF;height:14px;vertical-align:top;padding:0px;background:#fe0000;width:100%;text-align:center;margin-top:0px;'><a name='closeCal' href='#closeCal' style='margin:0px;padding:0px;font-size:10px;font-weight:bold;color:#FFF;' onclick='MM_hideCal("+iCalType+",1);'>Schlie&szlig;en</a></div>";
}

/**************************************************************
 * Erzeugt den KalenderKopf
 * Monatstitel = Aktueller Monat
 * HgFarbe = Aktuelles Jahr
 * SchrFarbe = Aktuelles Jahr
 * SchrGroesse = Aktuelles Jahr
 * SchrArt = Aktuelles Jahr
 **************************************************************/
function SchreibeKopf(Monatstitel,HgFarbe,SchrFarbe,SchrGroesse,SchrArt) {
    var Mohgrund = "#fe0000";		/* Hintergrundfarbe f. MonatsangGEWe */
    var KoSohgrund = "/images/GEW/kal_bg2.gif";       /* Hintergrund f. Sonntage */
    sCalHTML +="<tr>";
    sCalHTML +='<td align="center" colspan="7" valign="middle" style="color:#ffffff;" bgcolor="'+Mohgrund+'">';
    sCalHTML +='<b>';
    sCalHTML +=Monatstitel;
    sCalHTML +="</b><\/td><\/tr>";
    sCalHTML +="<tr>";
    var sFarbe = '#f6f6f6';
    HgFarbe = '';
    var iTmp = 1;
    for(var i=0;i<=6;i++){
      if (i > 4){ HgFarbe='#dfdfdf'; sFarbe='#000000'; iTmp=2; } else {
      	sFarbe='#000000';
      }
      SchreibeZelle2(Tag[i],HgFarbe,sFarbe,SchrGroesse,SchrArt,iTmp);
    }
    sCalHTML +="<\/tr>";
}

/**************************************************************
 * Erzeugt eine Zelle
 * Monatstitel = Aktueller Monat
 * HgFarbe = Aktuelles Jahr
 * SchrFarbe = Aktuelles Jahr
 * SchrGroesse = Aktuelles Jahr
 * SchrArt = Aktuelles Jahr
 * Href = Link
 **************************************************************/
function SchreibeZelle(Inhalt,HgFarbe,SchrFarbe,SchrGroesse,SchrArt,Href) {
    var sTmp = '';
    if (HgFarbe!='') {
        sTmp = 'background:'+HgFarbe+';';
    }
    sCalHTML +='<td align="center" valign="middle" style="border-bottom:1px solid #FFF;" width=18 height=18>';
    if (Href != 1 && Inhalt != '&#160;'){
        sCalHTML +='<a class="none" href=\"#\" style="'+sTmp+'display:block;margin:1px;margin-left:0px;height:16px;width:16px;text-decoration:none;font-size:10px;font-weight:normal;color:'+SchrFarbe+';" onClick=\"MM_CalWriteDate('+Inhalt+')\">';
    }else{
        sCalHTML +='<span style="'+sTmp+'display:block;margin:1px;margin-left:0px;height:16px;width:16px;text-decoration:none;font-size:10px;font-weight:normal;color:'+SchrFarbe+';">';
    }
    sCalHTML +=Inhalt;
    if (Href != 1 && Inhalt != '&#160;'){
        sCalHTML +='</a>';
    }else{
        sCalHTML +='</span>';
    }
    sCalHTML +="<\/td>";
}

/**************************************************************
 * Erzeugt eine leere Zelle
 * Monatstitel = Aktueller Monat
 * HgFarbe = Aktuelles Jahr
 * SchrFarbe = Aktuelles Jahr
 * SchrGroesse = Aktuelles Jahr
 * SchrArt = Aktuelles Jahr
 * Href = Link
 **************************************************************/
function SchreibeLeereZelle(iNr,HgFarbe,SchrFarbe) {
    var sTmp = '';
    if (HgFarbe!='') {
        sTmp = 'background:'+HgFarbe+';';
    }
    sCalHTML += '<td align="center" style="overflow:hidden;font-size:10px;color:'+SchrFarbe+';border-bottom:1px solid #FFF" width=18 height=18>';
    if (iNr=='') {
        sCalHTML += '<div style="display:block;margin:1px;margin-left:0px;height:16px;width:16px;text-decoration:none;font-size:10px;font-weight:normal;color:'+SchrFarbe+';'+sTmp+'">&nbsp;</div>';
    } else {
        sCalHTML += '<div style="display:block;margin:1px;margin-left:0px;height:16px;width:16px;text-decoration:none;font-size:10px;font-weight:normal;color:'+SchrFarbe+';'+sTmp+'">'+iNr+'</div>';
    }
    sCalHTML += "</td>";
}

/**************************************************************
 * Erzeugt eine Zelle
 * Monatstitel = Aktueller Monat
 * HgFarbe = Aktuelles Jahr
 * SchrFarbe = Aktuelles Jahr
 * SchrGroesse = Aktuelles Jahr
 * SchrArt = Aktuelles Jahr
 * Href = Link
 **************************************************************/
function SchreibeZelle2(Inhalt,HgFarbe,SchrFarbe,SchrGroesse,SchrArt,Href) {
    var sTmp = '';
    if (HgFarbe!='') {
        sTmp = 'background:'+HgFarbe+';';
    }
    sCalHTML +='<td align="center" valign="middle" style="border-top:2px solid #ffffff;border-bottom:1px solid #FFF" width=18 height=18>';
    //sCalHTML +='<font size="'+SchrGroesse+'" style="color:'+SchrFarbe+';" face="'+SchrArt+'">';
    if (Href != 1 && Href!=2 && Inhalt != '&#160;'){
        sCalHTML +='<a href=\"#\" style="display:block;width:16px;heigth:16px;margin:1px;margin-left:0px;font-size:10px;color:#FFF;'+sTmp+'" onClick=\"MM_CalWriteDate('+Inhalt+')\">';
    }else{
        if (Href==2) {
            sCalHTML +='<b title="Nicht m&ouml;glich" style="display:block;width:16px;heigth:16px;margin:1px;margin-left:0px;font-size:10px;color:'+SchrFarbe+';'+sTmp+'">';
        } else {
            sCalHTML +='<b title="Nicht m&ouml;glich" style="display:block;width:16px;heigth:16px;margin:1px;margin-left:0px;font-size:10px;color:'+SchrFarbe+';'+sTmp+'">';
        }
    }
    sCalHTML +=Inhalt;
    if (Href != 1 && Inhalt != '&#160;'){
        sCalHTML +='</a>';
    }else{
        sCalHTML +='</b>';
    }
    sCalHTML +="<\/td>";
}
 
 
 
 /* Ex /loco/css/ajax.functions.js */
    
    /******************************************************************************
 * Ajax Funktionen
 *
 * Example:
 *			var oAjax = new LocoAjax('mixmaster_select.php');
 *			    oAjax.push('foah','FRA');
 *				oAjax.exec('GET'); //oAjax.execGet();
 *			var sText = oAjax.getText();
 *			var oXml  = oAjax.getXml();
 ******************************************************************************/

var oLocoAjax     = null;
var sLocoAjaxHand = '';

function LocoAjax(sUrl) {

	this.sUrl  = '';
	this.sText = '';
	this.sHand = '';
	this.oXml  = '';

	this.setHandler = function(sVal) {
		this.sHand = sVal;
		sLocoAjaxHand = sVal;
	}

	this.getText = function() {
		return this.sText;
	}

	this.getXml  = function() {
		return this.oXml;
	}

	this.init = function(sUrl) {
		this.sUrl = sUrl+'?';
		/*
	    try {
	        if( window.ActiveXObject ) {
	            for( var i = 5; i; i-- ) {
	                try {
	                    if( i == 2 ) {
	                        oAjax = new ActiveXObject( "Microsoft.XMLHTTP" );
	                    } else {
	                        oAjax = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
	                    }
	                    break;
	                } catch( ExcNotLoadableException ) {
	                    return false;
	                }
	            }
	        } else if( window.XMLHttpRequest ) {
	            return new XMLHttpRequest();
	        }
	    } catch( ExcNotLoadableException ) {
	        return false;
	    }*/
		if (window.XMLHttpRequest) { // Mozilla, Safari, ...
		    oLocoAjax = new XMLHttpRequest();
		} else if (window.ActiveXObject) { // IE
		    oLocoAjax = new ActiveXObject("Microsoft.XMLHTTP");
		}
	    return oLocoAjax;
	}

	oLocoAjax = this.init(sUrl);

	this.push  = function(sName,sValue) {
		this.sUrl += '&'+sName+'='+sValue;
	}

	this.exec  = function(sMethod) {
		if (sMethod=='POST') {
			this.execPost();
		} else {
			this.execGet();
		}
	}

	this.execPost = function() {
		oLocoAjax.onreadystatechange = this.stateChanged;
	    oLocoAjax.open('POST', this.sUrl, true);
	    oLocoAjax.send(null);
	}

	this.execGet  = function() {
		try {
		    oLocoAjax.onreadystatechange = this.stateChanged;
		    oLocoAjax.open('GET', this.sUrl, true);
		    try { oLocoAjax.send(null); } catch(e) {
		    	oLocoAjax.send('');
		    }
		} catch (e) { alert('LADE: ' + e); }
	}

	this.stateChanged = function(sHand) {
		if (oLocoAjax.readyState == 4) {
	        if (oLocoAjax.status == 200) {
	        	if (sLocoAjaxHand == '') {
		            this.sText = oLocoAjax.responseText;
		            this.oXml  = oLocoAjax.responseXML;
	        	} else {
	        		try {
	        			eval('var xAjaxTmp = '+sLocoAjaxHand+'();');
	        		} catch(e) {
						var xAjaxTmp = e;
	        		}
	        		return xAjaxTmp;
	        	}
	        } else {
	            alert('Bei dem Request ist ein Problem aufgetreten.');
	        }
    	}
	}
}
    
    
     
    
    
    

/**************************************************************
 * Beginn Ex altes locomat.js
 * Initialisiert die Tabs
 **************************************************************/
    function MM_init() {
    	if (sMdt=='DE_loco') {
    		var sMdtTmp='loco';
    	} else {
    		var sMdtTmp = sMdt;
    	}
    	
        if (bExpert==0) {
            aTabs.push('Flug & Hotel');
            aTabs.push('Flug & Mietwagen');
            aTabs.push('Bahn & Hotel');
        }
        var iId = 0;
        var sSa = getElem('name','sa',0).value;
        if (sSa=='HTR') {
        	iId = 2;
        }
        if (sSa=='FLR') {
        	iId = 1;
        }
        MM_initBody();
        if (bExpert==0) {
            MM_openTab(iId);
        }
        if (bExtern==0 || bExtern==1) {
            if (window.Event) {
               document.captureEvents(Event.MOUSEUP);
               document.captureEvents(Event.UNLOAD);
            }
            //addEvent(getElem('id','mmMain',0),'onclick','MM_hideCals');
            document.onclick = MM_clearError;
            document.onunload = MM_destructor;
        }
        try {
	        if (iMMErrorNr!='') {
	            if(bAlertError==0) { 
                    MM_raiseError('error_search',iMMErrorMsg,10,105,220,60,1);
                    // bestimmte Elemente ausblenden
                    getElem('name','hk',0).style.display  = "none";
                } else { alert(iMMErrorMsg); }
	        }
        } catch(e) {}
        MM_updateRooms();
        if (bOpenExpert == 1 && iId<2) {
            MM_openExpert(iId);
        }
        MM_setKidsBirthFromRequest();
        MM_initSelect();
    }

/**************************************************************
 * ?ffnet ein bestimmtes Tab
 * iId = nr des Tabs
 **************************************************************/
    function MM_openTab(iId) {
        iTab = iId;
        if (sTabDesign=='MixMaster') {
            MM_tabDesignMixMaster(iId);
        } else if (sTabDesign=='Extern') {
            MM_tabDesignExtern(iId);
        }
        MM_showBody(iId);
    }

/**************************************************************
 * Link zur Gruppenbuchung
 * ###
 **************************************************************/
    function MM_openGruppenbuchung(base_url) {
        var sLink = base_url + 'gruppenanfrage.ltml?from=mixmaster';
        var aParameter = new Array('sa','zo','foah','start_datum','end_datum','SEA_adults','SEA_kids','');
        for(var i=0;i<aParameter.length;i++) {
            try { sLink += "&"+aParameter[i]+'='+getElem('name',aParameter[i],0).value; } catch (e) {}
        }
        document.location = sLink;
    }

/**************************************************************
 * Design fuer Tabs
 * iId = nr des Tabs
 **************************************************************/
    function MM_tabDesignExtern(iId) {
        var iLength = aTabs.length;
        var sHtml  = '<div style="height:18px;margin:0px;overflow:hidden;border-collapse:collapse;" class="mmTabDesignExtern">' + "\n"
                   + '  <div class="mmTabDesignText">Alle Reisen<div>' + "\n"
                   + '</div>' + "\n";
        try { setHTML('id','mmNav',0,sHtml); } catch (e) {}
        return true;
    }

/**************************************************************
 * Design fuer Tabs
 * iId = nr des Tabs
 **************************************************************/
    function MM_tabDesignMixMaster(iId) {
         var iLength = aTabs.length;
         var sHtml = '';
         if (iId==0) {
             sHtml += '<div class="tnb searchTabActive" style="width:80px;">Flug &amp; Hotel</div>'+"\n";
         } else {
             sHtml += '<div class="tnb searchTab" style="width:80px;" onClick="MM_openTab(0)"><a href="#">Flug &amp; Hotel</a></div>'+"\n";
         }
         if (iId==2) {
             sHtml += '<div class="tnb searchTabActive" style="width:80px;">Bahn &amp; Hotel</div>'+"\n";
         } else {
             sHtml += '<div class="tnb searchTab" style="width:80px;" onClick="MM_openTab(2)"><a href="#">Bahn &amp; Hotel</a></div>'+"\n";
         }
         if (iId==1) {
             sHtml += '<div class="tnb searchTabActive" style="width:100px;">Flug &amp; Mietwagen</div>'+"\n";
         } else {
             sHtml += '<div class="tnb searchTab" style="width:100px;" onClick="MM_openTab(1)"><a href="#">Flug &amp; Mietwagen</a></div>'+"\n";
         }
         sHtml += '<div style="background: transparent url(/images/DB/reiter_such_inaktiv_1_20.gif);background-repeat:repeat-x;width:159px;height:20px;">&nbsp;</div>';
         try { setHTML('id','mmNav',0,sHtml); } catch (e) {  }
         return true;
    }

/**************************************************************
 * Blendet die Wartenavigation ein
 **************************************************************/
    function MM_hideNav() {
        var sHtml  = '<table style="height:18px;margin:0px;table-layout:fixed;border-collapse:collapse;"><tr height="18">'+"\n";
            sHtml += '<td style="background: transparent url(/images/DE_loco/reiter_1_w.gif);" width="73">&nbsp;</td>' + "\n";
            sHtml += '<td style="background: transparent url(/images/DE_loco/reiter_1r_w.gif);" width="13">&nbsp;</td>' + "\n";
            sHtml += '<td style="background: transparent url(/images/DE_loco/reiter_2_w.gif);" width="105">&nbsp;</td>' + "\n";
            sHtml += '<td style="background: transparent url(/images/DE_loco/reiter_2r_w.gif);" width="13">&nbsp;</td>' + "\n";
            sHtml += '<td style="background: transparent url(/images/DE_loco/reiter_3_w.gif);" width="89">&nbsp;</td>' + "\n";
            sHtml += '</tr></table>' + "\n";
        var sHtml = '';
        setHTML('id','mmNav',0,sHtml);
        //getElem('id','mmNav',0).style.visibility = 'hide';
    }

/**************************************************************
 * Zeigt den Body fï¿½r einen bestimmten Tab an
 * iId = nr des Tabs
 **************************************************************/
    function MM_showBody(iId) {
    	bBlockSearch = 0;
        if (iId == 0) {
            bMMRit  = 0;
            try{ getElem('name',sPrefix+'foah',0).style.display      = 'block'; }catch(e){}
            try{ getElem('id','mmFoah',0).style.display      = 'block'; }catch(e){}
            try{ getElem('name',sPrefix+'rit_class',0).style.display = 'none'; }catch(e){}
            try{ getElem('id','mmClass',0).style.display     = 'none'; }catch(e){}
//            if (bExpert==0) { try{ getElem('id','mmSearchDetail',0).style.display = "block"; }catch(e){} }
            try{ getElem('id','mmSearchDetailNone',0).style.display = "none";}catch(e){}
            try{ getElem('name',sPrefix+'sa',0).value       = "PAR"; } catch (e) {}
            MM_updateKids();
            try{ getElem('id','mmRoomTitle',0).style.display = "block"; } catch (e) {}
            try{ getElem('name',sPrefix+'rooms',0).style.display     = "block"; } catch (e) {}
//            try{ getElem('id','mmIconCar',0).style.visibility   = "visible"; } catch (e) {}
            try{ getElem('id','mmCarTitle',0).style.display  = "block"; } catch (e) {}
            try{ getElem('name',sPrefix+'car',0).style.display       = "block"; } catch (e) {}
            try{ getElem('name',sPrefix+'carNone',0).style.display = 'none'; } catch (e) {}
            if (bSearchLocomat==0) { try{ if (bExpert==0) { if (bFixMMDest==0 || bExtern!=1) { getElem('name',sPrefix+'view',0).value = '410_0_0_0_0_0_0_1'; } else { getElem('name',sPrefix+'view',0).value = bFixMMDest+'_0_0_0_1_0_0_0'; }}
            else { getElem('name',sPrefix+'view',0).value = '410_0_0_0_0_0_0_0'; }} catch (e) {} }
//            try{ getElem('id','mmIconRoom',0).style.display  = "block"; } catch (e) {}
            try{getElem('id','mmZo3',0).style.display              = 'none';} catch (e) {}
            try{getElem('id','mmZo2',0).style.display              = 'block';} catch (e) {}
            try{ getElem('id','mmHkTitle',0).style.display  = "block"; } catch (e) {}
            try{ getElem('name','hk',0).style.display  = "block"; } catch (e) {}
//            try{getElem('id','mmIconRit',0).style.display           = "none";} catch (e) {}
//            try{getElem('id','mmIconFlight',0).style.display        = "block";} catch (e) {}
			//try{getElem('name','car',0).checked = false;} catch (e) {}
			try{getElem('id','mmRitPopupInfo',0).style.display        = "none";} catch (e) {}
//            try{getElem('id','mmIconCarII',0).style.display        = "none";} catch (e) {}
            try{getElem('id','mmCarTitleII',0).style.display       = "none";} catch (e) {}
            try{getElem('id','mmCarTitle',0).style.display       = "block";} catch (e) {}
            try{getElem('id','mmCarText',0).style.display          = "none";} catch (e) {}
			if(bExpert!=1){try{ getElem('id','mmMiddle',0).style.background = '#D7DBF8 url(/images/DB/locomat_back_unten_mit.jpg) no-repeat'; } catch (e) {}
			} else {try { getElem('id','mmMiddle',0).style.background       = '#D7DBF8 url(/images/DB/locomat_back_unten_ohne.jpg) no-repeat';} catch (e) {}}
            try{setHTML('id','mmTitleTo',0,'Nach');} catch (e) {}
            if (bShowExpert==1) {
                try { setHTML('id','mmExpertHideLink',0,MM_generateExpertLink(iId)); } catch (e) {}
                try { setHTML('id','mmSearchDetail',0,MM_generateExpertLink(iId)); } catch (e) {}
            }
            try{ getElem('name','flexh',0).style.display  = "block"; } catch (e) {}
            try{ getElem('id','FlexiTitle',0).style.display  = "block"; } catch (e) {}
            try{ getElem('id','mmStopsTitle',0).style.display  = "block"; } catch (e) {}


            MM_changeOrigin();
            MM_changeDestination();
        }
        if (iId == 1) {
            bMMRit  = 0;
            try{getElem('name',sPrefix+'foah',0).style.display      = 'block';} catch (e) {}
            try{getElem('id','mmFoah',0).style.display              = 'block';} catch (e) {}
            if (bExpert==0) { if (bFixMMDest==0 || bExtern!=1) { getElem('name',sPrefix+'view',0).value = '410_0_0_0_0_0_0_1'; } else { getElem('name',sPrefix+'view',0).value = bFixMMDest+'_0_0_0_1_0_0_0'; } }
            else { getElem('name',sPrefix+'view',0).value       = '410_0_0_0_0_0_0_0'; }
            try{ getElem('name',sPrefix+'sa',0).value       	= "FLR"; } catch (e) {}
            MM_updateKids();
            try{getElem('name',sPrefix+'rit_class',0).style.display = 'none'; } catch (e) {}
            try{getElem('id','mmClass',0).style.display             = 'none'; } catch (e) {}
//            if (bExpert==0) { try{  getElem('id','mmSearchDetail',0).style.display = "block";}catch(e){} }
            try{getElem('id','mmSearchDetailNone',0).style.display = "none";}catch(e){}
            try{getElem('id','mmRoomTitle',0).style.display         = "none"; } catch (e) {}
            try{getElem('id','mmCarTitle',0).style.display          = "block"; } catch (e) {}
            try{getElem('name',sPrefix+'rooms',0).style.display     = "none"; } catch (e) {}
            try{getElem('name',sPrefix+'car',0).checked             = true;} catch (e) {}
            try{getElem('name',sPrefix+'car',0).style.display       = 'none';} catch (e) {}
            try{ getElem('name',sPrefix+'carNone',0).style.display = 'none'; } catch (e) {}
//            try{getElem('id','mmIconCar',0).style.visibility        = "hidden";} catch (e) {}
//            try{getElem('id','mmIconRoom',0).style.display          = "none";} catch (e) {}
            try{ getElem('id','mmHkTitle',0).style.display      = "none"; } catch (e) {}
            try{ getElem('name','hk',0).style.display           = "none"; } catch (e) {}
//            try{getElem('id','mmIconRit',0).style.display           = "none";} catch (e) {}
//            try{getElem('id','mmIconFlight',0).style.display        = "block";} catch (e) {}
			try{getElem('id','mmRitPopupInfo',0).style.display        = "none";} catch (e) {}
//            try{getElem('id','mmIconCarII',0).style.display        = "block";} catch (e) {}
            try{getElem('id','mmCarTitleII',0).style.display       = "block";} catch (e) {}
            try{getElem('id','mmCarText',0).style.display          = "block";} catch (e) {}
			if(bExpert!=1){try{ getElem('id','mmMiddle',0).style.background = '#D7DBF8 url(/images/DB/locomat_back_unten_mit.jpg) no-repeat'; } catch (e) {}
			} else {try { getElem('id','mmMiddle',0).style.background       = '#D7DBF8 url(/images/DB/locomat_back_unten_ohne.jpg) no-repeat';} catch (e) {}}
            try{setHTML('id','mmTitleTo',0,'Nach');} catch (e) {}
            if (bShowExpert==1) {
                try { setHTML('id','mmExpertHideLink',0,MM_generateExpertLink(iId)); } catch (e) {}
                try { setHTML('id','mmSearchDetail',0,MM_generateExpertLink(iId)); } catch (e) {}
            }
            try{ getElem('id','mmStopsTitle',0).style.display  = "block"; } catch (e) {}
            try{ getElem('name','flexh',0).style.display  = "block"; } catch (e) {}
            try{ getElem('id','FlexiTitle',0).style.display  = "block"; } catch (e) {}
            MM_changeOrigin();
            MM_changeDestination();
        }
        if (iId == 2) {
            bExpert = 0;
            bMMRit  = 1;
//TODOSK - notused            MM_hideExpertNone(iId);
            try { getElem('id','LTF_TR_FLASH',0).style.display  = 'block'; } catch (e) {}
//            try{getElem('id','mmExt',0).style.display               = 'none';} catch (e) {}
            try{getElem('id','mmBody',0).style.height               = "138px";} catch (e) {}
            try{getElem('name',sPrefix+'view',0).value              = '420_0_0_0_0_0_0_0';} catch (e) {}
            try{ getElem('name',sPrefix+'sa',0).value       	= "HTR"; } catch (e) {}
            MM_updateKids();
            try{getElem('name',sPrefix+'foah',0).style.display      = 'none';} catch (e) {}
            try{getElem('id','mmFoah',0).style.display              = 'none';} catch (e) {}
            try{getElem('name',sPrefix+'rit_class',0).style.display = 'block';} catch (e) {}
            try{getElem('id','mmClass',0).style.display             = 'block';} catch (e) {}
//            try{getElem('id','mmSearchDetail',0).style.display      = "none";} catch (e) {}
            try{ getElem('id','mmSearchDetailNone',0).style.display = "block"; }catch(e){}
            try{getElem('id','mmRoomTitle',0).style.display         = "block";} catch (e) {}
            try{getElem('name',sPrefix+'rooms',0).style.display     = "block";} catch (e) {}
            try{getElem('id','mmCarTitle',0).style.display          = "none";} catch (e) {}
            try{getElem('name',sPrefix+'carNone',0).style.display   = 'none';} catch (e) {}
//            try{getElem('id','mmIconRoom',0).style.display          = "block";} catch (e) {}
//            try{getElem('id','mmIconRit',0).style.display           = "block";} catch (e) {}
//            try{getElem('id','mmIconFlight',0).style.display        = "none";} catch (e) {}
//            try{getElem('id','mmIconCarII',0).style.display        = "none";} catch (e) {}
            try{getElem('id','mmRitPopupInfo',0).style.display        = "block";} catch (e) {}
            try{getElem('id','mmCarTitleII',0).style.display       = "none";} catch (e) {}
            try{getElem('id','mmCarText',0).style.display          = "none";} catch (e) {}
            try{ getElem('id','mmMiddle',0).style.background = '#D7DBF8 url(/images/DB/locomat_back_unten_stern.jpg) no-repeat'; } catch (e) {}
            try{setHTML('id','mmTitleTo',0,'Reiseziel');} catch (e) {}
            try{getElem('name','car',0).checked = false;} catch (e) {}
            try{ getElem('id','mmHkTitle',0).style.display  = "block"; } catch (e) {}
            try{ getElem('name','hk',0).style.display  = "block"; } catch (e) {}
            try{ getElem('id','mmStopsTitle',0).style.display  = "none"; } catch (e) {}
            try{ getElem('name','flexh',0).style.display  = "none"; } catch (e) {}
            try{ getElem('id','FlexiTitle',0).style.display  = "none"; } catch (e) {}
            MM_hideCar();
            MM_changeOrigin();
            bBlockSearch = 0;
        }
    }

/**************************************************************
 * Zeigt eine Fehlermeldung an!
 * iName = Eindeutiger Name
 * iLeft = Entfernung linker Rand
 * iTop  = Entfernung oberer Rand
 * iWidth   = Entfernung linker Rand
 * iHeight  = Entfernung oberer Rand
 * sText    = Text der Fehlermeldung
 * iDirection = In welche Richtung ist der Pfeil
 **************************************************************/
    var aErrorIds = new Array();

    function MM_raiseError(sName, sText, iLeft, iTop, iWidth, iHeight, iDirection) {
    	try {
        var iTop2, iLeft2, sImg;
        if (iDirection==1) {
            iTop2 = iTop;
            iTop += 10;
            iLeft2 = iLeft;
            sImg = 'error_unten_nach_rechts.gif';
        }
        if (iDirection==2) {
            iTop2 = iTop;
            iTop += 10;
            iLeft2 = iLeft+(iWidth-11);
            sImg = 'error_oben_nach_links.gif';
        }
        if (iDirection==3) {
            iTop2 = iTop;
            iTop -= 10;
            iLeft2 = iLeft+(iWidth-11);
            sImg = 'error_oben_nach_links.gif';
        }
        if (iDirection==4) {
            iTop -= 10;
            iTop2 = iTop+iHeight;
            iLeft2 = iLeft;
            sImg = 'error_oben_nach_rechts.gif';
        }

        var oElem = document.createElement('div');
        oElem.setAttribute('id','mmError_'+sName);
        oElem.id = 'mmError_'+sName;
        oElem.setAttribute('onclick','MM_clearError();');
        oElem.onclick = 'MM_clearError();';
        oElem.setAttribute('class','mmError');
        oElem.className = 'mmError';
        oElem.setAttribute('style','top:'+iTop+'px;left:'+iLeft+'px;width:'+iWidth+'px;height:'+iHeight+'px;');
        oElem.style.top = iTop+'px';
        oElem.style.width = iWidth+'px';
        oElem.style.left = iLeft+'px';
        oElem.style.height = iHeight+'px';
        var sHtml1 = '<img src="/images/DB/error_icon_mm.gif" alt="" title="" align="left" style="margin:4px;"/>'
                  + '<div class="mmErrorText">'+sText+'</div>';
        //var oElemText = document.createTextNode(sHtml);
        //oElem.appendChild(oElemText);
        var oElem2 = document.createElement('img');
        oElem2.setAttribute('id','mmErrorImg_'+sName);
        oElem2.id = 'mmErrorImg_'+sName;
        oElem2.setAttribute('onclick','MM_clearError();');
        oElem2.onclick = 'MM_clearError();';
        oElem2.setAttribute('src','/images/DB/'+sImg);
        oElem2.setAttribute('class','mmError');
        oElem2.src = '/images/DB/'+sImg;
        oElem2.setAttribute('style','top:'+iTop2+'px;left:'+iLeft2+'px;');
        oElem2.className = 'mmError';
        oElem2.style.top = iTop2+'px';
        oElem2.style.left = iLeft2+'px';
        oElem2.style.position = 'absolute';
        //var oElemText2 = document.createTextNode(sHtml);
        //oElem2.appendChild(oElemText2);
        getElem('id','mmMain',0).appendChild(oElem2);
        getElem('id','mmMain',0).appendChild(oElem);
        aErrorIds.push('mmError_'+sName);
        aErrorIds.push('mmErrorImg_'+sName);
        setHTML('id','mmError_'+sName,0,sHtml1);
        //alert('OK-'+getElem('id','mmError_'+sName,0).innerHTML);
    	} catch (e) {  }
    }


/**************************************************************
 * Initialisiert den Body fï¿½r einen bestimmten Tab an
 * iId = nr des Tabs
 **************************************************************/
    function MM_initBody() {
        var oObj = '';
        var iLength = 0;
		var sVal = '';

        if (bShowExpert==1) {
            try { setHTML('id','mmSearchDetail',0,MM_generateExpertLink(0)); } catch (e) {}
        }
        MM_initVars();
    }

    function MM_initVars() {
        //getElem('name',sPrefix+'zo',0).value                = sDefaultDest;
        //getElem('name',sPrefix+'foah',0).value              = sDefaultOrigin;
    }


    function MM_updateRooms() {
        try {
            var iNum    = getElem('name','SEA_adults',0).value;
            var oRooms  = getElem('name','rooms',0);
            var iValue  = oRooms.value;
            if (iValue>iNum) {
                iValue = iNum;
            }
            oRooms.options.length = 0;
            for (var i=1;i<=iNum;i++) {
                oRooms.options[(i-1)] = new Option(i,i);
            }
            oRooms.value = iValue;
        } catch(e) {}
        return true;
    }

    function MM_prepareSearch() {
    	if (bBlockSearch==1 && getElem('name',sPrefix+'sa',0).value!='HTR') {
    		return false;
    	}
        var sError = '';
        if (getElem('name',sPrefix+'zo',0).value=='' || getElem('name',sPrefix+'zo',0).value.length!=3) {
            if(bAlertError==0) MM_raiseError('zo',MM_getErrorMsg('sErrorZielflughafen'),15,103,150,30,1);
            sError += MM_getErrorMsg('sErrorZielflughafen') + "\n";
            // bestimmte Elemente ausblenden
            getElem('name','hk',0).style.display  = "none";
        }
        if ((getElem('name',sPrefix+'foah',0).value=='' || getElem('name',sPrefix+'foah',0).value.length!=3) && getElem('name','sa',0).value!='HTR') {
            if(bAlertError==0) MM_raiseError('foah',MM_getErrorMsg('sErrorAbflughafen'),40,10,150,30,4);
            sError += MM_getErrorMsg('sErrorAbflughafen');
        }
        if (sError!='') {
        	if(bAlertError==1) alert(sError);
            return false;
        }
        if (getElem('name','sa',0).value=='HTR') {
        	getElem('name','foah',0).value = '';
         }
        var aValue = getElem('name','start_datum',0).value.split('.');
        if (getElem('name','rooms',0).value>1) {
            MM_openGruppenbuchung();
            return true;
        }
        if (bExpert==0) {
            //getElem('name','hk',0).value = "";
            getElem('name','stops',0).value = 0;
        }
        getElem('name',sPrefix+'start_datum_day',0).value   = aValue[0];
        getElem('name',sPrefix+'start_datum_month',0).value = aValue[1];
        getElem('name',sPrefix+'start_datum_year',0).value  = aValue[2];
        aValue = getElem('name','end_datum',0).value.split('.');
        getElem('name',sPrefix+'end_datum_day',0).value     = aValue[0];
        getElem('name',sPrefix+'end_datum_month',0).value   = aValue[1];
        getElem('name',sPrefix+'end_datum_year',0).value    = aValue[2];
        var oDateStart  = new Date( getElem('name','start_datum_year',0).value*1,
                                    getElem('name','start_datum_month',0).value*1-1,
                                    getElem('name','start_datum_day',0).value*1);
		var oDateEnd    = new Date( getElem('name','end_datum_year',0).value*1,
                                    getElem('name','end_datum_month',0).value*1-1,
                                    getElem('name','end_datum_day',0).value*1);
        if ((oDateEnd.getTime()-oDateStart.getTime())>iDaysMax) {
        	MM_setDate(1,new Date(oDateStart.getFullYear(),oDateStart.getMonth(),oDateStart.getDate()+iCalDateMaxDay));
            if(bAlertError==0) MM_raiseError('foah',MM_getErrorMsg('sErrorMaxDays'),395,100,150,30,4);
            else alert(MM_getErrorMsg('sErrorMaxDays'));
            return false;
        }
        try{  getElem('name',sPrefix+'flexr',0).value = getElem('name',sPrefix+'flexh',0).value; } catch(e) {}
        var iKids = getElem('name',sPrefix+'SEA_kids',0).value;
        if (iKids>0 && bKid==false) {
            bKid = true;
            bKidView = true;
            var bExp = bExpert;
            getElem('id','mmContent',0).style.display = 'none';
            getElem('id','mmKids',0).style.display = 'block';
            for (var i=1;i<=iKids;i++) {
                getElem('id','mmKid'+i,0).style.visibility = 'visible';
            }
                                                    
//checkSK
//original            MM_showKid(iKids);
            
            bExpert = bExp;
            return false;
        } else {
            if (iKids>0) {
                if (!MM_prepareKids(iKids)) {
                	return false;
                }
                bExpert = 0;
            }
            if (iDefaultView != '' && bExtern==1) {
        		getElem('name',sPrefix+'view',0).value     		= iDefaultView;
        	}
            MM_showWaiting(bExpert);
            getElem('id','mmContent',0).style.display = 'none';
            getElem('id','mmKids',0).style.display    = 'none';
//            getElem('id','mmExt',0).style.display     = 'none';
            getElem('name','mmForm',0).submit();
            return true;
        }
    }



    function MM_showWaiting(bExp) {
        var iId = 0;
        var sSa = getElem('name','sa',0).value;
        if (sSa=='HTR') {
                iId = 2;
        }
        if (sSa=='FLR') {
                iId = 1;
        }
    	if (bConfigEE) {
    		if (bExp==1) {
	            var sHtml = '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" ID=cillitbang WIDTH=320 HEIGHT=240> <PARAM NAME=movie VALUE="http://www.funpic.hu/swf/cillitbang.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#006633> <EMBED src="http://www.funpic.hu/swf/cillitbang.swf" quality=high bgcolor=#000000 WIDTH=455 HEIGHT=307 TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED></OBJECT>';
    			setHTML('id','mmWaiting',0,sHtml);
	            getElem('id','mmWaiting',0).style.height = "304px";
	        } else {
	            var sHtml = '<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" ID=cillitbang WIDTH=320 HEIGHT=240> <PARAM NAME=movie VALUE="http://www.funpic.hu/swf/cillitbang.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#006633> <EMBED src="http://www.funpic.hu/swf/cillitbang.swf" quality=high bgcolor=#000000 WIDTH=455 HEIGHT=189 TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED></OBJECT>';
    			setHTML('id','mmWaiting',0,sHtml);
	            getElem('id','mmWaiting',0).style.height = "189px";
	        }
    	} else {
	        if (bExp==1) {
	            setHTML('id','mmWaiting',0,getFlash('mmWaitingAnimation', '/images/DB/', 'expert_waiting.swf', 'expert_waiting.gif', '', '464', '158'));
	            getElem('id','mmWaiting',0).style.height = "158px";
	        } else {
                setHTML('id','mmWaiting',0,getFlash('mmWaitingAnimation', '/images/DB/', 'wartelayer_neu.swf', 'waiting.gif', '', '464', '160'));
	            getElem('id','mmWaiting',0).style.height = "160px";
	            getElem('id','mmWaiting',0).style.width = "464px";
	        }
    	}
        MM_hideNav();
        getElem('id','mmWaiting',0).style.display = "block";
    }

    function MM_checkKidBirth(iId) {
        var iDay   = parseInt(getElem('name','mmKid'+iId+'Day',0).value)*1;
        var iMonth = parseInt(getElem('name','mmKid'+iId+'Month',0).value)*1;
        var iYear  = parseInt(getElem('name','mmKid'+iId+'Year',0).value)*1;
        var oKid   = new Date(iYear, (iMonth-1), iDay, 0, 0, 0);
        var oNow   = new Date();
        var iYearRef  = 0;
        var iYearRef2 = 0;
        if (MS==1) {
            iYearRef  = parseInt(oNow.getYear())-18;
            iYearRef2 = parseInt(oNow.getYear())-2;
        } else {
            iYearRef  = 1900+parseInt(oNow.getYear())-18;
            iYearRef2 = 1900+parseInt(oNow.getYear())-2;
        }
        var oRef    = new Date(parseInt(iYearRef), parseInt((oNow.getMonth()-1)), parseInt(oNow.getDate()), 0, 0, 0);
        var oRef2   = new Date(parseInt(iYearRef2), parseInt((oNow.getMonth()-1)), parseInt(oNow.getDate()), 0, 0, 0);
        if (oRef.getTime()>oKid.getTime()) {
            MM_raiseError('Kid'+iId,MM_getErrorMsg('sErrorKidsOlder17'),55,20+((iId-1)*23),150,30,4);
            //alert('Kinder müssen unter 18 Jahren alt sein');
            return false;
        }
        if (oRef2.getTime()<oKid.getTime()) {
           MM_raiseError('Kid'+iId,MM_getErrorMsg('sErrorKidsYounger2'),55,20+((iId-1)*23),150,30,4);
            //alert('Das Mindestalter beträgt 2 Jahre');
            return false;
        }
        //alert("OK");
        return true;
    }
} catch (e) { alert(e);  }

/**************************************************************
 * ...
 **************************************************************/

 function SEARCHM_showInfo(sText,iLeft,iTop,title) {
    var iHeight = 48;
    var iWidth  = 200;
    var sName = 'Test';
    var iTop2, iLeft2, sImg;

    iTop = iTop - 10 - iHeight;
    iTop2 = iTop+iHeight;
    iLeft2 = iLeft;
    sImg = 'mix_master_info_feld.gif';
    var sInner = '<div style="color:#000;font-weight:bold;margin:5px;margin-top:2px;">'+title+'</div><div style="color:#000;margin:5px;margin-top:2px;">'+sText+'</div>';
	if (MS==1) {
	    var oText = document.getElementById('mmSearchInfoRuleText');
	    oText.style.left 	= iLeft+'px';
	    oText.style.top 	= iTop+'px';
	    oText.style.width 	= iWidth+50+'px';
	    oText.style.height  = iHeight+20+'px';
	    oText.innerHTML 	= sInner;

//deaktiviert
//	    oText.style.display		= "block";
//	    oImg.style.display      = "block";
	} else {
	    var oText = getElem('name','mmSearchInfoRuleText',0);

	    setHTML('name','mmSearchInfoRuleText',0,sInner);

	    getElem('name','mmSearchInfoRuleText',0).style.left = 1+iLeft+'px';
	    getElem('name','mmSearchInfoRuleText',0).style.top = 1+iTop+'px';

//	    getElem('name','mmSearchInfoRuleText',0).style.display     = "block";
	}
}

 function SEARCHM_showInfoAction(oEvent) {
	if (!oEvent) {
		oEvent = window.event;
	}
    var aPos = getMousePositionMS(oEvent);

    var oSrc;
    if (MS == 1) oSrc = oEvent.srcElement;
	else oSrc = oEvent.target;
	var sId = getAttrObj(oSrc,'id');
	var sText = '';

	if (sId=='mmSearchGroupLink') {
	    var sText = 'Hier Gruppenanfrage stellen!';
	    sId = 'Mehr als 2 Zimmer:';
	}
	if (sId=='mmSearchDetail' || sId=='' || sId=='mmIconSearchDetail') {
	    var sText = 'Reisebausteine selbst kombinieren!';
	    sId = 'Flexibel suchen:';
	}
	if (sId=='mmSubmit') {
	    var sText = 'Die besten Kombinationsvorschläge!';
	    sId = 'Suchen lassen:';
	}

	try {
        if (aPos[0] < 275) aPos[0] = 275;
        SEARCHM_showInfo(sText,aPos[0]+2,((aPos[1]*1)-5),sId);
    } catch (e) {  }
}

function SEARCHM_hideInfoAction() {
	try {
    	getElem('name','mmSearchInfoRuleText',0).style.display   = 'none';
	} catch(e) {  }
}

function getMousePositionMS(oEvent) {
    try {
        if (!oEvent) {
            oEvent = window.event;
        }
        var sX = oEvent.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft);
        var sY = oEvent.clientY + (document.documentElement.scrollTop || document.body.scrollTop);

        //alert (sX+"+"+sY);
        var aPoints = new Array(sX,sY);
        return aPoints;
    } catch (e) {
        //alert(e);
    }
}

