function showImage(image, options) {
  window.open("showImage.html?image=" + image + options,
              "screen",
              "menubar=0,toolbar=0,location=0,width=550,height=650");
}
function showImageP(image, options) {
  window.open("showImageP.html?image=" + image + options,
              "screen",
              "menubar=0,toolbar=0,location=0,width=550,height=650");
}


function disableRight() {
  document.oncontextmenu = function(){return false}
  if(document.layers) {
     window.captureEvents(Event.MOUSEDOWN);
     window.onmousedown = function(e){
       if(e.target==document)return false;
     }
  }
  else {
     document.onmousedown = function(){return false}
  }
}

function getQueryValue(propName) {
  var props = new Array();
  props = window.location.search.substring(1).split("&");
  for (var i=0; i<props.length; i++) {
    if (props[i].indexOf(propName + "=") == 0) {
      return unescape(props[i].substring(props[i].indexOf("=") + 1));
    }
  }
}


function getElement(elemId) {
  if (isObject(elemId)) return elemId;
  if (document.getElementById) return document.getElementById(elemId);
  if (document.all != null) return document.all[elemId];
  return null;
}

/**
 *  getElementValue() - Return the value of the given HTML Element
 *
 *  @param  Object  elem - Given Element
 *  @return String  value - Value of given element
 */
function getElementValue(elemId) {
  var elem = getElement(elemId);
  if (elem == null) {
    displayError("Unable to determine " + elemId + " to get value");
    return false;
  }

  var elemType = getElementType(elem);
  switch (elemType) {
    case "hidden":    // subset of input
    case "password":  // subset of input
    case "text":      // subset of input
    case "file":      // subset of input
    case "textarea":
      return elem.value;
      break;
    case "checkbox":
      return (elem.checked ? "Y" : "N");
      break;
    case "select":
      if (elem.selectedIndex < 0) return null;
      return elem.options[elem.selectedIndex].value;
      break;
    case "span":
    case "td":
    case "th":
      if (elem.childNodes.length == 0) {
        return "";
      }
      return elem.firstChild.nodeValue;
      break;
    default:
      alert("GetElementValue (" + elem.id + ") with unknown Element Type of " + elemType);
      break;
  }
  return null;
  //  return elem.innerHTML;
}
function getSelectElementText(elemId) {
  var elem = getElement(elemId);
  if (elem == null) {
    displayError("Unable to determine " + elemId + " to get value");
    return null;
  }

  var elemType = getElementType(elem);
  if (elemType != "select") {
    displayError(elemId + " is not a select statement to determine the text value");
    return null;
  }
  if (elem.selectedIndex < 0) return null;
  return elem.options[elem.selectedIndex].text;
}
/**
 *  getElementType() - Return the given type of HTML Element
 *
 *  @param  Object   elem  - Given Element
 *  @return String   value - Type of Element
 */
function getElementType(elem) {
  if (elem == null) return null;
  var elemTagName = elem.tagName;
  if (elemTagName == null) return null;
  elemTagName = elemTagName.toLowerCase();

  if (elemTagName == "input") {
    elemTagName = elem.type.toLowerCase();
  }
  return elemTagName;
}

function isElementA(elem, expElemType) {
  var elemType = getElementType(elem);
  expElemType  = expElemType.toLowerCase();
  return elemType == expElemType;
}

function setElementValue(elemId, elemValue) {
  var elem = getElement(elemId);
  if (elem == null) {
    displayError("Unable to determine " + elemId + " to set value to " + elemValue);
    return false;
  }
  if (elemValue == "undefined") {
    return false;
  }
  var elemType = getElementType(elem);

  switch (elemType) {
    case "hidden":    // subset of input
    case "text":      // subset of input
    case "password":  // subset of input
    case "textarea":
      elem.value = elemValue;
      break;
    case "checkbox":
      elem.checked = (elemValue == "Y") ? true : false;
      break;
    case "select":
      elem.selectedIndex = -1;
      for (var i=0; i<elem.options.length; i++) {
        if (elem.options[i].value == elemValue) {
          elem.selectedIndex = i;
          break;
        }
      }
      break;
    case "span":
    case "div":
    case "td":
    case "button":
      clearElement(elem);
      var txt = document.createTextNode(elemValue);
      elem.appendChild(txt);
      break;
    case "img":
      elem.setAttribute("src", elemValue);
      break;
    default:
      alert("Setting value of " + elem.id + " with unknown type of " + elemType);
      break;
  }
//  elem.appendChild(document.createTextNode(elemValue));
}

function clearElement(elem) {
  if (isEmpty(elem)) return false;
  while (elem.childNodes.length >0) {
    elem.removeChild(elem.lastChild);
  }
  return true;
}
/**
 * isEmpty - Determine if given string is considered empty in Javascript
 *
 * @param  String to validate
 * @return Boolean
 */
function isEmpty(s){
  return ((s == null) || (s.length == 0))
}

function isObject(elem) {
  return (typeof elem == "object");
}

function loader() {
    disableRight();
  window.focus();
  var image    = getQueryValue("image");
  var comment1 = getQueryValue("comment1");
  var comment2 = getQueryValue("comment2");
  var comment3 = getQueryValue("comment3");

  setElementValue("comment1", comment1);
  setElementValue("comment2", comment2);
  if (!isEmpty(comment3)) {
    setElementValue("comment3", comment3);
  }
    setElementValue("image", image);
}


function showPage(urlName) {
  var elem = getElement("main");
  if (isEmpty(elem)) return false;
  elem.setAttribute("src", urlName);
  
}

function launch(URL) {
  document.location.href = URL;
}

