function showPopUp(page, w, h)
{
 var str;
 str = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes";
 str = str + ",width=" + w;
 str = str + ",height=" + h;
 window.open(page,'nwnd',str);
}

function hiddeElementsForm()
{
 elemSelect=document.getElementById("mtdayvon");
 if(elemSelect) elemSelect.style.visibility="hidden";
 elemSelect=document.getElementById("mtmonthvon");
 if(elemSelect) elemSelect.style.visibility="hidden";
 elemSelect=document.getElementById("mtdaybis");
 if(elemSelect) elemSelect.style.visibility="hidden";
 elemSelect=document.getElementById("mtmonthbis");
 if(elemSelect) elemSelect.style.visibility="hidden";
 elemSelect=document.getElementById("zimmerkategorie");
 if(elemSelect) elemSelect.style.visibility="hidden";
 return;
}

function showElementsForm()
{
 elemSelect=document.getElementById("mtdayvon");
 if(elemSelect) elemSelect.style.visibility="visible";
 elemSelect=document.getElementById("mtmonthvon");
 if(elemSelect) elemSelect.style.visibility="visible";
 elemSelect=document.getElementById("mtdaybis");
 if(elemSelect) elemSelect.style.visibility="visible";
 elemSelect=document.getElementById("mtmonthbis");
 if(elemSelect) elemSelect.style.visibility="visible";
 elemSelect=document.getElementById("zimmerkategorie");
 if(elemSelect) elemSelect.style.visibility="visible";
 return;
}

function thisFormSubmitCheck()
{
 elemForm=document.getElementById("frm");
// LOCATION
 elemInputStadt=document.getElementById("stadtid");
 elemInputName=document.getElementById("stadtname");
 if(elemInputStadt.value=="" || elemInputName.value=="")
 {
  showErrorMessage(errMsgNoLocation);
  return;
 }
 elemInputRoom=document.getElementById("zimmerkategorie");
 if(!elemInputRoom)
 {
  showErrorMessage(errMsgNoRooms);
  return;
 }
// ARRIVAL + DEPARTURE
 curTime=new Date();
 curTime.setTime(curdatum.getTime());
 timeCur=curTime.getTime();
 timeDep=getIntupTime(curTime,"mtdaybis", "mtmonthbis") - 1000;
 timeArr=getIntupTime(curTime,"mtdayvon", "mtmonthvon");
 var dateStatus=false;
 if(timeCur > timeArr) dateStatus=true;
 if(timeArr > timeDep) dateStatus=true;
 if(dateStatus)
 {
  showErrorMessage(errMsgNoDate);
  return;
 }
// SUBMIT
 runWait();
 elemForm.action="http://www.rma-hotels.de/hotels/booking/uebersicht.php";
 elemForm.submit();
}

function searchSubmit()
{
 elemForm=document.getElementById("cse-search-box");
 if(elemForm)
 {
  elemForm.submit();
 }
 return;
} 

function getIntupTime(tCur, dId, mId)
{
 inputDay=document.getElementById(dId);
 inputMonth=document.getElementById(mId);
 tmpArr=inputMonth.value.split("-");
 tCur.setFullYear(tmpArr[1]);
 tCur.setMonth(parseInt(tmpArr[0])-1);
 tCur.setDate(inputDay.value);
 return(tCur.getTime());
}

function start(curLand, curStadtId, curStadtName)
{
 var land=curLand;
 var stadtid=curStadtId;
 appendPreBookLink();
 drawBookMarks();
 createbookform();
 createDateHolder("");
 startTime();
 createElementsForm();
 elemInputStadtName=document.getElementById("stadtname");
 elemInputStadtName.value=curStadtName;
 elemInputHiddenStadtId=document.getElementById("stadtid");
 elemInputHiddenStadtId.value=stadtid;
 elemInput=document.getElementById("land");
 elemInput.value=land; 
 elemInputStadtName.obj = SetProperties(elemInputStadtName, elemInputHiddenStadtId, appService, true, true, true, true, false, null);
 getLocatinSettings(elemInputHiddenStadtId.value, curdatum.getTime() + timedelta);
 try
 {
  if(hinweis!="" && hinweis!==undefined) showErrorMessage(hinweis);
 }
 catch(e)
 {
  var hinweis="";
 }
 return;
}


