/**
* (c) InfoProjects bv. - www.infoprojects.nl
*
* $Revision: 1.76 $
* $Date: 2011/08/23 08:58:09 $
*/

/**
*
* Client check
*
*/

function getClient() {
  // convert all characters to lowercase to simplify testing
  var agt = navigator.userAgent.toLowerCase();
  var apv = navigator.appVersion.toLowerCase();
  this.major = parseInt(navigator.appVersion, 10);
  this.minor = parseFloat(navigator.appVersion, 10);
  // browserversion
  this.opera = (agt.indexOf('opera') != -1);
  this.ns = ((agt.indexOf('mozilla') != -1) && ((agt.indexOf('spoofer') == -1) && (agt.indexOf('compatible') == -1)));
  this.ns4 = (this.ns && (this.minor >= 4.03) && (this.major < 5));
  this.ns6 = (this.ns && (this.major == 5) || this.opera);
  this.gecko = (this.ns && (this.major >= 5));
  this.ie = (agt.indexOf("msie") != -1);
  this.ie4 = (this.ie && (this.major == 3));
  this.ie45 = (agt.indexOf('msie 4.5') != -1);
  this.ie5 = (this.ie && (this.major == 4));
  this.ie7 = (agt.indexOf('msie 7') != -1);
  this.ie8 = (agt.indexOf('msie 8') != -1);
  this.ie6 = (!(this.ie7 || this.ie8) && agt.indexOf('msie 6') != -1);
  // platform
  this.mac = (apv.indexOf("macintosh") > 0);
  this.win = (apv.indexOf("win") > 0);
  // compatible browsers
  this.ie4comp = ((this.ie4 && !this.mac) || this.ie45 || this.ie5);
  this.ns4comp = (this.ns4);
  this.ns6comp = (this.gecko || this.ns6);
  this.comp = (this.ie4comp || this.ns4comp || this.ns6comp);
  return (this);
}

var is = new getClient();

/**
* Ondersteuning voor innerText in FireFox
*/
if (!is.ie && is.gecko) {
  HTMLElement.prototype.__defineGetter__("innerText", function() { return this.textContent; });
  HTMLElement.prototype.__defineSetter__("innerText", function(txt) { this.textContent = txt; });
}

/**
*
* Get Element
*
*/

function getElt(eltName, frameName) {
  var elt = null;
  var refDoc = getFrameDocument(frameName);

  elt = refDoc.getElementById(eltName);
  return (elt);
}

function getFrameDocument(frameName) {
  var refFrame = (frameName) ? getFrame(frameName) : null;
  var refDoc = refFrame ? (refFrame.document || refFrame.contentWindow.document) : document;
  if (refDoc.document) refDoc = refDoc.document;
  return refDoc;
}

/**
* Get all elements
*/
function getAllElts(nameId) {
  if (document.all) {
    return document.all[nameId];
  } else {
    if (document.getElementsByTagName('*') && document.getElementsByTagName('*').length > 0) {
      var eltLst = document.getElementsByTagName('*');
      var returnLst = new Array();
      for (var i = 0; i < eltLst.length; i++) {
        if (eltLst[i].id == nameId || eltLst[i].name == nameId) {
          returnLst[returnLst.length] = eltLst[i];
        }
      }

      if (returnLst.length == 1) {
        return returnLst[0];
      } else if (returnLst.length > 1) {
        return returnLst;
      } else {
        return null;
      }
    } else if (getElt(nameId)) {
      return getElt(nameId);
    } else {
      return null;
    }
  }
}

function getFrame(frameName, refWindow) {
  var fr = null;

  if (!refWindow) refWindow = window;
  for (var frameIndex = 0; frameIndex < refWindow.frames.length; frameIndex++) {
    var frame = refWindow.frames[frameIndex];
    if (frame.name == frameName) {
      return frame;
    }
  }

  return refWindow.document.getElementById(frameName);
}

function setEltPosition(elt, value) {
  if (!elt) return;
  elt.style.position = value;
}

function setEltLeft(elt, x) {
  if (!elt) return;
  elt.style.left = (x + "px");
}

function setEltTop(elt, y) {
  if (!elt) return;
  elt.style.top = y + "px";
}

