/*
Originale Sourcen von Traveltainment
<script src="http://www.vidado.com/booking/js/kalender_04_10_20.js" type="text/javascript"></script>
<script src="http://www.vidado.com/booking/js/all_05_01_11.js" type="text/javascript"></script>
<script src="http://www.vidado.com/booking/js/for_set.js" type="text/javascript"></script>
*/


Date.prototype.addMonth=function(month){
  if(typeof(month)=='undefined') month=1;
  month = parseInt(month);
  var years=Math.floor(month/12);
  this.addYear(years);
  month = month%12;
  if((this.getMonth()+month)>11){
    this.addYear();
    this.setMonth((this.getMonth()+month)%12);
  }else{
    this.setMonth(this.getMonth()+month);
  }
}

Date.prototype.addYear=function(years){
  if(typeof(years)=='undefined') years=1;
  years = parseInt(years);
  var aktYear = this.getFullYear();
  this.setYear(aktYear+years);
}

function twoDigit(val){
  val = parseInt(val,10);
  return val<10?"0"+val:val;
}

function GetTage(strDate,hin)
{
  //funktion zum ermitteln, wieviele Tage hat der Monat
  var myDate = new Date(strDate.split(".")[2],parseInt(strDate.split(".")[1],10),1);
  myDate.setDate(0);
  //alert(hin+" - "+myDate);
  var nTage = myDate.getDate();
  //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(twoDigit(lts[1])==twoDigit(myDate.getMonth()+1) && lts[2]==myDate.getFullYear()){
    nTage=parseInt(lts[0],10);
  }
  return nTage;
}

function ChangeRueck()
{
  var lts=letzter_termin_rueck.split(".");
  var lDate = new Date(lts[2],parseInt(lts[1]-1,10),parseInt(lts[0]),10);
  var d=getValue('ktag');
  var lMon=getValue('kmonat').split(".");
  d = new Date(lMon[1],lMon[0]-1,d);
  var nTime = d.getTime()+(22*86400000);
  if(nTime>lDate.getTime())
    d.setTime(lDate.getTime());
  else
    d.setTime(nTime);
  nMon=twoDigit(parseInt(d.getMonth(),10)+1);
  nDay=twoDigit(parseInt(d.getDate(),10));
  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;

  if(kenner=="k"){
    ts_termin=dn;
    document.bengine.termin.value=dn;
  }else{
    ts_ruecktermin=dn;
  }
}

function SetDatum(strDate, strRKenner, noMon, form)
{
  var myDate = new Date(strDate.split(".")[2],parseInt(strDate.split(".")[1],10)-1,parseInt(strDate.split(".")[0],10));
  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=myDate.getDate();
  if(nSel>nTage)
    nSel = nTage;

  com.value = nSel;
  UpdateTermine(((strRKenner!="")?"k":""),strDate.split(".")[2],strDate.split(".")[1],nSel);

  if(noMon!=1){
    comMon.value = twoDigit(myDate.getMonth()+1)+"."+myDate.getFullYear();
  }
  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.","März","April","Mai","Juni","Juli","Aug.","Sep.","Okt.","Nov.","Dez.");
  var ets  = erster_termin.split(".");
  var lts  = (hin)?(letzter_termin_hin.split(".")):(letzter_termin_rueck.split("."));
  var sels = (hin)?(termin_hin.split(".")):(termin_rueck.split("."));
  var strRes  = "";
  var aktDate = new Date(ets[2],parseInt(ets[1],10)-1,1);
  var selDate = new Date(sels[2],parseInt(sels[1],10)-1,1);
  var maxDate = new Date(lts[2],parseInt(lts[1],10)-1,1);
  var selSet  = false;
  while(aktDate.getTime()<=maxDate.getTime()){
    sel = aktDate.getTime()==selDate.getTime()?" selected":"";
    if(!selSet && sel!="") selSet = true;
    if(!selSet && !hin && aktDate.getTime()>=maxDate.getTime()){
      sel = "selected";selSet = true;
    }
    var val = (aktDate.getMonth()+1)<10?"0"+(aktDate.getMonth()+1):(aktDate.getMonth()+1);
    strRes += '<option value="'+val+'.'+aktDate.getFullYear()+'"'+sel+'>'+m[aktDate.getMonth()]+' '+String(aktDate.getFullYear()).substr(2,2)+'</option>';
    aktDate.addMonth();
  }
  document.write(strRes);
}

