var curNavigator;
var oneDay=86400000;
var oneHour=3600000;


//load()
//Gload()
//checkNavigator()
//clearElementNodes
//createHiddenElements()
//createDateElements(theDatum, idName, idDay, idMonth)
//onRoomTypeChange()
//onRoomCategoryChange()
//showErrorMessage(theMsg)
//clearErrorMessage()
//ValidateDate(DayStr, MonthStr)
//thisFormSubmitCheck()
//getCookieVar(VarName)
//appendPreBookLink()

function load()
{
 Gload();
 checkNavigator();
 createBookForm();
 var theDate= new Date();
 theDate.setTime(today * 1000 + parseInt(arrival)*oneDay + oneHour);
 createHiddenElements();
 createDateElements(theDate, "tdArrival", "mtdayvon", "mtmonthvon");
 theDate.setTime(today * 1000 + parseInt(departure)*oneDay + oneHour);
 createDateElements(theDate, "tdDeparture", "mtdaybis", "mtmonthbis");
 createRoomTypeElements();
 appendPreBookLink();
 return;
}

function Gload()
{
 if (GBrowserIsCompatible())
 {
  var theicon = new GIcon();
  theicon.iconSize = new GSize(20, 34);
  theicon.shadowSize = new GSize(30, 34);
  theicon.iconAnchor = new GPoint(10, 34);
  theicon.infoWindowAnchor = new GPoint(5, 1);
  var geoXml = new GGeoXml("http://mapgadgets.googlepages.com/cta.kml");
  var map = new GMap2(document.getElementById("map"));
  map.removeMapType(G_NORMAL_MAP);
  map.removeMapType(G_SATELLITE_MAP);
  map.setCenter(new GLatLng(lat, lng), 10);
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  var i_hotel = new GIcon(theicon, "http://www.rma-hotels.de/business-hotel/system/marker_hotel.png", null, "http://www.rma-hotels.de/business-hotel/system/marker_shadow.png");
  var p_hotel = new GLatLng(lat, lng);
  var m_hotel = new GMarker(p_hotel, i_hotel);
  map.addOverlay(m_hotel);
  map.addOverlay(geoXml);
 }
}

function checkNavigator(){ if(navigator.userAgent.toLowerCase().indexOf("opera")!=-1) curNavigator="opera";   if(navigator.userAgent.toLowerCase().indexOf("msie")!=-1)  {   agentNodes=navigator.userAgent.split("MSIE ");   navigatorVersion=agentNodes[agentNodes.length-1];   version=navigatorVersion.split(".");   if(version[0] < 9)   {    curNavigator="msie";   }  }if(navigator.userAgent.toLowerCase().indexOf("firefox")!=-1) curNavigator="firefox"; if(curNavigator=="firefox") { oldVersion=false; agentNodes=navigator.userAgent.split("/"); navigatorVersion=agentNodes[agentNodes.length-1]; version=navigatorVersion.split("."); if(version[0] < 3) { oldVersion=true; } } if(navigator.userAgent.toLowerCase().indexOf("safari")!=-1) curNavigator="safari"; if(navigator.userAgent.toLowerCase().indexOf("chrome")!=-1) curNavigator="chrome"; return;}

function clearElementNodes(curElement)
{
 while(curElement.childNodes.length > 0)
 {
  curNode=curElement.childNodes[0];
  if(curNode !== null)
  {
   curElement.removeChild(curNode);
  }
 }
 return;
}

function createHiddenElements()
{
 var curNumber=0;
 var elemForm=document.getElementById("frm");
 if(curNavigator=="msie") { elemInput=document.createElement("<input name=sprache>"); } else {  elemInput=document.createElement("input"); elemInput.name="sprache";}
 elemInput.type="hidden"; 
 elemInput.id="sprache"; 
 elemInput.value=sprache;
 elemForm.appendChild(elemInput);  
 if(curNavigator=="msie") { elemInput=document.createElement("<input name=lfdnr>"); } else {  elemInput=document.createElement("input"); elemInput.name="lfdnr";}
 elemInput.type="hidden"; 
 elemInput.id="lfdnr"; 
 elemInput.value=lfdnr;
 elemForm.appendChild(elemInput);  
 if(curNavigator=="msie") { elemInput=document.createElement("<input name=land>"); } else {  elemInput=document.createElement("input"); elemInput.name="land";}
 elemInput.type="hidden"; 
 elemInput.id="land"; 
 elemInput.value=land;
 elemForm.appendChild(elemInput);  
 if(curNavigator=="msie") { elemInput=document.createElement("<input name=rmahotelid>"); } else {  elemInput=document.createElement("input"); elemInput.name="rmahotelid";}
 elemInput.type="hidden"; 
 elemInput.id="rmahotelid"; 
 elemInput.value=rmahotelid;
 elemForm.appendChild(elemInput);
 if(arrCurrency.length > 1)
 {
  elemTd=document.getElementById("tdCurrency");
  elemSelect=document.createElement("select");
  elemSelect.id="currency"; 
  elemSelect.name="currency"; 
  for(i=0; i < arrCurrency.length; i++)
  {
   elemOption=document.createElement("option");
   elemOption.value=arrCurrency[i];
   elemNode=document.createTextNode(arrCurrency[i]);
   elemOption.appendChild(elemNode);
   elemSelect.appendChild(elemOption);
   if(arrCurrency[i]==currency) curNumber=i;
  }
  elemSelect.options[curNumber].selected=true;
  elemTd.appendChild(elemSelect);
 }
 else
 {
  if(curNavigator=="msie") { elemInput=document.createElement("<input name=currency>"); } else {  elemInput=document.createElement("input"); elemInput.name="currency";}
  elemInput.type="hidden"; 
  elemInput.id="currency"; 
  elemInput.value=arrCurrency[0];
  elemForm.appendChild(elemInput);
 }
 return(true);
}

