/*
Generic functions for www.kindermonument.nl
Copyright (c) 2003 Ylab, Utrecht, NL
Author: Yohan Creemers
version 1.6
1.1: Added event handling
1.2: Added propertie handling (style, top and height)
1.3: Set document title in status bar
1.4: Hide horizontal scrollbar in msie 5.5+
     Added printMail()
1.5: Added generic relativeRoot() function
1.6: Added printAge() function
*/

//generic event handling
window.onerror = function (msg, url, line){
  window.status = "Er is een fout opgetreden. Meld dit a.u.b. aan de webmaster. | " + line + ": " + msg;
  return true;
}

var scrollFunctions = new Array();
function addScrollFunction(f){scrollFunctions[scrollFunctions.length] = new Function(f);}
window.onscroll = function() {for (var i=0; i<scrollFunctions.length; i++){scrollFunctions[i]();}}

var loadFunctions = new Array();
function addLoadFunction(f)  {loadFunctions[loadFunctions.length] = new Function(f);}
window.onload   = function() {for (var i=0; i<loadFunctions.length; i++){loadFunctions[i]();}}

addLoadFunction("window.status = document.title;");

var isOpera = (navigator.userAgent.indexOf("Opera") > -1);
var isNav = ((!isOpera) && (navigator.appName == "Netscape"));
var isIE  = ((!isOpera) && (navigator.appName.indexOf("Explorer") > -1 ));
var versionMajor = parseInt(navigator.appVersion);
if (isOpera){ var versionMinor = parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf("Opera")+6));}
else if (isIE){ var versionMinor = parseFloat(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5));}
else{ var versionMinor = parseFloat(navigator.appVersion);}

if (isOpera){
  document.write('<link rel="stylesheet" href="includes/opera.css" />');
}
else if (isNav){
  document.write('<link rel="stylesheet" href="includes/navigator.css" />');
  addLoadFunction("resizeMainDiv();");
  window.onresize = function() {resizeMainDiv();}
}
function resizeMainDiv(){
  var obj = document.getElementById('main');
  if (!obj){return}
  var w = window.innerWidth - 110;
  var h = window.innerHeight - 220;
  obj.style.width =  w + "px;";
  obj.style.height =  h + "px;";
}
//----------------------------------------------------------------------

//preload hover images when document is loaded
var hoverImages = new Array();

/*Prepare image for hover effect
  Sample use:
  <img onload="imgHover('img01')">
  <img onload="imgHover(this)">
  <img onload="imgHover(this, 'hover.gif')">
  <img onload="imgHover(this, 'text=image')">

  img: image object or image id;
  srcHover: url of hover image [optional]
           : when omitted, the postfix "-hover" is added to the original image path
           : when containing an is-character (=) a part of the original url is altered (e.g. 'text=image')
*/
function imgHover(img, srcHover, hotspot){
  //Initialize only once
  img = id2object(img);
  if (img.initialized){return;}

  //Set properties
  img.initialized = true;//been here
  img.srcNormal = img.src;
  if (srcHover){
    if (srcHover.indexOf("=") != -1){
      //replace part of original url
      var pair = srcHover.split("=");
      img.srcHover=img.src.replace(pair[0],pair[1])
    }
    else{img.srcHover = srcHover;}
  }
  else{
    //add -hover by default
    var extpos = img.src.lastIndexOf(".");
    img.srcHover = img.src.substring(0,extpos) + "-hover" + img.src.substring(extpos);
  }
  hoverImages[hoverImages.length] = img.srcHover;
  preloadImages(img.srcHover);
  //Assign hotspot events
  if (arguments.length < 3){var el=img;}
  else {var el = id2object(hotspot)}
  el.onmouseover = function() {img.src = img.srcHover;}
  el.onmouseout  = function() {img.src = img.srcNormal;}
  //debug aid:
  //el.onclick     = function() {alert(loadFunctions.join('\n'));}
}

function preloadImages(){
  for(var i=0; i < arguments.length; i++) {
    var code = "(new Image()).src = '" + arguments[i] +"';";
    addLoadFunction(code);
  }
}

//Convert id into object
function id2object(el){
  if (typeof(el)=="string"){el = document.getElementById(el);}
  return el;
}

//set a style property or fail gracefully
function setStyle(objectId, prop, value){
  var obj = document.getElementById(objectId);
  if ((obj) && (obj.style[prop] != value)){
    obj.style[prop] = value;
  }
}
/*
//reading and setting the Y position
setLayerTop = new Function('arguments[0].style.pixelTop = arguments[ 1 ];');
getLayerTop = new Function('return arguments[0].style.pixelTop;');

function calculateHeight(){
  if (document.height){
    document.pageHeight = document.height;
  }
  else{
	  var curHeight = parseInt(document.body.clientHeight) + parseInt(document.body.scrollTop);
	  if (!document.pageHeight){document.pageHeight = 0;}
	  document.pageHeight = Math.max(curHeight, document.pageHeight);
	}
}

function fitToPageHeight(objId){
  calculateHeight();
  var code = "setStyle('" + objId + "', 'height', " + document.pageHeight + ")";
  //wait until browser is idle
  setTimeout(code, 1);
}
*/
function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function getParameters(){
  var s = unescape(document.location.search.substring(1));
  var param = new Object();
  var pairs = s.split("&");
  for (var i=0; i<pairs.length; i++){
    var pair = pairs[i].split("=");
    param[pair[0]] = (pair[1]) ? pair[1] : null;
  }
  return param;
}
function printMail(username, linktext){
  username = username.toLowerCase() + "@coornhertstraat.nl";
  if (!linktext) {linktext = username;}
  document.write(linktext.link("mailto:" + username));
}
/*
Visitor registration
Copyright (c) 2003 Ylab, Utrecht, NL
Author: Yohan Creemers
version 1.0
*/
register();
function register(){
  var nav = navigator.appName;
  var scrc = "na";
  var scrw = "na";
  var scrh = "na";
  var scraw = "na";
  var scrah = "na";
  var jsv = "1"
  var cabl = "na";
  if (document.URL){jsv = "1.1";}
  if (screen){
    scrw = screen.width;
    scrh = screen.height;
    scraw = screen.availWidth;
    scrah = screen.availHeight;
    nav != "Netscape" ? scrc = screen.colorDepth : scrc = screen.pixelDepth;
    jsv = "1.2";
  }
  if (navigator.cookieEnabled !=null){cabl = navigator.cookieEnabled;}

  var param = "ref=" + escape(document.referrer);
  addParam("name", "coornhert");
  addParam("src", scrc);
  addParam("srw", scrw);
  addParam("srh", scrh);
  addParam("sraw", scraw);
  addParam("srah", scrah);
  addParam("jsv", jsv);
  addParam("cabl", cabl);

  var d=new Image();
  d.src="http://www.ylab.nl/cgi-bin/counter/count3r.cgi?"+param;

  function addParam(s, v){
    param += "&"  + s + "=" + v;
  }
}