function init(curLand, curStadtId)
{
 land=curLand;
 var stadtid=curStadtId;
 createbookform();
 createDateHolder("");
 startTime();
 createElementsForm();
 elemInputStadtName=document.getElementById("stadtname");
 elemInputHiddenStadtId=document.getElementById("stadtid");
 elemInputHiddenStadtId.value=stadtid;
 elemInput=document.getElementById("land");
 elemInput.value=land; 
 elemInputHiddenStadtId=document.getElementById("stadtid");
 elemInputStadtName.obj = SetProperties(elemInputStadtName, elemInputHiddenStadtId, appService, true, true, true, true, false, null);
 appendPreBookLink();
 drawBookMarks();
 return;
}

function getLocatinSettings(location, localtime)
{
 curLocationSettings="LoacationSettings";
 var strParams="act=setting&sprache=" + sprache + "&t=" + localtime + "&l=" + location;
 var curloader = new net.ContentLoader(appService, setLocationSettings, null, strParams); 
}

function setLocationSettings()
{
 var strText=this.responseText;
 eval(strText);
 createDateHolder(LocationTimeValue);
 refreshElementsForm();
 curLocationSettings="";
}

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

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

function getLocationSettings(location, localtime)
{
 curLocationSettings="LoacationSettings";
 var strParams="act=setting&sprache=" + sprache + "&t=" + localtime + "&l=" + location;
 var curloader = new net.ContentLoader(appService, setLocationSettings, null, strParams); 
}

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

function refreshElementsForm()
{
 var elemTd=document.getElementById("tdArrival");
 clearElementNodes(elemTd);
 elemTd=document.getElementById("tdDeparture");
 clearElementNodes(elemTd);
 elemTd=document.getElementById("tdRoomtype");
 clearElementNodes(elemTd);
 createElementsForm();
}

function createDateElements(theDatum, idName, idDay, idMonth)
{
 var elemTd=document.getElementById(idName);
 elemSelect=document.createElement("select");
 elemSelect.className="Booking";
 elemSelect.id=idDay; 
 elemSelect.name=idDay; 
 elemSelect.style.paddingRight="0px";
 elemSelect.style.marginRight="0px";
 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);
 }
 elemTd.appendChild(elemSelect); 
 elemSelect=document.createElement("select");
 elemSelect.className="Booking";
 elemSelect.id=idMonth; 
 elemSelect.name=idMonth; 
 elemSelect.style.paddingRight="0px";
 elemSelect.style.width="135px";
 for(i=0; i < 12; i++)
 {
  var Monatnum = (i + theDatum.getMonth()) % 12; 
  var Year = theDatum.getFullYear();
  if(i + theDatum.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);
 }
 elemTd.appendChild(elemSelect);
 return;
}

