/**************************************************************
 * Allgemeines
 **************************************************************/
    var oLocomatForm   = null;
    var firstDayBoxRun = 0;
    var LOCOMAT_CHANGE = '';
    var aTabs          = new Array();
    var ritOnly        = false;
    var iTab           = 0;
    var bKid           = false;
    var bExpert        = 0;
    var sPrefix        = '';
    var bExtern        = 0;
    var sMdt           = 'DE_loco';
    var bShowExpert    = 1;
    var sTabDesign     = 'MixMaster';
    var bMMRit         = 0;
    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");

/**************************************************************
 * Laden der allgemeinen Bibliothek
 **************************************************************/
    document.write('<script src="../loco/css/locomat_addon.functions.js"></script>');
    document.write('<script src="../loco/css/ajax.functions.js"></script>');

/**************************************************************
 * Initialisiert die Tabs
 **************************************************************/
    function MM_init() {
    	document.write('<script src="../START2/css/calender.functions.js"></script>');
        if (bExpert==0) {
            aTabs.push('Flug & Hotel');
            aTabs.push('Flug & Mietwagen');
            aTabs.push('Bahn & Hotel');
        }
        var iId = 0;
        var sSa = getElem('name',sPrefix+'sa',0).value;
        if (sSa=='HTR') {
        	iId = 2;
        }
        if (sSa=='FLR') {
        	iId = 1;
        }
        MM_initBody();
        MM_openTab(iId);
            if (window.Event) {
               document.captureEvents(Event.MOUSEUP);
               document.captureEvents(Event.UNLOAD);
            }
            document.onclick = MM_clearErrorBeta;
           // document.onunload = MM_destructor;
        if (iMMErrorNr!='') {
            MM_raiseError('error_search',iMMErrorMsg,180,80,220,60,4);
        }
        MM_setKidsBirthFromRequest();
        MM_initSelect();
    }

/**************************************************************
 * ?ffnet ein bestimmtes Tab
 * iId = nr des Tabs
 **************************************************************/
    function MM_openTab(iId) {
    	if (iId==0) {
            getElem('id','mmTabFlugImg',0).src = '/images/START2/relaunch/reiter_flughotel_aktiv.gif';
            getElem('id','mmTabBahnImg',0).src = '/images/START2/relaunch/reiter_bahnhotel_inaktiv.gif';
    	} else {
            getElem('id','mmTabFlugImg',0).src = '/images/START2/relaunch/reiter_flughotel_inaktiv.gif';
            getElem('id','mmTabBahnImg',0).src = '/images/START2/relaunch/reiter_bahnhotel_aktiv.gif';
    	}
        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){}
            try{ getElem('id','mmSearchDetailNone',0).style.display = "none";}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+'sa',0).value       = "PAR"; } 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','mmIconCar',0).style.visibility   = "visible"; } catch (e) {}
            try{ getElem('name',sPrefix+'carNone',0).style.display = 'none'; } catch (e) {}
            getElem('name','view',0).value = '410_0_0_0_0_0_0_0';
            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) {}
            try{setHTML('id','mmTitleTo',0,'Nach');} catch (e) {}
            MM_changeOrigin();
        }
        if (iId == 2) {
            bExpert = 0;
            bMMRit  = 1;
            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               = "372px";} catch (e) {}
            getElem('name','view',0).value = '420_0_0_0_0_0_0_0';
            try{ getElem('name',sPrefix+'sa',0).value       	= "HTR"; } catch (e) {}
            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','mmCarTitle',0).style.display          = "none";} catch (e) {}
            try{getElem('name',sPrefix+'carNone',0).style.display   = 'none';} 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','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{setHTML('id','mmTitleTo',0,'Reiseziel');} catch (e) {}
            try{getElem('name','car',0).checked = false;} catch (e) {}
            MM_changeOrigin();
            bBlockSearch = 0;
        }
    }

/**************************************************************
 * Design fuer Tabs
 * iId = nr des Tabs
 **************************************************************/
    function MM_tabDesignExtern(iId) {
        // not needed
    }

/**************************************************************
 * Design fuer Tabs
 * iId = nr des Tabs
 **************************************************************/
    function MM_tabDesignMixMaster(iId) {
         // Not needed
    }

/**************************************************************
 * Blendet die Wartenavigation ein
 **************************************************************/
    function MM_hideNav() {
        // Not needed
    }

/**************************************************************
 * Zeigt den Body f�r einen bestimmten Tab an
 * iId = nr des Tabs
 **************************************************************/
    function MM_showBody(iId) {
    	//changeDestination(getElem('name','mmForm',0),false,false,'DE', false);
    }

/**************************************************************
 * 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 {
			addHTML('id','mmErrorMsgField',0,'<div style="margin:5px;color:#FFF;">'+sText+'</div>');
			getElem('id','mmErrorMsgField',0).style.display = 'block';
		} catch (e) {

		}
    }

/**************************************************************
 * Leert die Fehlermeldungen
 **************************************************************/

    function MM_clearErrorBeta(oEvent) {
    	setHTML('id','mmErrorMsgField',0,'');
        getElem('id','mmErrorMsgField',0).style.display = 'none';
		MM_clearError(oEvent);
    }