function getElementTop(Elem) {
  if (is.ns4comp) {
    var elem = getObjNN4(document, Elem);
    return elem.pageY;
  } else {
    if (document.getElementById) {
      var elem = document.getElementById(Elem);
    } else if (document.all) {
      var elem = document.all[Elem];
    }
    yPos = elem.offsetTop;
    tempEl = elem.offsetParent;
    while (tempEl != null) {
      yPos += tempEl.offsetTop;
      tempEl = tempEl.offsetParent;
    }
    return yPos;
  }
}

function setEltHeight(elt, h) {
  if (!elt) return;
  elt.style.height = h + "px";
}

function getEltHeight(elt) {
  if (!elt) return 0;
  return isNumber(elt.offsetHeight) ? elt.offsetHeight : elt.clientHeight;
}

function setEltWidth(elt, w) {
  if (!elt) return;
  elt.style.width = w + "px";
}

function getEltWidth(elt) {
  if (!elt) return 0;
  return elt.offsetWidth;
}

function setEltDisplay(elt, displayValue) {
  if (!elt) return;
  elt.style.display = displayValue;
}

function getEltDisplay(elt) {
  if (!elt) return "";
  return elt.style.display;
}

function setEltVisibility(elt, visibilityValue) {
  if (!elt) return;
  elt.style.visibility = visibilityValue;
}

function getWinHeight() {
  return isNumber(window.innerHeight) ? window.innerHeight : document.body.clientHeight;
}

function getWinWidth() {
  return isNumber(window.innerWidth) ? window.innerWidth : document.body.clientWidth;
}

function getWinScrollLeft() {
  return isNumber(window.pageXOffset) ? window.pageXOffset : document.body.scrollLeft;
}

function getWinScrollTop() {
  return isNumber(window.pageYOffset) ? window.pageYOffset :
    document.documentElement && isNumber(document.documentElement.scrollTop) ? document.documentElement.scrollTop :
    isNumber(document.body.scrollTop) ? document.body.scrollTop :
    0;
}

function isNumber(v) {
  return typeof (v) == "number";
}

function getWindowInnerHeight() {
  var myHeight = 0;
  if (isNumber(window.innerHeight)) {
    //Non-IE
    myHeight = window.innerHeight;
  } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
  } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
  }
  return myHeight;
}

// Functie om een methode 'onResize' uit te voeren
function onResize(method) {
  if (is.ns4comp || is.ns6comp) {
    return window.onresize = method;
  } else {
    document.body.onresize = method;
  }
}

// Functie om een methode 'onScroll' uit te voeren
function onScroll(method) {
  if (is.ns4comp || is.ns6comp) {
    return window.onscroll = method;
  } else {
    document.body.onscroll = method;
  }
}

function setEltClip(elt, cliptop, clipright, clipbottom, clipleft) {
  if (is.ns4comp) {
    elt.clip.left = clipleft;
    elt.clip.top = cliptop;
    elt.clip.right = clipright;
    elt.clip.bottom = clipbottom;
  }
  else if (is.ie4comp) elt.style.clip = 'rect(' + cliptop + ' ' +
       clipright + ' ' + clipbottom + ' ' + clipleft + ')';
  else if (is.ns6comp) elt.style.clip = 'rect(' + cliptop + ' ' +
       clipright + ' ' + clipbottom + ' ' + clipleft + ')';
}

function setEltClass(elt, className) {
  if (!elt || elt == null) return;
  elt.className = className;
}

function hasEltClass(elt, checkValue) {
  if (!elt || elt == null) return false;
  else {
    return (elt.className.indexOf(checkValue) > -1);
  }
}

// returns array of elements with class classname
function getElementsByClassName(classname) {
  var a = [];
  var re = new RegExp('\\b' + classname + '\\b');
  var els = document.all ? document.all : document.getElementsByTagName("*");
  for (var i = 0, j = els.length; i < j; i++)
    if (re.test(els[i].className)) a.push(els[i]);
  return a;
}

// add & remove css classes
function addEltClass(el, clName) {
  if (el) {
    if (el.className.indexOf(clName) < 0)
      el.className += " " + clName;
  }
}

function removeEltClass(el, clName) {
  if (el)
    el.className = el.className.replace(clName, "");
}