function createElementsForm()
{
//ARRIVAL
 var localDatum = new Date();
 localDatum.setTime(localDatum.getTime() + timedelta);
 elemTd=document.getElementById("tdArrival");
 createDateElements(localDatum, "tdArrival", "mtdayvon", "mtmonthvon");
 elemSelect=document.getElementById("mtdayvon");
 elemSelect.options[localDatum.getDate()-1].selected=true;
//DEPARTURE
 elemTd=document.getElementById("tdDeparture");
 localDatum.setTime(localDatum.getTime() + 1000*24*60*60);
 createDateElements(localDatum, "tdDeparture", "mtdaybis", "mtmonthbis");
 elemSelect=document.getElementById("mtdaybis");
 elemSelect.options[localDatum.getDate()-1].selected=true;
//ROOMTYPE

 elemTd=document.getElementById("tdRoomtype");
 elemSelect=document.createElement("select");
 elemSelect.className="Booking";
 elemSelect.id="zimmerkategorie"; 
 elemSelect.name="zimmerkategorie"; 
 elemSelect.style.paddingRight="0px";
 elemSelect.style.width="135px";
 for(i=0; i < arrRoomType.length; i++)
 {
  curOption=arrRoomType[i].split(",");
  optionValue=curOption[0];
  optionText=curOption[1];
  elemOption=document.createElement("option");
  elemOption.value=optionValue;
  elemNode=document.createTextNode(optionText);
  elemOption.appendChild(elemNode);
  elemSelect.appendChild(elemOption);
 }
 if(arrRoomType.length > 0)
 {
  elemTd.appendChild(elemSelect);
 }
 else
 {
  showErrorMessage(errMsgNoRooms);
 }
 return;
}

function createDateHolder(HeadValue)
{
 mainHolder=document.getElementById("CurDateHolder");
 clearElementNodes(mainHolder);
 elemTable=document.createElement("table");
 elemTable.width="215px";
 elemTable.cellSpacing="0px";
 elemTable.cellPadding="0px";
 elemTr=document.createElement("tr");
 elemTd=document.createElement("td");
 elemTd.id="tdLocation"; 
 elemTd.style.width="65px";
 elemTr.appendChild(elemTd);
 elemTd=document.createElement("td");
 elemTd.id="DateTimeHead"; 
 elemTd.width="150px";
 elemTd.align="left";
 elemTd.innerHTML="<b>" + HeadValue + "</b>";
 elemTr.appendChild(elemTd); 
 elemTable.appendChild(elemTr); 
 elemTr=document.createElement("tr");
 elemTd=document.createElement("td");
 elemTd.id="tdLocation"; 
 elemTd.style.width="65px";
 elemTr.appendChild(elemTd);
 elemTd=document.createElement("td");
 elemTd.id="CurDateTime"; 
 elemTd.width="150px";
 elemTd.align="left";
 elemTr.appendChild(elemTd); 
 elemTable.appendChild(elemTr); 
 if(curNavigator=="msie")
 {
  tmpDir=document.createElement("div");
  tmpDir.appendChild(elemTable);
  mainHolder.innerHTML=tmpDir.innerHTML; 
 }
 else
 {
  mainHolder.appendChild(elemTable); 
 }
 return;
}


function createbookform()
{
/* CREATE SPAN DYNAMICLIST */
 elemSpan=document.createElement("span");
 elemSpan.id="spanOutput";
 elemSpan.className="spanText";
 document.body.appendChild(elemSpan);


/* CREATE FORM*/
 var elemForm=document.createElement("form");
 elemForm.method="POST";
 elemForm.enctype="multipart/form-data";
 if(curNavigator=="msie" || curNavigator=="opera") { elemForm.onsubmit="javascript: return formstatus;"; } else { elemForm.onsubmit= function(){ return formstatus; } }
 elemForm.id="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=rw_stadt>"); } else {  elemInput=document.createElement("input"); elemInput.name="rw_stadt";}
 elemInput.type="hidden"; 
 elemInput.id="stadtid"; 
 elemInput.value=stadtid;
 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);

/* CREATE TABLE*/
 var elemTable=document.createElement("table");
 elemTable.width="590px";
 elemTable.cellSpacing="2px";
 elemTable.cellPadding="0px";
/* CREATE LOCATION*/
 var elemTr=document.createElement("tr");
 var elemTd=document.createElement("td");
 elemTd.id="tdLocation"; 
 elemTd.style.width="590px";
 elemTd.style.height="36px";
 elemTd.colSpan="2";
 elemTd.align="right";
 elemTd.style.backgroundImage=imgNameLocation;
 elemInput=document.createElement("input");
 elemInput.type="text"; 
 elemInput.id="stadtname"; 
 elemInput.name="stadtname"; 
 elemInput.value="";
 elemInput.setAttribute("autocomplete","off");
 elemInput.className="Booking";
 elemInput.style.width="385px";
 elemTd.appendChild(elemInput);  
 elemTr.appendChild(elemTd); 
 elemTable.appendChild(elemTr); 
