﻿var att_mthd = true;

if (window.addEventListener) {
  window.addEventListener("load",initPageFunctions,false);
}
else if (window.attachEvent) {
  window.attachEvent("onload",initPageFunctions);
  att_mthd = false;
}
else {
  window.onload = initPageFunctions;
}



function initPageFunctions() {
  if ( $('anvr') ) { initEvtLogos() }
  if ( $('menu_left') ) { initLeftMenu() }
  if ( $('tbl_mainmenu') ) { initMainMenu() }
  initBoxCallme();
}


function initEvtLogos() {
  var arr_logos, el, i, e;
  arr_logos = ('anvr#cal#sgr').split('#');

  var f_over = function() {
    e = ( att_mthd ) ? this : window.event.srcElement;
    e.src = e.src.replace('_faded', '');
  };

  var f_out = function() {
    e = ( att_mthd ) ? this : window.event.srcElement;
    e.src = e.src.replace('.gif', '_faded.gif');
  };

  for (i = 0; i < arr_logos.length; i++) {
    el = document.getElementById(arr_logos[i]);
    if (el.addEventListener) { // Chrome, Firefox, Safari
      el.addEventListener ("mouseover", f_over, false);
      el.addEventListener ("mouseout", f_out, false); }
    else if (el.attachEvent) { // IE
      el.attachEvent ("onmouseover", f_over );
      el.attachEvent ("onmouseout" , f_out );
    }
    else {
      el.onmouseover = f_over;
      el.onmouseout = f_out;
    }
  }
}


function initMainMenu() {

  var lm = $$('table#tbl_mainmenu td div');
  var li, nr;

  for (var j = 0; j < lm.length; j++) {
    if ( lm[j].id != '' ) {
      li = $(lm[j].id);
      if ( $(lm[j].id.replace('el_', '')) ) {
        li.observe('mouseover', this.buttonClick.bindAsEventListener(this, lm[j].id.replace('el_', ''), 'horz') );
      }
    }
  }

}


function initLeftMenu() {
  var lm = $('menu_left').childElements();
  var li, nr;
  for (var j = 0; j < lm.length; j++) {
    li = $(lm[j].id);
    if ( $('posimg_' + li.id.replace('el_', '')) ) {
      if (li.addEventListener) { // Chrome, Firefox, Safari
        li.addEventListener ("mouseover", lm_over, false);
        li.nr = li.id.replace('el_', '');
      }
      else if (li.attachEvent) { // IE
        //alert(li.id);
        li.attachEvent ("onmouseover", function() { lm_over(this) } );
      }
    }
  }
}


function lm_over(evt) {
  if ( att_mthd == true ) {
    return buttonClick(evt, evt["target"]["nr"], 'vert');
  }
  else {
    return buttonClick(event, window.event.srcElement.id.replace('el_', ''), 'vert');
  }
}


function initBoxCallme() {

  if ( $('box_callme') ) {

    var str_box_callme =
      '<form method="get" action="/ezine/abonneren.asp" name="frm_callme" id="frm_callme" onsubmit="return false;">'
      + '<p id="callme_msg">Bel ons op <span>078-6142788</span>. Of wij bellen u terug</p>'
      + '<div id="callme_field"><input type="text" id="tel" name="tel" size="20" value="uw telefoonnummer" class="frmTxt" onfocus="telErase();"></div>'
      + '<div id="callme_btn"><input id="btn_callme" type="image" src="/i/elements/buttons/btn_belmij.gif" alt="Bel mij" onclick="ajaxCallMe();"></div>'
      '</form>';

    $('box_callme').update(str_box_callme)

  }

}


function telErase() {
  if ( $('tel').value == 'uw telefoonnummer' ) { $('tel').value = '' }
}


function ajaxCallMe() {

  var tel = $('tel').value;

  if ( (tel == '') || (tel.length < 10) || (tel == 'uw telefoonnummer') ) {
    $('callme_msg').update('Uw telefoonnummer klopt niet');
  }
  else {

    var r_url = location.href;

    var xml_page = '/includes/ajax/ajax_callme_xml.asp'
    var xml_params = '?tel=' + tel + '&rurl=' + escape(r_url);
    //alert(xml_params);
    new Ajax.Request ( xml_page, { method: 'get', parameters: xml_params, onComplete: processCallMe } );

  }

}