function replaceEltClass(el, oldName, newName) {
  if (el)
    el.className = el.className.replace(oldName, newName);
}

function clickElt(elt) {
  if (!elt || elt == null) return;
  if (is.ie4comp) elt.click();
  else if (elt.onclick) elt.onclick();
}

function hasInnerNodes(elt) {
  return elt && elt.hasChildNodes();
}

function setInnerText(elt, code) {
  if (!elt || elt == null) return;
  if (is.ie4comp) elt.innerText = code;
  else if (is.ns6comp) {
    while (elt.childNodes.length > 0) {
      var delNode = elt.childNodes[0];
      elt.removeChild(delNode);
    }
    elt.appendChild(document.createTextNode(code));
  }
}

function getInnerText(elt) {
  if (!elt || elt == null) return "";
  if (elt.innerText) return elt.innerText;
  else {
    var r = elt.ownerDocument.createRange();
    r.selectNodeContents(elt);
    return r.toString();
  }
}

function setInnerHTML(elt, code) {
  if (!elt || elt == null) return;
  elt.innerHTML = code;
}

/**
* Create a DOM-object for IE-shit
**/
function createDOM(str) {
  var newNode = document.createElement('tempNode');
  newNode.innerHTML = str;
  return newNode.childNodes[0];
}

function setOuterHTML(elt, outerHTML) {
  if (elt && (outerHTML == null || outerHTML == '')) {
    if (elt.outerHTML) {
      //ie5+
      elt.outerHTML = '';
    }
    else if (elt.parentNode) {
      elt.parentNode.removeChild(elt);
    }
  } else if (elt) {
    if (elt.outerHTML) {
      //ie5+
      elt.outerHTML = getOuterHTML(outerHTML);
    }
    else if (elt.parentNode) {
      elt.parentNode.replaceChild(outerHTML, elt);
    }
  }
}

function getOuterHTML(elt) {
  if (elt.outerHTML) {
    return elt.outerHTML;
  }
  else {
    var strOuter = "";
    var iEmpty = /^(img|embed|input|br|hr)$/i;
    switch (elt.nodeType) {
      case 1:
        strOuter += "<" + elt.nodeName.toLowerCase();
        strOuter += getAttributes(elt);
        if (elt.nodeName.match(iEmpty)) {
          strOuter += " />";
        } else {
          strOuter += ">" + getInsideNodes(elt);
          strOuter += "</" + elt.nodeName.toLowerCase() + ">";
        }
        break;
      case 3:
        strOuter += elt.nodeValue;
        break;
      case 8:
        cNodesStr += "<!--" + elt.nodeValue + "-->";
        break;
    }
    return strOuter;
  }
}

function getAttributes(elt) {
  var attStr = "";
  if (elt && elt.attributes.length > 0) {
    for (a = 0; a < elt.attributes.length; a++) {
      attStr += " " + elt.attributes.item(a).nodeName + "=\"";
      attStr += elt.attributes.item(a).nodeValue + "\"";
    }
  }
  return attStr;
}

function getInsideNodes(elt) {
  if (elt) {
    var cNodesStr = "", i = 0;
    var iEmpty = /^(img|embed|input|br|hr)$/i;
    var cNodes = elt.childNodes;
    for (i = 0; i < cNodes.length; i++) {
      switch (cNodes.item(i).nodeType) {
        case 1:
          cNodesStr += "<" + cNodes.item(i).nodeName.toLowerCase();
          if (cNodes.item(i).attributes.length > 0) {
            cNodesStr += getAttributes(cNodes.item(i));
          }
          cNodesStr += (cNodes.item(i).nodeName.match(iEmpty)) ? "" : ">";
          if (cNodes.item(i).childNodes.length > 0) {
            cNodesStr += getInsideNodes(cNodes.item(i));
          }
          if (cNodes.item(i).nodeName.match(iEmpty)) {
            cNodesStr += " />";
          } else {
            cNodesStr += "</" + cNodes.item(i).nodeName.toLowerCase() + ">";
          }
          break;
        case 3:
          cNodesStr += cNodes.item(i).nodeValue;
          break;
        case 8:
          cNodesStr += "<!--" + cNodes.item(i).nodeValue + "-->";
          break;
      }
    }
    return cNodesStr;
  }
}

