var ns=(document.layers);
var ie=(document.all);
var ns6=document.getElementById && !document.all
var w3=(document.getElementById && !ie);
if(!ns && !ie && !w3) alert('Please enable JavaScript');

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function numbersonly(e) {
    var unicode=e.charCode? e.charCode : e.keyCode;
    if (unicode!=8 && unicode!=9 && unicode!=46) { 
        if (unicode<48||unicode>57)
            return false; 
    }
} 

function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
    return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
    return stringToTrim.replace(/\s+$/,"");
}

/**
 * X-browser event handler attachment and detachment
 * TH: Switched first true to false per http://www.onlinetools.org/articles/unobtrusivejavascript/chapter4.html
 *
 * @argument obj - the object to attach event to
 * @argument evType - name of the event - DONT ADD "on", pass only "mouseover", etc
 * @argument fn - function to call
 */
function addEvent(obj, evType, fn){
 if (obj.addEventListener){
    obj.addEventListener(evType, fn, false);
    return true;
 } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
 } else {
    return false;
 }
}
function removeEvent(obj, evType, fn, useCapture){
  if (obj.removeEventListener){
    obj.removeEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.detachEvent){
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
}

function getViewportHeight() {
    if (window.innerHeight!=window.undefined) return window.innerHeight;
    if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
    if (document.body) return document.body.clientHeight; 
    return window.undefined; 
}
function getViewportWidth() {
    if (window.innerWidth!=window.undefined) return window.innerWidth; 
    if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth; 
    if (document.body) return document.body.clientWidth; 
    return window.undefined; 
}

var clickedOnce = false;

function clickOnce(btnObj, fnName) {
    if(clickedOnce == true) {
        return;
    } else {
        clickedOnce=true;
        btnObj.disabled=true;
        btnObj.value="Please wait...";
        if(fnName == null)
            btnObj.form.submit();
        else        
            eval(fnName);
    }
}

function submitOnEnter(myfield, e){
    var keycode;
    if (window.event) 
        keycode = window.event.keyCode;
    else if (e) 
        keycode = e.which;
    else 
        return true;

    if (keycode == 13){
       myfield.form.submit();
       return false;
    } else {
       return true;
    }
}

function doSubmit(op){
    var formObj = document.myForm;
    if(op != null && op != "")
        formObj.op.value = op; 
    formObj.submit();
}

function showDiv(myDiv) {
    if (ie||w3) {
        myDiv.style.visibility="visible";
        myDiv.style.display="block";  
    } else {
        myDiv.style.visibility ="show";
    }
}
function showDivById(myDivId) {
    var myDiv = document.getElementById(myDivId);
    if(myDiv != null)
    showDiv(myDiv);
}
function hideDiv(myDiv) {
    if (ie||w3) {
        myDiv.style.visibility="hidden";
        myDiv.style.display="none"; 
    } else {
        myDiv.style.visibility ="hide";
    }
}
function hideDivById(myDivId) {
    var myDiv = document.getElementById(myDivId);
    if(myDiv != null)
    hideDiv(myDiv);
}

function hideAllDivByPrefix(divIdPrefix){
    var divId = null;
    var divs = document.getElementsByTagName("div");
    for(x=0;x<divs.length;++x)
    {
        if(divs[x] != null) {            
            divId=divs[x].id;
            if(divId.indexOf(divIdPrefix) == 0)
                hideDivById(divId);     
        }
    }
}

function showHome(){
    var formObj = document.myForm;
    formObj.action = formObj.homePage.value;
    formObj.op.value = "showHome";
    formObj.submit();
}

function showUserProfile(){
    var formObj = document.myForm;
    formObj.action = formObj.homePage.value;
    formObj.op.value = "showProfile";
    formObj.submit();
}

function showResProfile(resId){
    var formObj = document.myForm;
    formObj.action = formObj.menuDisplayPage.value;
    formObj.op.value = "showProfile";
    if(resId != null && resId != "")
        formObj.internal_resId.value = resId;
    formObj.submit();
}

function showMenuPage(){
    var formObj = document.myForm;
    formObj.action = formObj.menuDisplayPage.value;
    formObj.op.value = "showCategories";
    formObj.submit();
}

function showRes(resId) {
    var formObj = document.forms[0];
    formObj.action = formObj.menuDisplayPage.value;
    formObj.internal_resId.value = resId;
    formObj.op.value = "showCategories";
    formObj.submit();
}

function showManagedRes(resId) {
    var formObj = document.forms[0];
    formObj.action = formObj.resMgmtPage.value;
    formObj.op.value = "showManage";    
    formObj.managedResId.value = resId;
    formObj.submit();
}

function showCorpHome() {
    var formObj = document.forms[0];
    formObj.action = formObj.corpCalendarPage.value;
    formObj.op.value = "showCorpHome";
    formObj.submit();
}

function showCorpCalendar() {
    var formObj = document.forms[0];
    formObj.action = formObj.corpCalendarPage.value;
    formObj.op.value = "showCalendar";
    formObj.submit();
}

function showSubmittedOrder(ordId) {
    var formObj = document.forms[0];
    formObj.action = formObj.ordDisplayPage.value;
    formObj.orderId.value = ordId;
    formObj.submit();
}

function showPendingOrder(ordId) {
    var formObj = document.forms[0];
    formObj.action = formObj.ordEditPage.value;
    formObj.op.value = "showPendingOrder";
    formObj.orderId.value = ordId;
    formObj.submit();
}

function showOrderInvitation(ordId, inviteeId) {
    var formObj = document.forms[0];
    formObj.action = formObj.ordEditPage.value;
    formObj.op.value = "showOrderInvitation";
    formObj.orderId.value = ordId;
    formObj.inviteeId.value = inviteeId;
    formObj.submit();
}

function inviteFriend(){
    var formObj = document.myForm;
    formObj.op.value = "addFriend";
    formObj.action = formObj.userMgmtPage.value;
    formObj.submit();
}

function tellFriend(){
    var formObj = document.myForm;
    formObj.op.value = "tellFriend";
    formObj.action = formObj.userMgmtPage.value;
    formObj.submit();
}

function moveOptions(theSelFrom, theSelTo) {
  var selLength = theSelFrom.length;
  var selectedText = new Array();
  var selectedValues = new Array();
  var selectedCount = 0;
  
  var i;
  
  // Find the selected Options in reverse order and delete them from the 'from' Select.
  for(i=selLength-1; i>=0; i--) {
    if(theSelFrom.options[i].selected) {
      selectedText[selectedCount] = theSelFrom.options[i].text;
      selectedValues[selectedCount] = theSelFrom.options[i].value;
      deleteOption(theSelFrom, i);
      selectedCount++;
    }
  }

  // Add the selected text/values in reverse order.
  // This will add the Options to the 'to' Select
  // in the same order as they were in the 'from' Select.
  for(i=selectedCount-1; i>=0; i--) {
    addOption(theSelTo, selectedText[i], selectedValues[i]);
  }
}
function addOption(theSel, theText, theValue) {
  var newOpt = new Option(theText, theValue);
  var selLength = theSel.length;
  theSel.options[selLength] = newOpt;
}
function deleteOption(theSel, theIndex) { 
  var selLength = theSel.length;
  if(selLength>0) {
    theSel.options[theIndex] = null;
  }
}
function selectAllOptions(id) {
    var ref = document.getElementById(id);
    if(ref != null) {
        for(i=0; i<ref.options.length; i++)
            ref.options[i].selected = true;
    }
}

function saveOrder(){
    var formObj = document.myForm;
    formObj.action = formObj.ordSubmitPage.value;
    formObj.op.value = "saveForLater";
    formObj.submit();   
}

function showLogin(){
    var formObj = document.myForm;
    formObj.action = formObj.homePage.value;
    formObj.op.value = "showLogin";
    formObj.submit();   
}
function showDinerRegister(){
    var formObj = document.myForm;
    formObj.action = formObj.homePage.value;
    formObj.op.value = "showDinerRegister";
    formObj.submit();   
}