function processCallMe(request) {

  //alert(request.responseXML.xml);

  var str_results = '';
  var rqxml = request.responseXML;
  var respons = rqxml.getElementsByTagName("respons")[0].firstChild.data;
  var phone = rqxml.getElementsByTagName("phone")[0].firstChild.data;
  var msg = rqxml.getElementsByTagName("msg")[0].firstChild.data;

  //alert('ok');

  $('callme_field').hide();
  $('callme_btn').hide();
  $('callme_msg').update(msg);

}


function sbStatsTrack(pagetype, pageid, cookiename, sessionid, urlhardcoded) {
  var imgStats = sbMakeStatsImg(pagetype, pageid, cookiename, sessionid, urlhardcoded, false);
  document.write(imgStats);
}


function sbMakeStatsImg(pagetype, pageid, cookiename, sessionid, urlhardcoded, ajaxcaller) {

  // detect cookie
  var cookieID   = ''
  if(document.cookie) {
  	var cookieName = cookiename;
  	var theCookie = document.cookie;
  	theCookie = unescape(theCookie);
  	var firstChar = theCookie.indexOf(cookieName);
  	if(firstChar != -1) {
  		firstChar += cookieName.length + 1;
  		var lastChar = theCookie.indexOf(';', firstChar);
  		if(lastChar == -1) lastChar = theCookie.length;
  		cookieID = unescape(theCookie.substring(firstChar, lastChar) );
  	}
  }

  // detect language user
  taalUser = navigator.userLanguage;
  taalBrowser = navigator.browserLanguage;
  taalSystem = navigator.systemLanguage;
  if (taalUser != 'en-us') {taal = taalUser;}
  else if (taalSystem != 'en-us') {taal = taalSystem;}
  else if (taalBrowser != 'en-us') {taal = taalBrowser;}
  else {taal = taalUser;}
  if (taal == undefined) {taal = '-';}
  var userlang = taal ;

  // detect screen properties
  var w=screen.width;
  var h=screen.height;
  var c;
  if (screen.colorDepth) {c=screen.colorDepth} else {c=screen.pixelDepth}

  // detect refering page
  if ( ajaxcaller == true ) {
    var refererpage = '...';
  }
  else {
    var refererpage='' + escape(document.referrer);
  }


  // detect url this page (can be hardcoded)
  var urlpage_hc = urlhardcoded;
  if (urlpage_hc != '') { urlpage=escape(urlpage_hc) }
  else { urlpage='' + escape(document.URL) }

  var file  = '/_admin/sitetools/stats/count_sql.asp';
  var info;
  var str_return;

  var randomnumber = Math.floor(Math.random()*100000);

  info =
  '?w=' + w
  + '&h=' + h
  + '&c=' + c
  + '&r=' + refererpage
  + '&u='+ urlpage
  + '&cID=' + cookieID
  + '&p=' + pagetype
  + '&pID=' + pageid
  + '&sID=' + sessionid
  + '&l=' + userlang
  + '&rnd=' + randomnumber;

  str_return = '<img src="' + file + info + '" width="1" height="1" border="0" alt="" />';
  return str_return;

}


function ajaxQuickSubscribe() {

  var frm = document.frm_ezinequick;
  var val_email = frm.email.value;
  //alert('val_email: ' + val_email);
  var emailOK = emailCheck(val_email);

  if ( emailOK != '' ) {
    //alert(emailOK);
    $('ezinequick_respons').update(emailOK);
    $('ezinequick_respons').addClassName('err');
    $('ezinequick_respons').show();
    $('email').addClassName('err');
  }
  else {
    //alert('alles ok');
    var xml_page = '/includes/ajax/ajax_quick_subscribe_xml.asp'
    var xml_params = '?email=' + val_email;
    new Ajax.Request ( xml_page, { method: 'get', parameters: xml_params, onComplete: processQuickSubscribe } );
  }

}