/**
*
* Return Integer from String with leading zeroes
*
* @param s String, ie.00000002
*
* @return Integer
*
*/

function parseDigitString(s) {
  while (s.length > 1 && s.substring(0, 1) == "0") {
    s = s.substring(1, s.length);
  }
  return (isNaN(parseInt(s, 10)) ? 0 : parseInt(s, 10));
}


/**
*
* Return String with leading zeroes based on integer
*
* @param num    Integer
* @param digits desired length of resulting String
*
* @return String
*
*/

function putDigitString(num, digits) {
  num = "" + num;
  while (num.length < digits) {
    num = "0" + num;
  }
  return (num);
}


/**
*
* Return String with URL based on array
*
* @param arr     Array with name-value pairs for arguments
* @param baseUrl String with base, ie. page.jsp
*
* @return String
*
*/

function makeUrlFromArray(arr, baseUrl) {
  for (var i = 0; i < arr.length - 1; i += 2) {
    baseUrl += (i == 0 ? "?" : "&") + arr[i] + "=" + libUrlEncode(arr[i + 1]);
  }
  return baseUrl;
}


/**
*
* URL encode string
*
* @param string String to encode
*
* @return Encoded string
*
*/

function libUrlEncode(string) {
  return escape(string).replace(new RegExp("\\+", "g"), "%2B");
}


/**
*
* Return Array with name-value pairs stripped from String
*
* @param baseUrl URL string, ie. page.jsp?x=1&y=2
*
* @return Array
*
*/

function makeArrayFromUrl(baseUrl) {
  propArray = new Array();
  pos = baseUrl.indexOf("?", 0) + 1;
  while (baseUrl.indexOf("=", pos) != -1) {
    propArray[propArray.length] = baseUrl.substring(pos, baseUrl.indexOf("=", pos));
    endpos = baseUrl.indexOf("&", pos + 1) != -1 ? baseUrl.indexOf("&", pos + 1) : baseUrl.length;
    propArray[propArray.length] = baseUrl.substring(baseUrl.indexOf("=", pos) + 1, endpos);
    pos = endpos + 1;
  }
  return (propArray);
}


/**
*
* Return whether (and if, with which position) value is in Array
*
* @param tArray  Array
* @param value   testValue
*
* @return Integer, or false
*
*/

function inArray(tArray, value) {
  for (var y = 0; y < tArray.length; y++) {
    if (tArray[y] == value) {
      return y;
      break;
    }
  }
  return false;
}

/* Improved version : */

function indexOfArray(tArray, value) {
  for (var y = 0; y < tArray.length; y++) {
    if (tArray[y] == value) {
      return y;
      break;
    }
  }
  return -1;
}

function addArrayToArray(baseArray, newArray) {
  for (var i = 0; i < newArray.length; i++) {
    baseArray[baseArray.length] = newArray[i];
  }
  return baseArray;
}

function toHex(decimal) {
  if (decimal == 0) return ("00");
  else if (decimal > 255) return ("ff");
  else {
    factor = 256;
    hex = '';

    while ((decimal / factor) < 1 && (decimal / factor) > 0) {
      hex += '0';
      factor /= 16;
    }
    hex = hex.substring(1, hex.length);
    restant = decimal;

    while (factor >= 1) {
      getal = Math.floor(restant / factor);
      restant -= (getal * factor);

      if (getal < 10) hex += getal + '';
      if (getal == 10) hex += 'a';
      if (getal == 11) hex += 'b';
      if (getal == 12) hex += 'c';
      if (getal == 13) hex += 'd';
      if (getal == 14) hex += 'e';
      if (getal == 15) hex += 'f';

      factor /= 16;
    }

    return (hex);
  }
}

function fromHex(hex) {
  var decimal = 0;
  var charset = "0123456789abcdef";
  hex = ("" + hex).toLowerCase();
  for (var i = 0; i < hex.length; i++) {
    decimal = 16 * decimal + charset.indexOf(hex.charAt(i));
  }
  return decimal;
}

