function getElementsByClassName(oElm, strTagName, strClassName)
{
  if(oElm.getElementsByTagName)
  {
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++)
    {
      oElement = arrElements[i];      
      if(oRegExp.test(oElement.className))
      {
        arrReturnElements.push(oElement);
      }   
    }
    return (arrReturnElements)
  }
  var emtyResult = new Array();;
  return emtyResult;
}

function updateCartNumber(number)
{
  if(elem = document.getElementById('cartNumber'))
  {
    elem.innerHTML = number;
  }
}

function updateSelect(id, type, value)
{
  var url     = '/scripts/retrieve_subselect_options.php';
  var params  = 'type=' + type + '&value=' + value;
    
  updateSelectAfterId = id;
  
  remoteRequest(url, params, 'updateSelectAfter', 'POST');
}

function updateSelectAfter()
{
  if(select = document.getElementById(updateSelectAfterId))
  {
    select.length = 0;
    select.options[0] = new Option('', '');
       
    if (http_request && http_request.readyState == 4 && http_request.status == 200 && http_request.responseText!='')
    {
      domElement = new xml();
      domElement.loadXML(http_request.responseText);
      elements = domElement.dom.getElementsByTagName('option');
      
      if(elements.length > 0)
      {
        for(i=0; i < elements.length; i++)
        {
          value = domElement.getNodeValue(elements[i]);
          select.options[i+1] = new Option(value, value);
        }
      }
    }
    
    select.style.display = 'inline';
  }
}

String.prototype.trim=function(){return this.replace(/(^\s+)|\s+$/g,"");}; 

function goodchars(e,good,noEnter)
{
  var key, keychar;
  key = getkey(e);
  if (key == null)
  {
    return true;
  }

  keychar = String.fromCharCode(key);
  keychar = keychar.toLowerCase();
  good = good.toLowerCase();

  if (good.indexOf(keychar) != -1 || (noEnter==false && key==13) || (key==null) || (key==0) || (key==8) || (key==9) || (key==27))
  {
    return true;
  }

  return false;
}

function getkey(e)
{
  if (window.event)
  {
    return window.event.keyCode;
  }
  else if (e)
  {
    return e.which;
  }
  return null;
}

function in_array(array,value)
{
  for (var i = 0; i < array.length; i++)
  {
    if (array[i] == value)
    {
      return true;
    }
  }
  return false;
}

function changeClass(newClassName, elem)
{
  elem.className = newClassName;
}

function getWindowSize()
{
  var width = 0, height = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    width = window.innerWidth;
    height = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    width = document.documentElement.clientWidth;
    height = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    width = document.body.clientWidth;
    height = document.body.clientHeight;
  }
  
  return new Array(width, height);
}

function removeElement(id)
{
  if(elem = document.getElementById(id))
  {
    elem.parentNode.removeChild(elem);
  }
}

function getDynamicContent(url, divId)
{
  if(dynamicContentDiv = document.getElementById(divId))
  {
    remoteRequest(url, null, 'placeDynamicContent', 'GET');
  }
}

function openclose(divId)
{
  if(div = document.getElementById(divId))
  {
    div.style.display = (!div.style.display || div.style.display=='none') ? 'block' : 'none';
  }
}

function loadImage(elemId, imgSrc)
{
  if (elem = document.getElementById(elemId))
  {
    elem.src = imgSrc;
  }
}

function placeDynamicContent()
{
  if (http_request && http_request.readyState == 4 && http_request.status == 200 && http_request.responseText!='')
  {
    dynamicContentDiv.innerHTML = http_request.responseText;
  }
}

function remoteRequest(url, parameters, onreadystate, requestType)
{
  var funcParameters      = remoteRequest.arguments;
  var asynchronicRequest  = true;
  if(funcParameters[3] != undefined)
    asynchronicRequest = (funcParameters[3]) ? true : false;

  http_request = false;
  error        = false;
  if (window.XMLHttpRequest)
  {
    try
    {
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType)
      {
        http_request.overrideMimeType('text/xml');
      }
    } catch (e) {
      error = true;
    }
  }
  else if (window.ActiveXObject)
  {
    try
    {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      try
      {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) {
        error = true;
      }
    }
  }
  if(!error)
  {
    eval("http_request.onreadystatechange = " + onreadystate + ";");
    http_request.open(((requestType!='GET') ? 'POST' : 'GET'), url, asynchronicRequest);
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    if(parameters)
    {
      http_request.setRequestHeader("Content-length", parameters.length);
    }
    http_request.setRequestHeader("Connection", "close");
    http_request.send(parameters);
  }
  else
  {
    eval(onreadystate+"(true);");
  }
}

function addEvent(elm, evType, fn, useCapture)
{
  if (elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent){
    var r = elm.attachEvent("on"+evType, fn);
    return r;
  }
}

function openRealPopup(url,width,height,name, scroll)
{
  var winl = (screen.width-width)/2;
  var wint = (screen.height-height)/2;
  if (winl < 0) winl = 0;
  if (wint < 0) wint = 0;
  if(!scroll)
    scroll = 'yes';
  if(!name)
    name = '';

  var popup = window.open(url, name, 'width=' + width + ',height=' + height + ',top=' + wint + ',left=' + winl + ',scrollbars=' + scroll + ',menubars=no,toolbar=no,location=no,status=no');
  if(!popup)
  {
    alert('U heeft een popup blocker. Deactiveer de popup blocker voor deze website om van alle functionaliteiten gebruik te kunnen maken');
    return false;
  }
  return popup;
}