/* CREATE NULLROW + CURDATETIME*/
 elemTr=document.createElement("tr");
 elemTd=document.createElement("td");
 elemTd.id="tdLocation"; 
 elemTd.style.width="375px";
 elemTd.style.height="5px";
 elemTr.appendChild(elemTd);
 elemTd=document.createElement("td");
 elemTd.rowSpan="5";
 elemTd.align="right";
 elemTd.id="CurDateHolder"; 
 elemTd.width="215px";
 elemTr.appendChild(elemTd); 
 elemTable.appendChild(elemTr); 
 
/* CREATE ARRIVAL*/
 elemTr=document.createElement("tr");
 elemTd=document.createElement("td");
 elemTd.id="tdArrival"; 
 elemTd.width="375px";
 elemTd.height="36px";
 elemTd.align="right";
 elemTd.style.backgroundImage=imgNameArrival;
 elemTr.appendChild(elemTd); 
 elemTable.appendChild(elemTr); 
/* CREATE NULLROW*/
 elemTr=document.createElement("tr");
 elemTd=document.createElement("td");
 elemTd.width="375px";
 elemTd.style.height="5px";
 elemTr.appendChild(elemTd); 
 elemTable.appendChild(elemTr); 
/* CREATE DEPARTURRE*/
 elemTr=document.createElement("tr");
 elemTd=document.createElement("td");
 elemTd.id="tdDeparture"; 
 elemTd.width="375px";
 elemTd.height="36px";
 elemTd.align="right";
 elemTd.style.backgroundImage=imgNameDeparture;
 elemTr.appendChild(elemTd); 
 elemTable.appendChild(elemTr); 
/* CREATE NULLROW*/
 elemTr=document.createElement("tr");
 elemTd=document.createElement("td");
 elemTd.width="375px";
 elemTd.style.height="5px";
 elemTr.appendChild(elemTd); 
 elemTable.appendChild(elemTr); 
/* CREATE ROOMTYPE*/
 elemTr=document.createElement("tr");
 elemTd=document.createElement("td");
 elemTd.id="tdRoomtype"; 
 elemTd.width="375px";
 elemTd.height="36px";
 elemTd.align="right";
 elemTd.style.backgroundImage=imgNameRoomtype;
 elemTr.appendChild(elemTd); 
/* CREATE SUBMITBTN*/
 elemTd=document.createElement("td");
 elemTd.width="215px";
 elemTd.align="right";
 elemAnchor=document.createElement("a");
 elemAnchor.href="javascript:thisFormSubmitCheck();";
 elemAnchor.id="btnSubmit";
 elemImg=document.createElement("img");
 elemImg.src=imgNameHotelSearch;
 elemImg.border="0px";
 elemAnchor.appendChild(elemImg); 
 elemTd.appendChild(elemAnchor); 
 elemTr.appendChild(elemTd); 
 elemTable.appendChild(elemTr); 
/* CREATE ERROOHOLDER */
 elemTr=document.createElement("tr");
 elemTd=document.createElement("td");
 elemTd.colSpan="2";
 elemTd.height="15px";
 elemErr=document.createElement("div");
 elemErr.className="ErrorHolder";
 elemErr.id="ErrorHolder";
 elemTd.appendChild(elemErr); 
 elemTr.appendChild(elemTd); 
 elemTable.appendChild(elemTr); 
/* CREATE INHALT*/
 elemForm.appendChild(elemTable);

 maindiv=document.getElementById("bookfrm");
 maindiv.innerHTML="";
 if(curNavigator=="msie")
 {
  curdiv=document.createElement("div");
  curdiv.appendChild(elemForm);
  maindiv.innerHTML=curdiv.innerHTML;
 }
 else
 {
  if(curNavigator=="firefox" && oldVersion)
  {
   elemForm.style.marginTop="30px";
  }
  maindiv.appendChild(elemForm);
 }
 return;
}