function hiColors(baseColor, f) {
  baseR = parseInt("0x" + baseColor.substring(1, 3), 16);
  baseG = parseInt("0x" + baseColor.substring(3, 5), 16);
  baseB = parseInt("0x" + baseColor.substring(5, 7), 16);

  if (isNaN(baseR) || isNaN(baseG) || isNaN(baseB)) {
    baseR = 255;
    baseG = 255;
    baseB = 255;
  }

  if (baseR < 0) baseR = 0;
  else if (baseR > 255) baseR = 255;
  if (baseG < 0) baseG = 0;
  else if (baseG > 255) baseG = 255;
  if (baseB < 0) baseB = 0;
  else if (baseB > 255) baseB = 255;

  colR = new String(toHex(Math.round(baseR * f)));
  colG = new String(toHex(Math.round(baseG * f)));
  colB = new String(toHex(Math.round(baseB * f)));

  return ("#" + colR + colG + colB);
}

/**
*
* View general help
*
*/

function openGeneralHelp() {
  if (helpUrl) {
    return viewHelp(helpUrl);
  }
  else {
    alert("De locatie van de IPROX help is niet ingesteld");
  }
  return false;
}

/**
*
* View specific help for this help
*
*/

function openScreenHelp() {
  if (helpUrl) {
    return viewHelp(currentHelpUrl);
  }
  else {
    alert("De locatie van de IPROX help is niet ingesteld");
  }
  return false;
}

/**
*
* XML DOM-object terugsturen
*
*/
function loadXML(text) {
  var doc = null;
  var encText = text.replace(new RegExp("&(?!#?\\w+;)", "g"), "&amp;");
  // code for IE
  if (window.ActiveXObject) {
    var doc = new ActiveXObject("Microsoft.XMLDOM");
    doc.async = "false";
    doc.loadXML(encText);
  }
  // code for Mozilla, Firefox, Opera, etc.
  else {
    var parser = new DOMParser();
    var doc = parser.parseFromString(encText, "text/xml");
  }

  return doc;
}