function processQuickSubscribe(request) {

  var str_results = '';
  var rqxml = request.responseXML;
  var respons = rqxml.getElementsByTagName("respons")[0].firstChild.data;
  var email = rqxml.getElementsByTagName("email")[0].firstChild.data;

  if ( respons == 0 ) { // Already a member and activated
    $('ezinequick_respons').update('U bent reeds ingeschreven met dit e-mailadres.');
    $('ezinequick_respons').addClassName('err');
    $('ezinequick_respons').show();
    $('email').addClassName('err');
  }
  else if ( respons == 1 )  { // Already a member, but cancelled
    $('ezinequick_respons').update('U bent reeds ingeschreven met dit e-mailadres, maar u heeft in het verleden opgezegd.<br /><br />We hebben u een e-mail gestuurd met daarin een bevestigingslink. Wanneer u uw e-mail binnenhaalt en op deze link klikt, is uw inschrijving weer actief.');
    $('ezinequick_respons').addClassName('err');
    $('ezinequick_respons').show();
    $('email').addClassName('err');
  }
  else if ( respons == 2 )  { // Already a member, non-activated
    $('ezinequick_respons').update('U bent reeds ingeschreven met dit e-mailadres, maar u heeft uw inschrijving niet geactiveerd.<br /><br />We hebben u een e-mail gestuurd met daarin een bevestigingslink. Wanneer u uw e-mail binnenhaalt en op deze link klikt, is uw inschrijving geactiveerd.');
    $('ezinequick_respons').addClassName('err');
    $('ezinequick_respons').show();
    $('email').addClassName('err');
  }
  else { // New member subscribed
    $('ezinequick_respons').update('Hartelijk dank voor uw inschrijving!<br /><br />Binnen enkele ogenblikken ontvangt u een e-mail ter bevestiging. In deze e-mail vindt u een link welke u aan dient te klikken om uw inschrijving te activeren.');
    $('ezinequick_respons').removeClassName('err');
    $('ezinequick_respons').show();
    $('ezinequick_lbl').addClassName('elhidden');
    $('ezinequick_field').addClassName('elhidden');
    $('ezinequick_btn').addClassName('elhidden');
  }

}


function emailCheck (emailStr) {

  var str_return = '';
  var emailPat=/^(.+)@(.+)$/
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
  var validChars="\[^\\s" + specialChars + "\]"
  var quotedUser="(\"[^\"]*\")"
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
  var atom=validChars + '+'
  var word="(" + atom + "|" + quotedUser + ")"
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

  var matchArray=emailStr.match(emailPat)
  if (matchArray==null) {
  	str_return += "Uw e-mailadres lijkt niet correct te zijn (controleer de @ en de punten...).";
    return str_return;
  }
  var user=matchArray[1]
  var domain=matchArray[2]

  // See if "user" is valid
  if (user.match(userPat)==null) {
    str_return += "Het gedeelte in je e-mailadres voor de @ lijkt niet in orde te zijn.";
    return str_return;
  }

  var IPArray=domain.match(ipDomainPat)
  if (IPArray!=null) {
  	for (var i=1;i<=4;i++) {
  	  if (IPArray[i]>255) {
        str_return += "Het ip-adres in je e-mailadres is niet correct.";
  		  return str_return;
  	  }
    }
  }

  var domainArray=domain.match(domainPat)
  if (domainArray==null) {
    str_return += "Het gedeelte in je e-mailadres achter de @ lijkt niet in orde te zijn.";
    return str_return;
  }

  var atomPat=new RegExp(atom,"g")
  var domArr=domain.match(atomPat)
  var len=domArr.length
  if (domArr[domArr.length-1].length<2 ||
      domArr[domArr.length-1].length>6) {
      str_return += "Het gedeelte van je e-mailadres achter de (laatste) punt moet eindigen in 2 tot 6 letters."
      return str_return;
  }

  if (len<2) {
    var errStr="This address is missing a hostname!"
    str_return += "Het gedeelte van je e-mailadres achter de (laatste) punt moet eindigen in 2 tot 6 letters."
    return str_return;
  }

  return str_return;

}