function createDateElements(theDatum, idName, idDay, idMonth)
{
 theToday = new Date();
 theToday.setTime(today * 1000);
 var elemTd=document.getElementById(idName);
 elemSelect=document.createElement("select");
 elemSelect.id=idDay; 
 elemSelect.name=idDay; 
 for(i=0; i < 31; i++)
 {
  day=i+1;
  if(day < 10)  optionText="0" + day; else optionText=day;
  elemOption=document.createElement("option");
  elemOption.value=optionText;
  if(curNavigator=="opera")  optionText = optionText + ".   "; else optionText=optionText + ".";
  elemNode=document.createTextNode(optionText);
  elemOption.appendChild(elemNode);
  elemSelect.appendChild(elemOption);
 }
 elemSelect.options[theDatum.getDate()-1].selected=true;
 elemTd.appendChild(elemSelect); 
 elemSelect=document.createElement("select");
 elemSelect.id=idMonth; 
 elemSelect.name=idMonth;
 var curMonatnum = theDatum.getMonth();
 var curYear = theDatum.getFullYear();
 var curNumber = 0;
 for(i=0; i < 12; i++)
 {
  var Monatnum = (i + theToday.getMonth()) % 12; 
  var Year = theToday.getFullYear();
  if(i + theToday.getMonth() > 11) Year += 1;
  var optionText = Monat[Monatnum] + " " + Year;
  var optionValue = (Monatnum+1) + "-" + Year;
  elemOption=document.createElement("option");
  elemOption.value=optionValue;
  elemNode=document.createTextNode(optionText);
  elemOption.appendChild(elemNode);
  elemSelect.appendChild(elemOption);
  if(curYear == Year && Monatnum == curMonatnum) curNumber=i; 
 }
 elemSelect.options[curNumber].selected=true;
 elemTd.appendChild(elemSelect);
 return;
}

function createRoomTypeElements()
{
 elemTd=document.getElementById("tdRoomType");
 clearElementNodes(elemTd);
 elemSelect=document.createElement("select");
 elemSelect.id="zimmerkategorie"; 
 elemSelect.name="zimmerkategorie";
 elemSelect.onchange=onRoomTypeChange;
 for(i=0; i < arrRoomType.length; i++)
 {
  curType=arrRoomType[i];
  elemOption=document.createElement("option");
  elemOption.value=curType[0];
  elemNode=document.createTextNode(curType[1]);
  elemOption.appendChild(elemNode);
  elemSelect.appendChild(elemOption);
  if(zimmerkategorie==curType[0] || zimmerkategorie=="")
  {
   zimmerkategorie=curType[0];
   maxAnzahl=curType[2];
   arrRoomCategory=curType[3];
   elemSelect.options[i].selected=true;
  }
 }
 elemTd.appendChild(elemSelect);

 elemTd=document.getElementById("tdRoomCategory");
 clearElementNodes(elemTd);
 elemSelect=document.createElement("select");
 elemSelect.id="zimmertyp"; 
 elemSelect.name="zimmertyp"; 
 elemSelect.onchange=onRoomCategoryChange;
 try
 {
  for(i=0; i < arrRoomCategory.length; i++)
  {
   curCategory=arrRoomCategory[i];
   elemOption=document.createElement("option");
   elemOption.value=curCategory[0];
   elemNode=document.createTextNode(curCategory[1]);
   elemOption.appendChild(elemNode);
   elemSelect.appendChild(elemOption);
   if(zimmertyp==curCategory[0] || zimmertyp=="")
   {
    elemSelect.options[i].selected=true;
    elemDiv=document.getElementById("roomtypeinfo");
    elemDiv.innerHTML=curCategory[2];
   }
  }
 }
 catch(e)
 {
  elemOption=document.createElement("option");
  elemOption.value=" ";
  elemNode=document.createTextNode(" ");
  elemOption.appendChild(elemNode);
  elemSelect.appendChild(elemOption);
  maxAnzahl=1;
 }
 elemTd.appendChild(elemSelect);

 elemTd=document.getElementById("tdRoomCount");
 clearElementNodes(elemTd);
 elemSelect=document.createElement("select");
 elemSelect.id="anzahl"; 
 elemSelect.name="anzahl"; 
 for(i=1; i <= maxAnzahl; i++)
 {
  elemOption=document.createElement("option");
  elemOption.value=i;
  elemNode=document.createTextNode(i);
  elemOption.appendChild(elemNode);
  elemSelect.appendChild(elemOption);
 }
 elemSelect.options[anzahl-1].selected=true;
 elemTd.appendChild(elemSelect);
 return;
}

