
// wird verwendet von setdatum und initdate
function GetTage(strDate,hin)
{
        //funktion zum ermitteln, wieviele Tage hat der Monat
        var parts=strDate.split(".");
        if(parts[1]==2){
                nTage=(parts[2] & 4)?29:28;
        } else {
                nTage=((parts[1]<=7) ^ ((parts[1] & 1)!=0))?30:31;
        }
        //bei rückreise,endet z.B. mit 5, wenn die Angebote bis 05. gehen
        lts=(hin)?(max_sdate.split(".")):(max_edate.split("."));
        if(lts[1]==parts[1] && lts[2]==parts[2]){
                nTage=parseInt(lts[0],10);
        }
        return nTage;
}

// wird verwendet von setdatum und setday
function ChangeRueck()
{
        d=getValue('FromDay');
        lMon=getValue('FromMon').split(".");
        var d = new Date(lMon[1],lMon[0]-1,d);
        nTime=d.getTime()+(7*86400000);
        d.setTime(nTime);
        nMon=parseInt(d.getMonth(),10)+1;
        if(nMon<10)nMon="0"+nMon;
        nDay=parseInt(d.getDate(),10);
        if(nDay<10)nDay="0"+nDay;
        SetDatum(nDay+"."+nMon+"."+d.getFullYear(),"",2);
}

// setzt dauer der reise zur anzeige
function UpdateDuration()
{
        d=getValue('FromDay');
        lMon=getValue('FromMon').split(".");
        var d = new Date(lMon[1],lMon[0]-1,d);
        td=getValue('TillDay');
        lMon=getValue('TillMon').split(".");
        var td = new Date(lMon[1],lMon[0]-1,td);
		var dif_date = td - d;                                   
		document.frm_filter.duration.value = Math.round(dif_date/86400000,0);
}

// wird verwendet von UpdateDate, setday, setmonth
function getValue(name)
{
  com=eval("document.frm_filter."+name);
  return com.options[com.selectedIndex].value;
}

// wird verwendet von UpdateDate, setday und setmonth
function SetDatum(strDate, strRKenner, noMon)
{
        nTage=GetTage(strDate,strRKenner!="");

        //funktion setzt aktuelles Datum + 3 Tage und füllt die select-Box für die Tage
        var com=(strRKenner)?document.frm_filter.FromDay:document.frm_filter.TillDay;
        var comMon=(strRKenner)?document.frm_filter.FromMon:document.frm_filter.TillMon;

        len=com.length;
        nMax=(len>nTage)?len:nTage;

        for(i=0;i<nMax;i++){
                if(i<nTage){
                        if(i>=len){
                                com.options[i]=new Option();
                        }
						lowerten = (i<9) ? "0" : "";
						wert = i+1;
                        com.options[i].text=lowerten.concat(wert);
                        com.options[i].value=i+1;
                } else {
                        com[nTage] = null;
                }
        }
        nSel=parseInt(strDate.split(".")[0],10);
        if(nSel>nTage)nSel = nTage;
        com.options.selectedIndex=nSel-1;

//        UpdateTermine(((strRKenner!="")?"k":""),strDate.split(".")[2],strDate.split(".")[1],nSel);

        if(noMon != 1){
                firstMon=parseInt(comMon.options[0].value.split(".")[0],10);
                nSel=strDate.split(".")[1]-firstMon;
                if(nSel<0 || comMon.options[0].value.split(".")[1]<strDate.split(".")[2])
                  nSel+=12;
                comMon.options.selectedIndex=nSel;
        }
        if(noMon!=2 && strRKenner!="") ChangeRueck();

		UpdateDuration();
}

// root function
function UpdateDate(strKenner)
{
        nTag=getValue(strKenner+"Day");
        strMon=getValue(strKenner+"Mon");
        SetDatum(nTag+"."+strMon,(strKenner=="Till")?"":"dummy",2);
}

// root function
function SetDay(strKenner)
{
        nTag=getValue(strKenner+"Day");
        cMon=eval("document.frm_filter."+strKenner+"Mon");
        strMon=getValue(strKenner+"Mon");
        ets=min_sdate.split(".");

        if(ets[1]+"."+ets[2]==strMon && nTag < parseInt(ets[0],10)){
                cMon.selectedIndex=1;
                strMon=getValue(strKenner+"Mon");
                SetDatum(nTag+"."+strMon,(strKenner=="Till")?"":"dummy",1);
                nTag=getValue(strKenner+"Day"); ;
        }
        if(strKenner=="From"){
                ChangeRueck();
        }

		UpdateDuration();
}

// root function
function SetMonth(strKenner)
{
        //funktion setzt Tag und Monat, wenn man in der select-Box auswählt
        nTag=getValue(strKenner+"Day");
        strMonat=getValue(strKenner+"Mon");
        ets=min_sdate.split(".");
        if(ets[1]+"."+ets[2]==strMonat && nTag<parseInt(ets[0],10)){
                nTag=ets[0];
        }
        strDate=nTag+"."+strMonat;
        SetDatum(strDate,(strKenner=="Till")?"":"dummy",1);

		UpdateDuration();
}

// root function
function InitDays(hin)
{
        nTage=GetTage((hin)?cur_sdate:cur_edate,hin);
        SelTag=(hin)?cur_sdate.split(".")[0]:cur_edate.split(".")[0];

        for(i=1;i<=nTage;i++){
                sel=(i==SelTag)?" Selected":"";
				lowerten = (i<10) ? "0" : "";
                document.write("<option value="+i+sel+">"+lowerten+i+"</option>\n");
        }
}

// root function
function InitMonth(hin,LST)
{
	if (LST=="Eng")
        var m=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
	else if (LST=="Ita")
        var m=new Array("Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic");
	else if (LST=="Fra")
        var m=new Array("Jan","Fev","Mar","Avr","Mai","Juin","Juil","Aou","Sep","Oct","Nov","Dec");
	else
		var m=new Array("Jan","Feb","Mrz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez");

        var com=document.frm_filter.FromMon;
        ets=min_sdate.split(".");
        lts=(hin)?(max_sdate.split(".")):(max_edate.split("."));
        sels=(hin)?(cur_sdate.split(".")):(cur_edate.split("."));

        SelMonat=sels[1];

        MinMonat=parseInt(ets[1],10);
        MaxMonat=parseInt(lts[1],10);
        MinJahr=ets[2];
        MaxJahr=lts[2];

        if((MaxMonat<MinMonat) || (MinJahr!=MaxJahr)) MaxMonat-=(-12);
        if(SelMonat<MinMonat)SelMonat-=(-12);

        for(i=MinMonat;i<=MaxMonat;i++){
                sel=(i==SelMonat)?" Selected":"";
                if(i>12){
                        nMon=i-12;if(nMon<10)nMon="0"+nMon;
                        document.write("<option value='"+nMon+"."+MaxJahr+"'"+sel+">"+m[i-13]+" "+MaxJahr.substr(2)+"\n");
                } else {
                        nMon=i;if(nMon<10)nMon="0"+nMon;
                        document.write("<option value='"+nMon+"."+MinJahr+"'"+sel+">"+m[i-1]+" "+MinJahr.substr(2)+"\n");
                }
        }
}
