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)?(letzter_termin_hin.split(".")):(letzter_termin_rueck.split("."));
    if(lts[1]==parts[1] && lts[2]==parts[2]){
            nTage=parseInt(lts[0],10);
    }
    return nTage;
}

function ChangeRueck()
{
    d=getValue('ktag');
    lMon=getValue('kmonat').split(".");
    var d = new Date(lMon[1],lMon[0]-1,d);
    nTime=d.getTime()+(22*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);
}

function getValue(name)
{
    com=eval("document.bengine."+name);
    return com.options[com.selectedIndex].value;
}

function UpdateTermine(kenner,y,m,d)
{
    var date=new Date(y,m-1,d);
    dn=date.getTime()/1000;
    //d=Date.UTC(y,m-1,d)/1000;
    if(kenner=="k"){
        ts_termin=dn;
        document.bengine.termin.value=dn;
    }
    else
    {
        ts_ruecktermin=dn;
    }
}

function SetDatum(strDate, strRKenner, noMon, form)
{
    nTage=GetTage(strDate,strRKenner!="");

    //funktion setzt aktuelles Datum + 3 Tage und füllt die select-Box für die Tage
    var com=(strRKenner)?document.bengine.ktag:document.bengine.rueckktag;
    var comMon=(strRKenner)?document.bengine.kmonat:document.bengine.rueckkmonat;

    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();
                    }
                    com.options[i].text=i+1;
                    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();

}

function UpdateDate(strKenner)
{
    nTag=getValue(strKenner+"tag");
    strMon=getValue(strKenner+"monat");
    SetDatum(nTag+"."+strMon,(strKenner=="rueckk")?"":"dummy",2);
}

function SetDay(strKenner)
{
    nTag=getValue(strKenner+"tag");
    cMon=eval("document.bengine."+strKenner+"monat");
    strMon=getValue(strKenner+"monat");
    ets=erster_termin.split(".");

    if(ets[1]+"."+ets[2]==strMon && nTag < parseInt(ets[0],10)){
            cMon.selectedIndex=1;
            strMon=getValue(strKenner+"monat");
            SetDatum(nTag+"."+strMon,(strKenner=="rueckk")?"":"dummy",1);
            nTag=getValue(strKenner+"tag"); ;
    }
    if(strKenner=="k"){
            ChangeRueck();
    }
    UpdateTermine(strKenner,strMon.split(".")[1],strMon.split(".")[0],nTag);
}

function SetMonth(strKenner)
{
    //funktion setzt Tag und Monat, wenn man in der select-Box auswählt
    nTag=getValue(strKenner+"tag");
    strMonat=getValue(strKenner+"monat");
    ets=erster_termin.split(".");
    if(ets[1]+"."+ets[2]==strMonat && nTag<parseInt(ets[0],10)){
            nTag=ets[0];
    }
    strDate=nTag+"."+strMonat;
    SetDatum(strDate,(strKenner=="rueckk")?"":"dummy",1);
}

function InitDays(hin)
{
    nTage=GetTage((hin)?termin_hin:termin_rueck,hin);
    SelTag=(hin)?termin_hin.split(".")[0]:termin_rueck.split(".")[0];

    for(i=1;i<=nTage;i++){
            sel=(i==SelTag)?" Selected":"";
            document.write("<option value="+i+sel+">"+i+"</option>\n");
    }
}

function InitMonth(hin)
{
    var m=new Array("Jan.","Feb.","Mar.","Apr.","Maj","Jun.","Jul.","Avg.","Sep.","Okt.","Nov.","Dec.");
    var com=document.bengine.kmonat;
    ets=erster_termin.split(".");
    lts=(hin)?(letzter_termin_hin.split(".")):(letzter_termin_rueck.split("."));
    sels=(hin)?(termin_hin.split(".")):(termin_rueck.split("."));

    SelMonat=parseInt(sels[1],10);
    
    MinMonat=parseInt(ets[1],10);
    MaxMonat=parseInt(lts[1],10);
    MinJahr=ets[2];
    MaxJahr=lts[2];

    SelJahr=sels[2];
    diff = parseInt(SelJahr)-parseInt(MinJahr);
    SelMonat += (12*diff);
    
    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");
            }
    }
}