/**
*
* Select nodes
*
*/
function SelectNodes(xmlDoc, elementPath) {
  if (window.ActiveXObject) {
    return xmlDoc.selectNodes(elementPath);
  } else {
    //var xpe = new XPathEvaluator();
    var nsResolver = xmlDoc.createNSResolver(xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
    var results = xmlDoc.evaluate(elementPath, xmlDoc, nsResolver, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);

    var nodes = new Array();
    if (results != null) {
      var element = results.iterateNext();
      while (element) {
        nodes.push(element);
        element = results.iterateNext();
      }
    }
    return nodes;
  }
}

/**
*
* Select single node
*
*/
function SelectSingleNode(xmlDoc, elementPath) {
  if (window.ActiveXObject) {
    return xmlDoc.selectSingleNode(elementPath);
  } else {
    //var xpe = new XPathEvaluator();
    // FIRST_ORDERED_NODE_TYPE returns the first match to the xpath.
    var nsResolver = xmlDoc.createNSResolver(xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);
    var result = xmlDoc.evaluate(elementPath, xmlDoc, nsResolver, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
    if (result != null) {
      return result.singleNodeValue;
    } else {
      return null;
    }
  }
}

/**
*
* Get XML output
*
*/
function getXML(xmlDoc) {
  if (window.ActiveXObject) {
    return xmlDoc.xml;
  } else {
    try {
      var xmls = new XMLSerializer();
      var output = xmls.serializeToString(xmlDoc);
      return output;
    } catch (e) {
      alert(e);
    }
  }
}

function setAttr(element, name, value) {
  var attribute = element.getAttributeNode(name);
  if (attribute) {
    element.removeAttributeNode(attribute);
  }
  attribute = document.createAttribute(name);
  attribute.nodeValue = value;
  element.setAttributeNode(attribute);
}

function getTinySelectedElement(nodeName) {
  var tinyInstance = tinyMCE.selectedInstance;
  var rtv = tinyInstance.selection.getSel() ? tinyInstance.selection.getSel().focusNode : null;
  if (!rtv) {
    rtv = tinyInstance.selection.getFocusElement();
  }
  while (rtv && rtv.nodeName != "BODY") {
    if (rtv.nodeName == nodeName.toUpperCase()) {
      tinyInstance.selection.selectNode(rtv, false, false, true);
      return rtv;
    }
    rtv = rtv.parentNode;
  }
  rtv = tinyInstance.selection.getSel() ? tinyInstance.selection.getSel().focusNode : null;
  if (!rtv) {
    rtv = tinyInstance.selection.getFocusElement();
  }
  // Get deepest element
  while (!rtv.nodeName || rtv.nodeName && rtv.nodeName.indexOf("#") >= 0) {
    rtv = rtv.parentNode;
  }
  var html = tinyInstance.selection.getSelectedHTML();
  // Expand while in part of selection
  while (html && rtv.parentNode && html.indexOf(rtv.parentNode.outerHTML) >= 0) {
    rtv = rtv.parentNode;
  }
  if (html && html.indexOf(rtv.outerHTML) >= 0) {
    return rtv;
  }
  else {
    return tinyMCE.createTag(document,
                             "div",
                             {},
                             tinyInstance.selection.getSelectedHTML());
  }
}

var tinyMceInlinePopupName = null;

function resizeInlinePopupDialog() {
  if (parent.parent.mcWindows && parent.parent.mcWindows.onLoad && top.tinyMceInlinePopupName) {
    parent.parent.mcWindows.onLoad(top.tinyMceInlinePopupName);
  }
  if (top.tinyMCE_fullscreen) {
    top.scroll(0, 0);
  }
}

function tryClick(id) {
  if ($('#' + id).get(0).onclick) {
    $('#' + id).get(0).onclick();
  }
}

function cancelBubble(e) {
  if (!e && window.event) {
    var e = window.event;
  }
  if (e) {
    e.cancelBubble = true;
    if (e.stopPropagation) {
      e.stopPropagation();
    }
  }
}

function showModalBackground(bool) {
  var modal = document.getElementById('ModalWindow');
  if (bool) {
    // show background
    setEltDisplay(modal, 'block');
    if (document.body.scrollHeight > getWindowInnerHeight()) {
      setEltHeight(modal, document.body.scrollHeight);
    } else {
      setEltHeight(modal, getWindowInnerHeight());
    }
    if (curZIndex) {
      modal.style.zIndex = (curZIndex - 2);
    } else {
      modal.style.zIndex = 1;
    }
  } else {
    setEltDisplay(modal, 'none');
  }
}

function addToCookie(c_name, value) {
  var cur_value = getCookie(c_name);
  if (cur_value != null && cur_value != '') {
    cur_value += ',';
  }
  cur_value += value;
  setCookie(c_name, cur_value, 14);
}

function setCookie(c_name, value, expiredays) {
  var exdate = new Date();
  exdate.setDate(exdate.getDate() + expiredays);
  document.cookie = c_name + "=" + value + ((expiredays == null) ? "" : "; expires=" + exdate.toGMTString());
}

function getCookie(c_name) {
  var c_start, c_end;
  if (document.cookie.length > 0) {
    c_start = document.cookie.indexOf(c_name + "=");
    if (c_start != -1) {
      c_start = c_start + c_name.length + 1;
      c_end = document.cookie.indexOf(";", c_start);
      if (c_end == -1) {
        c_end = document.cookie.length;
      }
      return unescape(document.cookie.substring(c_start, c_end));
    }
  }
  return "";
}

function myTrim(str) {
  var begin = 0;
  while (begin < str.length &&
          (str.charAt(begin) == ' ' ||
           str.charAt(begin) == '\t' ||
           str.charAt(begin) == '\r' ||
           str.charAt(begin) == '\n')) {
    begin++;
  }
  var end = str.length;
  while (end > begin &&
          (str.charAt(end - 1) == ' ' ||
           str.charAt(begin) == '\t' ||
           str.charAt(begin) == '\r' ||
           str.charAt(begin) == '\n')) {
    end--;
  }
  return str.substring(begin, end);
}

var liveTimer = null;
function keepAlive() {
  liveTimer = window.setTimeout('liveUp()', 120000);
}

function liveUp() {
  clearTimeout(liveTimer);
  goFrame(iprox_get + "?AppIdt=00000505", "AliveFrame");
}

function stripRoot(xmlString, tagName) {
  // containing Tag wegslopen
  var tag = tagName ? tagName : "span";
  var lower = xmlString.toLowerCase();
  var begin = lower.indexOf("<" + tag + ">");
  var end = lower.lastIndexOf("</" + tag + ">");
  if (begin >= 0 && end > begin) {
    begin += 2 + tag.length;
    return myTrim(xmlString.substring(begin, end));
  }
  else if (lower == "<" + tag + "/>" || lower == "<" + tag + " />") {
    return "";
  }
  else {
    return xmlString;
  }
}

function ensureRoot(xmlString, tagName) {
  // containing Tag garanderen
  var tag = tagName ? tagName : "span";
  var lower = xmlString.toLowerCase();
  var open = "<" + tag + ">";
  var close = "</" + tag + ">";
  var begin = lower.indexOf(open);
  var end = lower.lastIndexOf(close);
  if (begin >= 0 && end > begin) {
    begin += 2 + tag.length;
    return xmlString;
  }
  else if (lower == "<" + tag + "/>" || lower == "<" + tag + " />") {
    return xmlString;
  }
  else {
    return open + xmlString + close;
  }
}

String.prototype.format = function(args) {
  var pattern = /\{\d+\}/g;
  args = $.isArray(args) ? args : [args];
  return this.replace(pattern, function(capture) { return args[parseInt(capture.match(/\d+/), 10)]; });
};


function isShiftPressed(e) {
  e = e || (window.event || window.Event);

  var opcode = 0; // 0=zoom in, 1=zoom to extent (ctrl), 2=pan(shift)

  if (e) {
    if (typeof (e.shiftKey) != 'undefined') {
      if (e.shiftKey) { opcode |= 2; }
    }
    else {
      if (e.modifiers & Event.SHIFT_MASK) { opcode |= 2; }
    }
  }

  return (opcode == 2);
}

function isCtrlPressed(e) {
  e = e || (window.event || window.Event);

  var opcode = 0; // 0=zoom in, 1=zoom to extent (ctrl), 2=pan(shift)

  if (e) {
    if (typeof (e.ctrlKey) != 'undefined') {
      if (e.ctrlKey) { opcode |= 1; }
    }
    else {
      if (e.modifiers & Event.CONTROL_MASK) { opcode |= 1; }
    }
  }

  return (opcode == 1);
}

function isUrl(url) {
  return url.match(/^mailto:\w+([.-]\w+)*@([a-z0-9-]+\.)+[a-z]{2,5}|[a-z]+:(\/{2}|\\{2})((\w+|%[a-fA-F\d]{2})+(:(\w+|%[a-fA-F\d]{2})+)?@)?(\w[-\w]{0,253}\w\.)+\w+(:\d+)?(\/([-+_~.\/\w?&amp;=''!*(|)]+|%[a-fA-F\d]{2})*(#([-+_~.\w]+|%[a-fA-F\d]{2})*)?)?$/);
}

function updateStructuur(itmIdts, sitIdt, godIdt) {
  $.ajax({
    url: iprox_read,
    context: document.body,
    data: {
      AppIdt: "00001111",
      ItmIdt: itmIdts,
      SitIdt: sitIdt,
      GodIdt: godIdt
    },
    error: function(request, textStatus, errorThrown) {
      var errorText = errorThrown ? errorThrown.description ? errorThrown.description : errorThrown.toString() : "???";
      alert(textStatus + ": " + errorText);
    },
    success: function(data, textStatus, request) {
      $(data).children("*[id]").each(function() {
        $("#" + this.id).replaceWith(this);
      });
    }
  });
}

function tryOpener() {
  $("a.try-opener")
  .attr("target", "_top")
  .css({
    cursor: "pointer"
  })
  .click(function(event) {
    var url = $(event.target).closest("a").attr("href");
    var go = function(w) {
      try {
        w.location = url;
        w.focus();
        event.stopPropagation();
        event.stopImmediatePropagation();
        event.preventDefault();
        return true;
      }
      catch (e) {
        return false;
      }
    };
    if (go(window.opener)) return;
    if (go(window.top)) return;
  });
}
$(tryOpener);

function setStatus(e) {
  try {
    window.status = e ? e.description ? e.description : e : "";
  }
  catch (x) {
  }
}