/* TIMER */
var curdatum=new Date();
var timedelta=0;

function startTime()
{
 curdatum=new Date(); 
 curdatum.setTime(curdatum.getTime() + timedelta);
 curTimeStr=getCurrentDate(curdatum) + " ";
 curTimeStr+=getCurrentTime(curdatum);
 var elemTd=document.getElementById("CurDateTime");
 if(elemTd)
 {
  elemTd.innerHTML="<b>" + curTimeStr + "</b>";
 }
 t=setTimeout('startTime()',500);
}

function getCurrentTime(tCur)
{
 h=tCur.getHours();
 if(h < 10) { h = "0" + h; }
 m=tCur.getMinutes();
 if(m < 10) { m = "0" + m; }
 s=tCur.getSeconds();
 if(s  < 10) { s  = "0" +  s; }
 return(h + ":" + m + ":" + s);
}

/* NET */
var loader;
var net=new Object();
net.READY_STATE_UNINITIALIZED=0;
net.READY_STATE_LOADING=1;
net.READY_STATE_LOADED=2;
net.READY_STATE_INTERACTIVE=3;
net.READY_STATE_COMPLETE=4;
net.ContentLoader=function(url, onload, onerror, params)
{
 this.req=null;
 this.onload=onload;
 this.onerror=(onerror) ? onerror : this.defaultError;
 this.loadXMLDoc(url, params);
}