function openhbox(IFF,fenstername,Laender_Ref_ID,start,veranstalter,Kenner_Nav,sterne,season,startva)
{
    if(sterne==0) sterne="";
    if(sterne==0) sterne="";
    var s=String(sterne);
    s=s.replace(/\./,",");
    if(typeof(season)!='undefined'){
        var d=new Date();
        d.setTime(season*1000);
        mon = d.getMonth()+1;
        if(mon > 4 && mon < 11)sson="s";
        else sson="w";
    }
    else{
        sson="";
    }
    if(typeof(startva)=='undefined')startva="";
    if(typeof(country_kenner)=='undefined')lang="";
    else lang=country_kenner;
    var infowin = window.open(url+"content_page/index.php3?KID="+HID+"&IFF="+IFF+"&Laender_Ref_ID="+Laender_Ref_ID+"&START="+start+"&VA="+veranstalter+"&Kenner_Nav="+Kenner_Nav+"&KAT="+s+"&season="+sson+"&startva="+startva+"&lang="+lang,fenstername,"width=610,height=465,scrollbars=yes");
    infowin.focus();
}

function seiten_replace(repl_vars)
{
  location.replace('index.php?'+repl_vars);
}

function openwin(w_info,fenstername)
{
    var top=screen.height;
    var left=screen.width;
    posx=((left/2)-100);
    posy=((top/2)-180);
    var infowin = window.open(w_info,fenstername,'width=200,height=230,scrollbars=no,screenX='+posx+',screenY='+posy+',left='+posx+',top='+posy+'');
    infowin.focus();
}
var u,t,v,s,w,r;
function chkFormular()
{
    var bform=document.bengine;
    if(ts_termin>ts_ruecktermin)
    {
        alert("Ihr R�ckreisedatum liegt vor dem Hinreisedatum");
        return false;
    }
    var tmpy=bform.zimmer2;
    if(typeof(tmpy)!='undefined')
    {
        if(bform.zimmer[6].checked==true && bform.zimmer2.selectedIndex==0){
            alert("Bitte w�hlen Sie ein Zimmertypen aus.");
            bform.zimmer2.focus()
            return false;
        }
    }
    bform.submit();
    return false;
}

var secalter,secdauer,secTxt;
function alterkind(secalter,secTxt)
{
    if(secTxt)
        strJahr=secTxt;
    else
        strJahr="Jahre";
    for(i=2;i<=16;i++){
        if(i==secalter){
            document.write('<option value="'+i+'" selected>'+i+' '+strJahr+'</option>');
        }
        else{
            document.write('<option value="'+i+'">'+i+'  '+strJahr+'</option>');
        }
    }
}
function dauert(secdauer)
{
    for(i=2;i<=21;i++){
        if(i==secdauer){
            document.write('<option value="6_'+i+'" selected>'+i+' Tage</option>');
        }
        else{
            document.write('<option value="6_'+i+'">'+i+' Tage</option>');
        }
    }
}
function CRad(val){
    if(val==1){
        document.bengine.zimmer[6].checked=true;
    }
    else
        document.bengine.zimmer2.selectedIndex=0;
}

function BookingAction(detail)
{
    var bform=document.bengine;
    bform.showresult.value='1';
    if(detail)
        bform.detail.value=detail;
    bform.termin.value=ts_termin;
    bform.ruecktermin.value=ts_ruecktermin;
    return chkFormular();
}