/**************************************************************
 * Initialisiert den Body f�r einen bestimmten Tab an
 * iId = nr des Tabs
 **************************************************************/
    function MM_openExpert(iId) {
        // not needed
    }

    function MM_hideExpert(iId) {
        // not needed
    }

    function MM_hideExpertNone(iId) {
        // not needed
    }

/**************************************************************
 * Initialisiert den Body f�r einen bestimmten Tab an
 * iId = nr des Tabs
 **************************************************************/
    function MM_initBody() {
        MM_initVars();
    }

/**************************************************************
 * Initialisiert die Variablen
 **************************************************************/
    function MM_initVars() {

    }

    function MM_prepareSearch() {
        var sError = '';
        try {
        	var sZo = getElem('name',sPrefix+'zo',0).value;
        } catch (e) {
        	var sZo = document.getElementById('zo').value;
        }
        try {
        	var sFoah = getElem('name',sPrefix+'foah',0).value;
        } catch (e) {
        	var sFoah = document.getElementById('foah').value;
        }
        if (sZo =='') {
            MM_raiseError('zo','Bitte Reiseziel ausw&auml;hlen!',215,200,150,30,1);
            sError = "1";
        }
        if (sFoah=='' && getElem('name',sPrefix+'sa',0).value!='HTR') {
            MM_raiseError('foah','Bitte Abflughafen ausw&auml;hlen!',215,100,150,30,4);
            sError = "1";
        }
        if (sError!='') {
            return false;
        }
        if (getElem('name',sPrefix+'sa',0).value=='HTR') {
        	getElem('name',sPrefix+'foah',0).value = '';
         }
        var aValue = getElem('name',sPrefix+'start_datum',0).value.split('.');
        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',sPrefix+'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',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( 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);
        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;
        }
        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;
            var bExp = bExpert;
            MM_showKid(iKids);
            bExpert = bExp;
            return false;
        } else {
            if (iKids>0) {
                if (!MM_prepareKids(iKids)) {
                    return false;
                }
                bExpert = 0;
            }
            MM_showWaiting(bExpert);
            getElem('id','mmContent',0).style.display = 'none';
            getElem('id','mmKids',0).style.display    = 'none';
            try { getElem('id','mmExt',0).style.display     = 'none'; } catch (e) {}
            //getElem('name','view',0).value = '410_0_0_0_0_0_0_0';
            getElem('name','mmForm',0).submit();
            return true;
        }
    }

    function MM_showWaiting(bExp) {
        if (bExp==1) {
            setHTML('id','mmWaitingInner',0,getFlash('mmWaitingAnimation', '/images/'+sMdt+'/', 'wartelayer.swf', 'expert_waiting.gif', '', '455', '70'));
        } else {
            setHTML('id','mmWaitingInner',0,getFlash('mmWaitingAnimation', '/images/'+sMdt+'/', 'wartelayer.swf', 'waiting.gif', '', '455', '70'));
        }
        MM_hideNav();
        getElem('id','mmWaiting',0).style.display = "block";
    }

    function MM_generateExpertLink(iId) {
        // not needed
    }

    function MM_checkKidBirth(iId) {
        var iDay   = Number(getElem('name','mmKid'+iId+'Day',0).value);
        var iMonth = Number(getElem('name','mmKid'+iId+'Month',0).value)-1;
        var iYear  = Number(getElem('name','mmKid'+iId+'Year',0).value);
        var oKid   = new Date(iYear, iMonth, iDay, 0, 0, 0);
        // Alter bei Reisebeginn pruefen
        var iNowDay = Number(getElem('name','start_datum_day',0).value);
        var iNowMonth = Number(getElem('name','start_datum_month',0).value)-1;
        var iNowYear = Number(getElem('name','start_datum_year',0).value);
        var oNow = new Date(iNowYear, iNowMonth, iNowDay, 0, 0, 0);

        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()), parseInt(oNow.getDate()), 0, 0, 0);
        var oRef2   = new Date(parseInt(iYearRef2), parseInt(oNow.getMonth()), parseInt(oNow.getDate()), 0, 0, 0);
        if (oRef.getTime()>=oKid.getTime()) {
            //MM_raiseError('Kid'+iId,MM_getErrorMsg('sErrorKidsOlder17'),290,140+((iId-1)*22),150,30,4);
            alert(MM_getErrorMsg('sErrorKidsOlder17'));
            return false;
        }
        if (oRef2.getTime()<oKid.getTime()) {
            //MM_raiseError('Kid'+iId,MM_getErrorMsg('sErrorKidsYounger2'),290,140+((iId-1)*22),150,30,4);
            alert(MM_getErrorMsg('sErrorKidsYounger2'));
            return false;
        }
        return true;
    }

        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();

		var Geburtsdatum_Tag   = sDay*1;
		var Geburtsdatum_Monat = sMonth*1;
		var Geburtsdatum_Jahr  = sYear*1;
		if(MS==0) {
			Geburtsdatum_Jahr = Geburtsdatum_Jahr - 1900;
		}

		var Alter_Jahre  = 0;

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