net.ContentLoader.prototype.loadXMLDoc=function(url, params)
{
 method="POST";
 contentType='application/x-www-form-urlencoded; charset=UTF-8';
 try
 {
  // Firefox, Opera 8.0+, Safari, IE7
  this.req=new XMLHttpRequest();
 }
 catch (e)
 {
  // Internet Explorer
  try
  {
   loader=new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch (e)
  {
   try
   {
    loader=new ActiveXObject("Microsoft.XMLHTTP");
   }
   catch (e)
   {
    return false;
   }
  }
 }
 if(loader)
 {
  try
  {
   loader.onreadystatechange=net.ContentLoader.onIE6ReadyState;
   loader.open(method, url, true);
   loader.setRequestHeader("Content-Type", contentType);
   loader.send(params);
  }
  catch (err)
  {
   return true;
  }
 }
 if(this.req)
 {
  try
  {
   this.req.onload=this.onload;
   this.req.onerror=this.onerror;
   this.req.onreadystatechange=net.ContentLoader.onReadyState;
   this.req.open(method, url, true);
   this.req.setRequestHeader("Content-Type", contentType);
   this.req.send(params);
  }
  catch (err)
  {
   return true;
  }
 }
}

net.ContentLoader.onReadyState=function()
{
 var req=this;
 var ready=req.readyState;
 if (ready==net.READY_STATE_COMPLETE)
 {
  var httpStatus=req.status;
  if (httpStatus==200 || httpStatus==0)
  {
   this.onload.call(this);
  }
  else
  {
   this.onerror.call(this);
  }
 }
}

net.ContentLoader.onIE6ReadyState=function()
{
 var ready = loader.readyState;
 if(ready==net.READY_STATE_COMPLETE)
 {
  var httpStatus=loader.status;
  if (httpStatus==200 || httpStatus==0)
  {
   if(curLocationSettings=="")
   {
    var strText=loader.responseText;
    eval(strText);
    BuildList(strLastValue);
    bMadeRequest=false;
   }
   else
   {
    var strText=loader.responseText;
    eval(strText);
    createDateHolder(LocationTimeValue);
    refreshElementsForm();
    curLocationSettings="";
   }
  }
  else
  {
   return false;
  }
 }
}

net.ContentLoader.prototype.defaultError=function()
{
 return false;
}

/* INPUT LOCATION */
var arrOptions= new Array();
var arrSetting= new Array();
var strLastValue="";
var bMadeRequest;
var theTextBox;
var objLastActive;
var currentValueSelected=-1;
var bNoResults=false;
var isTiming=false;
var countForId=0;
var selectedSpanStart="<span style='width:100%; display:block;' class='spanNormal' onmouseover='SetHighColor(this)' ";
var spanEnd="</span>";

function StartTimeout()
{
 isTiming=setTimeout("HideTheBox()", theTextBox.obj.theVisibleTime);
}

function EraseTimeout()
{
 clearTimeout(isTiming);
 isTiming=false;
}

function SetText(xVal)
{
 elemInput=document.getElementById("land");
 theTextBox.value=arrOptions[xVal][0];
 theTextBox.obj.hidden.value=arrOptions[xVal][1];
 elemInput.value=arrOptions[xVal][3];
 document.getElementById("spanOutput").style.display="none";
 currentValueSelected=-1;
 getLocationSettings(theTextBox.obj.hidden.value, curdatum.getTime() - timedelta);
}

function HideTheBox()
{
 document.getElementById("spanOutput").style.display="none";
 currentValueSelected=-1;
 EraseTimeout();
 showElementsForm(); 
}

function GrabHighlighted()
{
 if(currentValueSelected >= 0)
 {
  xVal=document.getElementById("OptionsList_" + currentValueSelected).getAttribute("theArrayNumber");
  SetText(xVal);
  HideTheBox();
 }
}

function SetHighColor(theTextBox)
{
 if(theTextBox)
 {
  currentValueSelected=theTextBox.id.slice(theTextBox.id.indexOf("_")+1, theTextBox.id.length);
 }
 for(i=0; i < countForId; i++)
 {
  document.getElementById('OptionsList_' + i).className = 'spanNormal';
 }
 document.getElementById('OptionsList_' + currentValueSelected).className = 'spanHigh';
}

function MoveHighlight(xDir)
{
 if(currentValueSelected >= 0)
 {
  newValue=parseInt(currentValueSelected)+parseInt(xDir);
  if(newValue > -1 && newValue <countForId)
  {
   currentValueSelected = newValue;
   SetHighColor(null);
  }
 }
}

function CreateUnderline(xStr, yStr, xTextMatch, xVal)
{
 var selectedLandRight="<span style='color:gray; font-weight:normal;'>&nbsp;&nbsp;&ndash;&nbsp;&nbsp;" + yStr + "</span>"; 
 var selectedSpanMid="onclick='SetText(" + xVal +")' id='OptionsList_" + countForId + "' theArrayNumber='" + xVal + "'>"; 
 var regExp=new RegExp(theTextBox.obj.regExAny + xTextMatch, theTextBox.obj.regExFlags);
 var aStart=xStr.search(regExp);
 var matchedText=xStr.substring(aStart, aStart + xTextMatch.length);
 countForId++;
 var selectedSpanBoxUn="<u>" + matchedText + "</u>";
 return selectedSpanStart + selectedSpanMid + xStr.replace(regExp, selectedSpanBoxUn) + selectedLandRight + spanEnd;
}

function MakeMatches(xCompareStr)
{
 countForId=0;
 var matchArray=new Array();
 var regExp=new RegExp(theTextBox.obj.regExAny + xCompareStr, theTextBox.obj.regExFlags);
 for(i=0; i < arrOptions.length; i++)
 {
  var theMatch=arrOptions[i][0].match(regExp);
  if(theMatch)
  {
   matchArray[matchArray.length]=CreateUnderline(arrOptions[i][0], arrOptions[i][2], xCompareStr, i);
  }
 }
 return matchArray;
}

function SetElementPosition(theTextBoxInt)
{
 var selectedPosX=0;
 var selectedPosY=0;
 var theElement=theTextBoxInt;
 if(!theElement)  return;
 var theElementHeight=theElement.offsetHeight;
 var theElementWidth=theElement.offsetWidth;
 while(theElement!=null)
 {
  selectedPosX+=theElement.offsetLeft;
  selectedPosY+=theElement.offsetTop;
  theElement=theElement.offsetParent;
 }
 xPosElement=document.getElementById("spanOutput");
 xPosElement.style.left=selectedPosX;
 if(theTextBoxInt.obj.matchTextBoxWidth)
 {
  xPosElement.style.width=theElementWidth;
 }
 xPosElement.style.top=selectedPosY+theElementHeight;
 xPosElement.style.display="block";
 if(theTextBoxInt.obj.useTimeout)
 {
  xPosElement.onmouseout=StartTimeout;
  xPosElement.onmouseover=EraseTimeout;
 }
 else
 {
  xPosElement.onmouseout=null;
  xPosElement.onmouseover=null;
 }
}

function BuildNoVariantMessage()
{
 var elemSpan=document.getElementById("spanOutput");
 var noVarianMsg = "<span style='width:100%; display:block; font-weight:normal;' class='spanNormal'>";
 noVarianMsg += errMsgNoVariants;
 noVarianMsg += "</span>";
 elemSpan.innerHTML= noVarianMsg;
 return;
}

function BuildList(theText)
{
 SetElementPosition(theTextBox);
 var theMatches=MakeMatches(theText);
 theMatches=theMatches.join().replace(/\,/gi,"");
 hiddeElementsForm();
 if(theMatches.length > 0)
 {
  document.getElementById("spanOutput").innerHTML=theMatches;
  document.getElementById("OptionsList_0").className="spanHigh";
  currentValueSelected=0;
  bNoResults=false;
 }
 else
 {
  currentValueSelected=-1;
  bNoResults=true;
  if(theTextBox.obj.showNoMatchMessage)
  {
   BuildNoVariantMessage();
  }
  else
  {
   HideTheBox();
  }
 }
}

function BuildChoices()
{
 var strText=this.responseText;
 eval(strText);
 BuildList(strLastValue);
 bMadeRequest=false;
}

function TypeAhead(xStrText)
{
 var strParams="act=options&sprache=" + sprache + "&q=" + xStrText;
 var curloader = new net.ContentLoader(theTextBox.obj.serverCode, BuildChoices, null, strParams); 
}

function GiveOptions(e)
{
 var intKey=-1;
 if(window.event)
 {
  intKey=event.keyCode;
  theTextBox=event.srcElement;
 }
 else
 {
  intKey=e.which;
  if(curNavigator=="firefox")
  {
   theTextBox=e.target;
  }
  else
  {
   theTextBox=e.target;
  }
 }
 if(theTextBox.obj.useTimeout)
 {
  if(isTiming) EraseTimeout();
  StartTimeout();
 }
 if(theTextBox.value.length==0 && curNavigator!="opera")
 {
  arrOptions=new Array();
  HideTheBox();
  strLastValue="";
  return false;
 }

 if(objLastActive==theTextBox)
 {
  if(intKey==13)
  {
   GrabHighlighted();
   theTextBox.blur();
   return false;
  }
  else if(intKey==38)
  {
   MoveHighlight(-1);
   return false;
  }
  else if(intKey==40)
  {
   MoveHighlight(1);
   return false;
  }
 }
 if(objLastActive!=theTextBox || theTextBox.value.indexOf(strLastValue)!=0 ||((arrOptions.length==0 || arrOptions.length < 21) && !bNoResults)||(theTextBox.value.length <= strLastValue.length))
 {
  objLastActive=theTextBox;
  TypeAhead(theTextBox.value);
 }
 else if(!bMadeRequest)
 {
  BuildList(theTextBox.value);
 }
 strLastValue=theTextBox.value;
}

function AddHandler(objText)
{
 objText.onkeyup=GiveOptions;
 objText.onblur = function(){if(this.obj.useTimeout) StartTimeout();}
 if(curNavigator=="opera") objText.onkeypress = GiveOptions;
}

function SetProperties(xElem, xHidden, xServerCode, xIgnoreCase, xMatchAnywhere, xMatchTextBoxWidth, xShowNoMatchMessage, xUseTimeout, xVisibleTime)
{
 var props=
 {
  elem: xElem,
  hidden: xHidden,
  serverCode: xServerCode,
  regExFlags: ((xIgnoreCase) ? "i" : ""),
  regExAny: ((xMatchAnywhere) ? "" : ""),
  matchAnywhere: xMatchAnywhere,
  matchTextBoxWidth: xMatchTextBoxWidth,
  showNoMatchMessage: xShowNoMatchMessage,
  useTimeout: xUseTimeout,
  visibleTime: xVisibleTime
 };
 AddHandler(xElem);
 return props;
}

function drawBookMarks() { var title=encodeURIComponent(document.title); var description=encodeURIComponent(document.getElementsByTagName("meta")[3].content); var url=encodeURIComponent(location.href); var elemDiv=document.getElementById("MarkBox"); if(elemDiv) {  elemAnchor=document.createElement("a");  elemAnchor.href='http://www.google.com/bookmarks/mark?op=add&bkmk='+url+'&title='+title+'&labels=Hotels reservation&annotation='+description;  elemAnchor.target='_blank';  elemImg=document.createElement("img");  elemImg.src='/business-hotel/system/bookmark/google.gif';  elemAnchor.appendChild(elemImg);   elemDiv.appendChild(elemAnchor);   elemAnchor=document.createElement("a");  elemAnchor.href='http://twitter.com/home?status='+title+' '+url;  elemAnchor.target='_blank';  elemImg=document.createElement("img");  elemImg.src='/business-hotel/system/bookmark/twitter.gif';  elemAnchor.appendChild(elemImg);   elemDiv.appendChild(elemAnchor);   elemAnchor=document.createElement("a");  elemAnchor.href='http://www.facebook.com/sharer.php?u=' +url;  elemAnchor.target='_blank';  elemImg=document.createElement("img");  elemImg.src='/business-hotel/system/bookmark/facebook.gif';  elemAnchor.appendChild(elemImg);   elemDiv.appendChild(elemAnchor);   elemAnchor=document.createElement("a");  elemAnchor.href='http://del.icio.us/post?v=4&noui&jump=close&url='+url+'&title='+title+'&notes='+description;  elemAnchor.target='_blank';  elemImg=document.createElement("img");  elemImg.src='/business-hotel/system/bookmark/icio.gif';  elemAnchor.appendChild(elemImg);   elemDiv.appendChild(elemAnchor);   elemAnchor=document.createElement("a");  elemAnchor.href='http://www.mister-wong.com/index.php?action=addurl&bm_url='+url+'&bm_description='+title;  elemAnchor.target='_blank';  elemImg=document.createElement("img");  elemImg.src='/business-hotel/system/bookmark/misterwong.gif';  elemAnchor.appendChild(elemImg);   elemDiv.appendChild(elemAnchor); elemAnchor=document.createElement("a"); elemAnchor.href='http://digg.com/submit?phase=2&url='+url+'&title='+title+'&bodytext='+description;  elemAnchor.target='_blank';  elemImg=document.createElement("img");  elemImg.src='/business-hotel/system/bookmark/digg.gif';  elemAnchor.appendChild(elemImg);   elemDiv.appendChild(elemAnchor);  elemAnchor=document.createElement("a"); elemAnchor.href='http://linkarena.com/bookmarks/addlink/?url='+url+'&title='+title;  elemAnchor.target='_blank';  elemImg=document.createElement("img");  elemImg.src='/business-hotel/system/bookmark/linkarena.gif';  elemAnchor.appendChild(elemImg);   elemDiv.appendChild(elemAnchor); } return;}
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); }