function onRoomTypeChange()
{
 elemSelect=document.getElementById("zimmerkategorie");
 zimmerkategorie=elemSelect.value;
 zimmertyp="";
 createRoomTypeElements();
 return;
}

function onRoomCategoryChange()
{
 elemSelect=document.getElementById("zimmertyp");
 zimmertyp=elemSelect.value;
 createRoomTypeElements();
 return;
}

function ValidateDate(DayStr, MonthStr)
{
 DatumArr=MonthStr.split('-');
 if(DatumArr.length != 2) return(false);
 MonatStr=DatumArr[0] - 1;
 JahrStr=DatumArr[1];
 Datum=new Date(JahrStr, MonatStr, DayStr);
 Tag=Datum.getDate();
 Monat=Datum.getMonth() + 1;
 Jahr=Datum.getFullYear();
 if(Number(Tag) != Number(DayStr)) return(false);
 if(Number(Monat) != Number(MonatStr) + 1) return(false);
 if(Number(Jahr) != Number(JahrStr)) return(false);
 return(Datum.getTime());
}

function clearErrorMessage()
{
 var  elemErr=document.getElementById("ErrorHolder");
 elemErr.className="";
 elemErr.innerHTML="";
 return;
}

function showErrorMessage(theMsg)
{
 var  elemErr=document.getElementById("ErrorHolder");
 elemErr.className="error";
 elemErr.innerHTML=theMsg;
 m=setTimeout('clearErrorMessage()',10000);
 return;
}

function thisFormSubmitCheck()
{
 elemForm=document.getElementById("frm");
 var dateStatus=false;
 var errMsg=errMsgNoDate;
// DEPARTURE
 var elemSelectDay=document.getElementById("mtdaybis");
 var elemSelectMonth=document.getElementById("mtmonthbis");
 var departureTime=ValidateDate(elemSelectDay.value, elemSelectMonth.value);
 if(!departureTime) dateStatus=true;
// ARRIVAL
 elemSelectDay=document.getElementById("mtdayvon");
 elemSelectMonth=document.getElementById("mtmonthvon");
 var arrivalTime=ValidateDate(elemSelectDay.value, elemSelectMonth.value);
 if(!arrivalTime) dateStatus=true;
// ARRIVAL + DEPARTURE
 if(today - arrivalTime > oneDay) dateStatus=true;
 if(today > departureTime) dateStatus=true;
 if(arrivalTime >= departureTime) dateStatus=true;
 if(departureTime - arrivalTime > oneDay * 30)
 {
  errMsg=errMsgLong;
  dateStatus=true;
 }
 if(dateStatus)
 {
  showErrorMessage(errMsg);
  return;
 }
// SUBMIT
 runWait();
 elemForm.action="http://www.rma-hotels.de/hotels/booking/calculate.php";
 elemForm.submit();
}

function runWait(){ var x=document.body.childNodes; for (i=0;i<x.length;i++){ if(x.item(i).nodeType==1) {   x.item(i).style.visibility="hidden";   x.item(i).style.display="none";  } } var waitImg=document.createElement("img"); waitImg.src=imgWait; waitImg.border="0px"; waitImg.style.width="280px"; var waitHeader=document.createElement("h3"); waitHeader.style.backgroundColor="#FFFFFF"; waitHeader.style.fontFamily="arial,sans-serif"; waitHeader.style.fontSize="12pt"; waitHeader.innerHTML=msgWait; var waitBox=document.createElement("div"); waitBox.style.margin="50px 50px 50px 50px"; waitBox.style.padding="50px 50px 50px 50px"; waitBox.style.textAlign="center"; waitBox.style.backgroundColor="#FFFFFF"; waitBox.appendChild(waitImg); waitBox.appendChild(waitHeader); var waitDiv=document.createElement("div"); waitDiv.style.zIndex=1000; waitDiv.style.position="absolute"; waitDiv.style.top="0px"; waitDiv.style.left="0px"; waitDiv.style.height="100%"; waitDiv.style.width="100%"; waitDiv.style.backgroundColor="#FFFFFF"; waitDiv.style.textAlign="center"; waitDiv.appendChild(waitBox); document.body.appendChild(waitDiv); }

