/**************************************************************
 * 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 bNowWaiting	   = 0;
    var bAlertError	   = 0;
    var KidAlertError  = 0;
    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() {
    	if (sMdt=='DE_loco') {
    		sMdt='loco';
    	}
    	document.write('<script src="../'+sMdt+'/css/calender.functions.js"></script>');
        try { var sSa = getElem('name',sPrefix+'sa',0).value; } catch(e) {
        	var sSa = 'PAR';
        }
        MM_initBody();
        document.onclick = MM_clearErrorBeta;
            //document.onunload = MM_destructor;
        if (iMMErrorNr!='') {
            MM_raiseError(iMMErrorMsg);
        }
        MM_setKidsBirthFromRequest();
        MM_initSelect();
    }

/**************************************************************
 * 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(sText) {
        try {
                setHTML('id','mmErrorMsgField',0,'');
                getElem('id','mmErrorMsgField',0).style.display = 'none';
                getElem('id','mmNoErrorImg',0).style.display    = 'block';
        } catch (e) {}

		try {
			addHTML('id','mmErrorMsgField',0,'<div style="margin:5px;color:#FFF;">'+sText+'</div>');
			getElem('id','mmErrorMsgField',0).style.display = 'block';
			getElem('id','mmNoErrorImg',0).style.display 	= 'none';
		} catch (e) {

		}
    }

/**************************************************************
 * Leert die Fehlermeldungen
 **************************************************************/

    function MM_clearErrorBeta(oEvent) {
    	try {
	    	setHTML('id','mmErrorMsgField',0,'');
	        getElem('id','mmErrorMsgField',0).style.display = 'none';
			getElem('id','mmNoErrorImg',0).style.display 	= 'block';
    	} catch (e) {}
		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;
        }
        var sErrorTxt = '';
        if (sZo == '') {
            if (bAlertError!=1) MM_raiseError('Bitte Reiseziel auswählen!');
            else sErrorTxt += 'Bitte Reiseziel auswählen!'+"\n";
            sError = "1";
        }
        if (sFoah=='' && getElem('name',sPrefix+'sa',0).value!='HTR') {
            if (bAlertError!=1) MM_raiseError('Bitte Abflughafen auswählen!');
            else sErrorTxt += 'Bitte Abflughafen auswählen!'+"\n";
            sError = "1";
        }
        if (sError!='') {
        	if (bAlertError==1) alert(sErrorTxt);
            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));
            if (bAlertError!=1) MM_raiseError('Bitte g&uuml;ltiges Datum w&auml;hlen!');
            else alert('Bitte g&uuml;ltiges Datum wählen!');
            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;
            }
            if (bNowWaiting==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) {}
            } else {
            	getElem('id','mmContent',0).style.display = 'block';
	            getElem('id','mmKids',0).style.display    = 'none';
	            try { getElem('id','mmExt',0).style.display     = 'none'; } catch (e) {}
            }
            getElem('name',sPrefix+'view',0).value = '410_0_0_0_0_0_0_0';
            
            try { getElem('name','mmForm',0).submit(); } catch(e) { }
            return true;
        }
    }

    function MM_showWaiting(bExp) {
    	try {
	        if (bExp==1) {
	            setHTML('id','mmWaitingInner',0,getFlash('mmWaitingAnimation', '/images/'+sMdt+'/', 'wartelayer.swf', 'expert_waiting.gif', '', '455', '70'));
	        } else {
	        	if (sMdt=='GEW') {
	        		var sSwf = 'waiting.swf';
	        		var iWidth = 590;
	        		sMdtTmp = 'GEW';
	        		var iHeight = 172;
	        	} else {
	        		sMdtTmp = sMdt;
	        		if (sMdt=='DE' || sMdt=='CCF' || sMdt=='DE_loco') {
	        			var sSwf = 'wartelayer.swf';
	        		var iWidth = 455;
	        		var iHeight = 190;
	        		} else {
                        if (sMdt=='TUIFLY') {
	        			   sMdtTmp = 'TUIFLY';
	        			   var sSwf = 'waiting.swf';
	        		var iWidth = 275;
              var iHeight = 190;
                        } else {
	        			   sMdtTmp = 'DE_loco';
	        			   var sSwf = 'waiting_mandanten.swf';
	        		var iWidth = 455;
	        		var iHeight = 190;
                        }
	        		}
	        	}
	            setHTML('id','mmWaitingInner',0,getFlash('mmWaitingAnimation', '/images/'+sMdtTmp+'/', sSwf, 'waiting.gif', '', iWidth, iHeight));
	        }
	        MM_hideNav();
	        getElem('id','mmWaiting',0).style.display = "block";
    	} catch (e) {}
    }

    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()) {
            //if (bAlertError!=1) 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()) {
            //if (bAlertError!=1) MM_raiseError('Kid'+iId,MM_getErrorMsg('sErrorKidsYounger2'),290,140+((iId-1)*22),150,30,4);
            KidAlertError	 = KidAlertError + 1;
            // nicht gleich beim ersten Aufruf, wenn noch gar nichts ausgefuellt wurde
            if ((KidAlertError > 1)) {
                alert(MM_getErrorMsg('sErrorKidsYounger2'));
            }
            return false;
        }
        return true;
    }
