// JavaScript Document
var re_email = /^.*?((?:[\w.-])+\@(?:(?:[\w-])+\.)+(?:[\w]{2,4})).*?$/;
var hasRightVersion;

function init() {
	if(window.alphaPNG) alphaPNG(); 
	init_menu();
	init_Tabs();
	init_Print();
	ClearInputEvents('searchfield','Zoeken...');
	init_login_card();
	init_saldochecker();
	init_cadeaukaart_saldochecker();
	init_sendtoafriend_card();
	init_digitalefolder();
	init_tooltips();
	init_360shop();
	//init_flvplayer();
	init_video_jukebox_popup();
	init_contact_frm();
	init_beverprofiel();
	init_faq();
	init_formulieren();
	init_artikel_tips_block();
	if(window.init_agenda) init_agenda();
    if(window.init_paklijst) init_paklijst();
	if(window.init_winkels) init_winkels();
	if(window.init_winkel) init_winkel();
	if(window.init_ecardwallpaper) init_ecardwallpaper();
	if(window.init_aanbiedingen) init_aanbiedingen();
	if(window.init_artikel_detail) init_artikel_detail();
	if(window.init_artikel_groep) init_artikel_groep();
	if(window.init_artikel_merk) init_artikel_merk();
    if(window.init_bevercardaanvragen) init_bevercardaanvragen();
    if(window.init_zoekresultaten) init_zoekresultaten();
    if(window.init_leukedingendoen) init_leukedingendoen();
    if(window.init_beverprofiel) init_beverprofiel();
    if(window.init_cadeautips) init_cadeautips();
    if (document.getElementById('saved_div') != null) {
    	setTimeout("close_div('saved_div')", 3000);
    }
    if (document.getElementById('msgoverlay_bg') != null) {
    	setTimeout("close_div('msgoverlay_bg')", 3001);
    }
    if (document.getElementById('error-message') != null) {
    	//setTimeout("close_div('error-message')", 3002);
    }
    // toevoeging voor de overlay onder de videojukebox
    if (document.getElementById('dimm') != null) stretch_dimm();
    
	//Input.initialize();
}

function close_div(div_id) {
	if (document.getElementById(div_id) != null) {
		document.getElementById(div_id).style.visibility = 'hidden';
	}
}

function remove_div(div_id) {
	if (document.getElementById(div_id) != null) {
		document.getElementById(div_id).style.display = 'none';
	}
}

/* FAQ
----------------------------------------------------------------*/
function init_faq() {
	questions = getElementsByClassName(document, "a", "question");
	for (i=0; i< questions.length; i++) {
		questions[i].onclick = function() { openCloseAnswer(this.name); this.blur(); return false; }
	}
	categories = getElementsByClassName(document, "a", "cagetorie");
	for (i=0; i< categories.length; i++) {
		categories[i].onclick = function() { openCloseCategorie(this.name); this.blur(); return false; }
	}
}

function openCloseCategorie(id) {
	if(document.getElementById("ol-"+id).style.display == "block") {
		document.getElementById("ol-"+id).style.display = "none";
	} else {
		document.getElementById("ol-"+id).style.display = "block";
	}
}

function openCloseAnswer(id) {
	
	if(document.getElementById("div-"+id).style.display == "block") {
		document.getElementById("div-"+id).style.display = "none";
	} else {
		document.getElementById("div-"+id).style.display = "block";
	}
	
}

/* BEVERPROFIEL
----------------------------------------------------------------*/
function init_beverprofiel() {
	favos = getElementsByClassName(document, "a", "favoriete-opener");
	for (i=0; i< favos.length; i++) {
		favos[i].onclick = function() { openCloseFavo(this); this.blur(); return false; }
	}
}

function openCloseFavo(obj) {
	classname = document.getElementById(obj.name).className
	if(classname.indexOf("selected") == -1) {
		document.getElementById(obj.name).className = classname +" selected";
	} else {
		document.getElementById(obj.name).className = classname.substring(0,classname.indexOf("selected") -1);
	}
}

/* CONTACT FORM
----------------------------------------------------------------*/

function show_hide_contact_fields (contact_type) {
	document.getElementById('contact-anders-text').style.display = 'none'; 
	document.getElementById('bevercardnummer').style.display = 'none'; 
	document.getElementById('inwinkelgeweest-img').style.display = 'none'; 
	document.getElementById('dichtbijzijndewinkel-img').style.display = 'none'; 
	document.getElementById('beverwinkel-select').style.display = 'none'; 
	document.getElementById('artikelingeleverd').style.display = 'none'; 
	
	// Anders
	if(contact_type == 'Anders') { 
		document.getElementById('contact-anders-text').style.display = 'inline'; 
	}

	// klacht
	if(contact_type == '3') {
		document.getElementById('bevercardnummer').style.display = 'block'; 
		document.getElementById('inwinkelgeweest-img').style.display = 'block'; 
		document.getElementById('beverwinkel-select').style.display = 'block'; 
	}

	// bever Card
	if(contact_type == '6') {
		document.getElementById('bevercardnummer').style.display = 'block'; 
	}

	// Verkrijgbaarheid van een artikel (1)
	// speciale bestelling (7)
	if(contact_type == '7' || contact_type == '1') {
		document.getElementById('bevercardnummer').style.display = 'block'; 
		document.getElementById('dichtbijzijndewinkel-img').style.display = 'block'; 
		document.getElementById('beverwinkel-select').style.display = 'block'; 
	}

	// reparatie
	if(contact_type == '9') {
		document.getElementById('bevercardnummer').style.display = 'block'; 
		document.getElementById('artikelingeleverd').style.display = 'block'; 
	}

}


function init_contact_frm() {
	if (document.getElementById('contact-frm')) {
		document.getElementById('contact-select').onchange = function() { 
			show_hide_contact_fields(this.value);
		}
		
		show_hide_contact_fields(document.getElementById('contact-select').value);
		
		document.getElementById('contact_btn_verzend').onclick = function() {
			var elements = document.getElementById('contact-frm').elements;
			var do_submit = true;
			
			for(var i=0; i<elements.length; i++) {
				if(elements[i].required) {
					if(elements[i].value == '') {
						document.getElementById(elements[i].name+'-error').style.display = 'block';						
						do_submit = false;
					} else if(String(elements[i].name).match('email') && !re_email.test(elements[i].value)) {
						document.getElementById(elements[i].name+'-error').style.display = 'block';						
						do_submit = false;
					} else {
						document.getElementById(elements[i].name+'-error').style.display = 'none';
					}
				}
			}
			
			return do_submit;
		}
	}
}

/* SHOW / HIDE SHOP 360
----------------------------------------------------------------*/
function init_360shop() {
	if(document.getElementById('winkel-360popup-btn')) {
		if(hasRightVersion) {
			document.getElementById('winkel-360popup-btn').onclick = function() { show_360popup(); this.blur(); return false; }
			document.getElementById('winkel-360popupclosebtn').onclick = function() { hide_360popup(); this.blur(); return false; }
		} else {
			document.getElementById('winkel-360popup-btn').style.display = 'none';
		}
	}
}

function init_360shop_flash(id) {
	if(hasRightVersion) {
		new Ajax.Updater('winkel-360popupflash', '/ajax/panorama.php', {method:'post', postBody:'id='+id, asynchronous:true, evalScripts: true } );
	}
}

function show_360popup() {
	closeall();
	pageOffset = findPageOffset();
	windowSize = findWindowSize();
	position = pageOffset[1] + Math.floor((windowSize[1]-290)/3);
	
	document.getElementById('winkel-360popup_bg').style.background = "url('/img/winkeldetail_360-popup_bg.png')";
	document.getElementById('winkel-360popup_bg').style.top = position+"px";
	document.getElementById('winkel-360popup').style.top = position+"px";
	
	document.getElementById('winkel-360popup_bg').style.display = "block";
	document.getElementById('winkel-360popup').style.display = "block";
	
	init_360shop_flash(document.getElementById('winkel-360popup-btn').title);	
}

function hide_360popup() {
	if(document.getElementById('winkel-360popup')) {
		document.getElementById('winkel-360popup_bg').style.display = "none";
		document.getElementById('winkel-360popup').style.display = "none";
	}
}

/* DIGITALE FOLDER
----------------------------------------------------------------*/
function init_digitalefolder() {
		
}

function show_digitalefolder(id) {
	closeall();
	pageOffset = findPageOffset();
	windowSize = findWindowSize();
	position = pageOffset[1] + Math.floor((windowSize[1]-450)/3);
	
	document.getElementById('digitale-folderpopup_bg').style.top = position+"px";
	document.getElementById('digitale-folderpopup').style.top = position +"px";
	
	document.getElementById('digitale-folderpopup_bg').style.display = "block";
	document.getElementById('digitale-folderpopup').style.display = "block";
	
	document.getElementById('digitale-folderpopupclosebtn').onclick = function() { close_digitalefolder(); this.blur(); return false; }
		
	if(navigator.appVersion.indexOf("MSIE") != -1) {
		new Ajax.Updater('digitale-folderpopupflash', '/ajax/digitalefolder.php', {method:'post', postBody:'id='+id, asynchronous:true, evalScripts: true } );
	} else {
		frames['digitale-folderiframe'].document.location.href = '/iframes/digitalefolder.php?id='+id;
	}
	//return false;
}

function close_digitalefolder() {
	
	if(document.getElementById('digitale-folderpopup_bg')) {
		document.getElementById('digitale-folderpopup_bg').style.display = "none";
		document.getElementById('digitale-folderpopup').style.display = "none";
		document.getElementById('digitale-folderpopupflash').innerHTML = "";
	}
}

/* FLV PLAYER POPUP
----------------------------------------------------------------*/
function init_flvplayer() {
	if(document.getElementById('flvplayerpopup-btn')) {
		if(hasRightVersion) {
			document.getElementById('flvplayerpopup-btn').onclick = function() { show_flvplayer(); this.blur(); return false; }
			document.getElementById('flvplayerpopupclosebtn').onclick = function() { close_flvplayer(); this.blur(); return false; }
		} else {
			document.getElementById('flvplayerpopup-btn').style.display = 'none';
		}
	}	
}

function init_flvplayer_flash(video, w, h) {
	if(hasRightVersion) {
		new Ajax.Updater('flvplayerpopupflash', '/ajax/flvplayer.php', {method:'post', postBody:'file='+video+'&width='+w+'&height='+h, asynchronous:true, evalScripts: true } );
	}
}

function show_flvplayer() {
	closeall();
	pageOffset = findPageOffset();
	windowSize = findWindowSize();
	position = pageOffset[1] + Math.floor((windowSize[1]-290)/3);

	document.getElementById('flvplayerpopup_bg').style.background = "url('/img/digitalefolder_bg.png') no-repeat top left;";
	document.getElementById('flvplayerpopup_bg').style.top = position+"px";
	document.getElementById('flvplayerpopup').style.top = position+"px";
	
	document.getElementById('flvplayerpopup_bg').style.display = "block";
	document.getElementById('flvplayerpopup').style.display = "block";
	
	init_flvplayer_flash(document.getElementById('flvplayerpopup-btn').getAttribute('movie'), document.getElementById('flvplayerpopup-btn').getAttribute('movie_w'), document.getElementById('flvplayerpopup-btn').getAttribute('movie_h'));
	
}

function close_flvplayer() {
	if(document.getElementById('flvplayerpopup_bg')) {
		document.getElementById('flvplayerpopup_bg').style.display = "none";
		document.getElementById('flvplayerpopup').style.display = "none";
		document.getElementById('flvplayerpopupflash').innerHTML = "";
	}
}




/* VIDEO JUKEBOX POPUP
----------------------------------------------------------------*/

function init_video_jukebox_popup(){
	flvPlayerPopupBtns = getElementsByClassName(document, "*", "video_jukebox_popup_btn");
	for (i=0; i < flvPlayerPopupBtns.length; i++) {
		if (flvPlayerPopupBtns[i]) {
			flvPlayerPopupBtns[i].onclick = function() {
				show_video_jukebox_popup(this.getAttribute('movie'), this.getAttribute('type'), this.getAttribute('id'), this.getAttribute('movie_w'), this.getAttribute('movie_h'));
				this.blur();
				return false;
			}
		}
	}

}

function show_video_jukebox_popup(video, type, id, w, h) {
	if(hasRightVersion) {
		if (document.getElementById('video_jukebox_popup').style.display=='block') {
			/* stuur stop commando naar flash */
			var movie_id = $('video_jukebox_popup_playerAJAX').getElementsByClassName('nvs_flvplayer')[0].getElementsByTagName('object')[0].id;
			close_flv_connection(movie_id);
		}
	}

	if (w == undefined) {
		w = 449;
	}
	if (h == undefined) {
		h = 358;
	}
	pageOffset = findPageOffset();
	windowSize = findWindowSize();

	positionX = pageOffset[0] + Math.floor((windowSize[1]-(w/2))/2) + 100;
  	positionY = pageOffset[1] + 100; //pageOffset[1] + Math.floor((windowSize[1]-h)/2);

	document.getElementById('video_jukebox_popup').style.left = positionX+"px";
	document.getElementById('video_jukebox_popup').style.top = positionY+"px";
	
//	document.getElementById('video_jukebox_popup_bg').style.display = "block";
	document.getElementById('video_jukebox_popup').style.display = "block";

	document.getElementById('dimm').style.display = "block";

	if(hasRightVersion) {init_video_jukebox_titel(video);
		init_video_jukebox_flash(video, w, h);
		init_video_jukebox_related(video, type, id);

	}
}

function init_video_jukebox_flash(video, w, h) {
	new Ajax.Updater('video_jukebox_popup_playerAJAX', '/ajax/flvplayer.php', {
			method: 'post', 
			postBody: 'file='+video+'&width='+w+'&height='+h, 
			asynchronous: true, 
			evalScripts: false, 
			onComplete: function() {
				detect_flash();
				
				var nvs_flvs = document.getElementsByClassName("nvs_flvplayer");
				for (var i = 0; i < nvs_flvs.length; i++) {
					var nvs_flv = nvs_flvs[i];
					nvs_flv.id = "nvs_flvplayer_" + i;
					var nvs_flv_hash = nvs_flv.getAttribute("title");
					var nvs_flv_width = nvs_flv.style.width;
					var nvs_flv_height = nvs_flv.style.height;
					if (nvs_flv_width.match("px")) {
						nvs_flv_width = parseInt(nvs_flv_width);
					}
					if (nvs_flv_height.match("px")) {
						nvs_flv_height = parseInt(nvs_flv_height);
					}
					var nvs_flv_player = "/swf/NVDN_flvplayer.swf?hash=" + nvs_flv_hash + "&xml_path=/xml/";
					load_flvplayer(nvs_flv.id, nvs_flv_player, nvs_flv_width, nvs_flv_height, 9, "swf" + nvs_flv_hash, "#EEEBE2");
				}
			}
		} );
	
}

function init_video_jukebox_titel(video) {
	new Ajax.Updater('video_jukebox_popup_titelAJAX', '/ajax/flvplayer_titel.php', {method:'post', postBody:'file='+video, asynchronous:true, evalScripts: true } );
}
function init_video_jukebox_related(video, type, id) {
	new Ajax.Updater('video_jukebox_popup_relatedAJAX', '/ajax/flvplayer_related.php', {method:'post', postBody:'file='+video+'&type='+type+'&id='+id, asynchronous:true, evalScripts: true } );
}

function getFlashMovie(movieName) {
  var isIE = navigator.appName.indexOf("Microsoft") != -1;
  if (isIE) {
  	var flashMovieName = window[movieName];
  } else {
  	var flashMovieName = document[movieName];
  }
  return (flashMovieName) ? flashMovieName : false;
}

function hide_video_jukebox_popup() { 
	if(document.getElementById('video_jukebox_popup')) {
	    if (hasRightVersion) {
	 		/* stuur stop commando naar flash */
     		/*
			 if (thisFlashMovie = getFlashMovie("flvplayer")) {
     			if (typeof(thisFlashMovie.stopFlvPlayer) == 'function') {
     				thisFlashMovie.stopFlvPlayer();
     			}
     		}
     		*/
     		var movie_id = $('video_jukebox_popup_playerAJAX').getElementsByClassName('nvs_flvplayer')[0].getElementsByTagName('object')[0].id;
			close_flv_connection(movie_id);
     	}

		document.getElementById('video_jukebox_popup').style.display = "none";
		if (document.getElementById('video_jukebox_related_items')) {
			document.getElementById('video_jukebox_related_items').style.display = "none";
		}
	}
	if (document.getElementById('dimm')) {
		document.getElementById('dimm').style.display = "none";
	}

}

function update_video_jukebox_move(xDif) {
	var node = document.getElementById('video_jukebox_popup_list');
	if (node){
   		var currentPos = parseInt((document.getElementById('video_jukebox_related_items').style.left).replace("px", ""));
   		var itemsWidth = parseInt((document.getElementById('video_jukebox_related_items').style.width).replace("px", ""));
   		var maskWidth = parseInt((document.getElementById('video_jukebox_related_mask').style.width).replace("px", ""));
	    if (xDif < 0) {
		  	// naar links
		  	if ((itemsWidth + currentPos) > maskWidth) {
		  		if (((itemsWidth + currentPos)+xDif) < maskWidth) {
	   			    // verplaats het laatste stukje
	   			    xDif = maskWidth - (itemsWidth + currentPos);

				} 
				new Effect.Move ("video_jukebox_related_items",{ x: xDif, y: 0, mode: 'relative'});
		  	}
    	} else {
		  	// naar rechts
    		if (currentPos < 0) {
    			if ((currentPos + xDif) > 0) {
    			    // verplaats het laatste stukje
    				xDif = -currentPos;
    			}
				new Effect.Move ("video_jukebox_related_items",{ x: xDif, y: 0, mode: 'relative'});
    		}
		}

	}
}

	
function getPageSize() {
	var x,y
	
	var height1 = document.documentElement.offsetHeight;
	var height2 = document.documentElement.scrollHeight;
	if (height1 > height2)
	{
		// Explorer
		x = document.documentElement.offsetWidth;
		y = document.documentElement.offsetHeight;
		
		if (document.body.offsetHeight < document.documentElement.clientHeight)
		{
			x = document.documentElement.clientWidth;
			y = document.documentElement.clientHeight;
		}
	}
	else if (height2 > height1)
	{
		// Firefox
		x = document.documentElement.scrollWidth;
		y = document.documentElement.scrollHeight;
	}
	else
	{
		// Safari
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	}
	
	arrayPageSize = new Array(x, y);
	return arrayPageSize;
}

function stretch_dimm() {
	// stretched de doorzichtige overlay onder de videojukebox naar de goede afmeting
	var arrayPageSize = getPageSize();
	var w_dimm = arrayPageSize[0];
	var h_dimm = arrayPageSize[1];

	document.getElementById('dimm').style.width = w_dimm+'px';
	document.getElementById('dimm').style.height = h_dimm+'px';
}


/* SHOW / HIDE TOOLTIPS
----------------------------------------------------------------*/
function init_tooltips() {
	tooltips = getElementsByClassName(document, "a", "tooltip")
	for(i=0; i< tooltips.length; i++){
		tooltips[i].onmouseover = function() { showtooltip(this); }
		tooltips[i].onclick = function() { this.blur(); return false; }
	}
}

tt_text_obj = null;
tt_bg_obj = null;
timeoutId = null; 

function showtooltip(obj) {
	closeall();
	tt_text_obj = document.getElementById('tooltip_'+obj.name);
	tt_bg_obj = document.getElementById('tooltip_bg');
	pageOffset = findPageOffset();
	objPos = findPos(obj);
	textoffset = [17,40];
	
	/* create a nice sized box */
	tt_text_obj.style.zIndex = 0;
	tt_text_obj.style.display = "block";
	tt_text_obj.style.width = "200px";
	
	w = parseInt(document.getElementById('tooltip_'+obj.name).offsetWidth)
	h = parseInt(document.getElementById('tooltip_'+obj.name).offsetHeight)
	w = Math.ceil(Math.sqrt((h*w)*(4/3)));
	
	tt_text_obj.style.width =  w +"px";
	tt_bg_obj.style.width = (w + 40) + "px";
	tt_bg_obj.style.height = (tt_text_obj.offsetHeight + 93) + "px";
	document.getElementById('tooltipleft').style.height =  (parseInt(tt_bg_obj.style.height)- 47 - 46)+"px";
	
	/* put it on a nice place */
		
	if(((objPos[1]-parseInt(tt_bg_obj.style.height)+15) - pageOffset[1]) > 0) {
		document.getElementById('toplabel').className = "image";
		document.getElementById('toplabel-img').style.display = "none";
		document.getElementById('bottomlabel-img').style.display = "block";
		document.getElementById('bottomlabel').className = "";
		tt_bg_obj.style.left = (objPos[0] - 37  + Math.ceil(parseInt(obj.offsetWidth)/2) ) + "px";
		tt_bg_obj.style.top = (objPos[1]-parseInt(tt_bg_obj.style.height)+15) + "px";
	} else {
		document.getElementById('bottomlabel').className = "image";
		document.getElementById('bottomlabel-img').style.display = "none";
		document.getElementById('toplabel-img').style.display = "block";
		document.getElementById('toplabel').className = "";
		tt_bg_obj.style.left = (objPos[0] - 37 + Math.ceil(parseInt(obj.offsetWidth)/2)) + "px";
		tt_bg_obj.style.top = (objPos[1] + parseInt(obj.offsetHeight)-5) + "px";
	}
	
	tt_text_obj.style.left = parseInt(tt_bg_obj.style.left) + textoffset[0] + "px"
	tt_text_obj.style.top = parseInt(tt_bg_obj.style.top) + textoffset[1] + "px"
			
	tt_bg_obj.style.display = "block";
	tt_text_obj.style.zIndex = 10001;
	tt_bg_obj.style.zIndex = 10000;
	
	tt_bg_obj.onmouseout = function () {if(timeoutId != null) window.clearTimeout(timeoutId); timeoutId = window.setTimeout('hidetooltip()', 1000); }
	tt_bg_obj.onmouseover = function() { window.clearTimeout(timeoutId); }
	tt_text_obj.onmouseover = function() { window.clearTimeout(timeoutId); }
}

function hidetooltip() {
	if(tt_text_obj != null) {
		tt_text_obj.style.display = 'none';
		tt_bg_obj.style.display = 'none';
		tt_text_obj = null ;
		
	}
	timeoutId = null;
}

/* SHOW / HIDE SENDTOAFRIENDCARD
----------------------------------------------------------------*/
function init_sendtoafriend_card() {
	if(document.getElementById('tellafriend-btn')) {
		document.getElementById('send-to-a-friend_card_closebtn').onclick = function() { hide_sendtoafriend_card(); this.blur(); return false; }
		document.getElementById('tellafriend-btn').onclick = function() { show_sendtoafriend_card(); this.blur(); return false; }	
		document.getElementById('send-to-a-friend_card_frm-submit').onclick = function() { send_sendtoafriend_form(); this.blur(); return false; }
		document.getElementById('tellafriend-btn').style.display = 'inline';
	}	
}

function show_sendtoafriend_card() { 	
	closeall();
	pageOffset = findPageOffset();
	windowSize = findWindowSize();

	position = pageOffset[1] + Math.floor((windowSize[1]-452)/3);
	
	//document.getElementById('send-to-a-friend_cardbg').style.background = "url('/img/send-to-a-friend_bg" + document.getElementById('send-to-a-friend_cardbg').getAttribute('themecolor') + ".png')";
	
	document.getElementById('send-to-a-friend_cardbg').className = 'send-to-a-friend_cardbg'+document.getElementById('send-to-a-friend_cardbg').getAttribute('themecolor');
	
	document.getElementById('send-to-a-friend_cardbg').style.top = position+"px";
	document.getElementById('send-to-a-friend_card').style.top = position+"px";
	
	document.getElementById('send-to-a-friend_cardbg').style.display = "block";
	document.getElementById('send-to-a-friend_card').style.display = "block";
}

function hide_sendtoafriend_card() { 
	if(document.getElementById('send-to-a-friend_cardbg')) {
		document.getElementById('send-to-a-friend_cardbg').style.display = "none";
		document.getElementById('send-to-a-friend_card').style.display = "none";
	}
}

function send_sendtoafriend_form() {
	var handlerFunc = function(t) {
	    if(t.responseText=='') {
	    	hide_sendtoafriend_card();
		} else {
			var errors = String(t.responseText).split('|');
			/*for(var i=0; i<errors.length; i++) {
				document.getElementById(errors[i]).className = 'error';
			}*/
		}
	}
	
	var errFunc = function(t) {
	    alert('Error ' + t.status + ' -- ' + t.statusText);
	}
	
	var submitBody = 'my_name='+document.getElementById('i_saf_my_name').value;
	submitBody+= '&my_email='+document.getElementById('i_saf_my_email').value;
	submitBody+= '&your_name='+document.getElementById('i_saf_your_name').value;
	submitBody+= '&your_email='+document.getElementById('i_saf_your_email').value;
	submitBody+= '&message='+document.getElementById('i_saf_message').value;
	submitBody+= '&url='+document.getElementById('i_saf_url').value;
	
	new Ajax.Request('/ajax/sendafriend.php', {parameters:submitBody, onSuccess:handlerFunc, onFailure:errFunc});
}

/* SHOW / HIDE LOGINCARD
----------------------------------------------------------------*/
function init_login_card() { 
	if(document.getElementById('inloggen_label_btn')) {
		document.getElementById('logincard_closebtn').onclick = function() { hide_login_card(); this.blur(); return false; }
		document.getElementById('inloggen_label_btn').onclick = function() { show_login_card(); this.blur(); return false; }
		if(document.getElementById('inloggen_pulldown_btn')) {
			document.getElementById('inloggen_pulldown_btn').onclick = function() { show_login_card(); this.blur(); return false; }
		}
		if(document.getElementById('inloggen_submenu_btn')) {
			document.getElementById('inloggen_submenu_btn').onclick = function() { show_login_card(); this.blur(); return false; }
		}
		document.getElementById('logincard_submitbtn').onclick = function() { check_login(); this.blur(); return false; }
	
		// Set INPUT onclick actions
		document.getElementById('login_cardnumber').onclick = function() {
			this.className = '';
		}
		document.getElementById('login_postcode').onclick = function() {
			this.className = '';
		}
		document.getElementById('login_number').onclick = function() {
			this.className = '';
		}
		document.getElementById('login_number').onkeyup = function() {
			check_numeric_field(this);
		}
		document.getElementById('login_number').onblur = function() {
			check_numeric_field(this);
		}
	}
}

function check_numeric_field(field) {
	var val = String(field.value);
	var new_val = '';
	for(var i = 0; i<val.length; i++) {
		if(!isNaN(parseInt(val.substr(i, 1)))) {
			new_val+= val.substr(i,1);
		}
	}
	field.value = new_val;
}

function show_login_card() {
	closeall();
	pageOffset = findPageOffset();
	windowSize = findWindowSize();
	position = pageOffset[1] + Math.floor((windowSize[1]-190)/3);
	
	document.getElementById('logincardbg').style.background = "url('/img/logincard_bg_type" + document.getElementById('logincardbg').getAttribute('themecolor') + ".png')";
	document.getElementById('logincardbg').style.top = position+"px";
	document.getElementById('logincard').style.top = position+"px";
	
	document.getElementById('logincardbg').style.display = "block";
	document.getElementById('logincard').style.display = "block";
}

function hide_login_card() {
	if(document.getElementById('logincard')) {
		document.getElementById('logincard').style.display = "none";
		document.getElementById('logincardbg').style.display = "none";
	}
}

function login_loading(load) {
	if (load) {
		jQuery("#logincard_submitbtn").attr("disabled", true);
		jQuery("#logincard_submitbtn").addClass("disabled");
		jQuery("#logincardfrm").addClass("loading");
		
	} else {
		jQuery("#logincard_submitbtn").attr("disabled", false);
		jQuery("#logincard_submitbtn").removeClass("disabled");
		jQuery("#logincardfrm").removeClass("loading");
	}
}

function check_login() {
	var handlerFunc = function(t) {
		
		if(t.responseText.indexOf('redirect:',0) != -1) {
	    	document.location.href = t.responseText.replace('redirect:','');
		
		} else {
			var errors = String(t.responseText).split('|');
			
			if (errors == "system_offline") {
				jQuery("#logincard-error-message").text("Inloggen is tijdelijk niet mogelijk.");
				jQuery("#logincard-error-message").show();
			}
			
			login_loading(false);
												
			for(var i=0; i<errors.length; i++) {
				jQuery("#" + errors[i]).addClass("error");
			}
		}
	}
	
	var errFunc = function(t) {
		alert('Error ' + t.status + ' -- ' + t.statusText);
		login_loading(false);
	}
	
	var submitBody = 'login_cardnumber='+document.getElementById('login_cardnumber').value;
	submitBody+= '&login_postcode='+document.getElementById('login_postcode').value;
	submitBody+= '&login_number='+document.getElementById('login_number').value;
	
	login_loading(true);
		
	new Ajax.Request('/ajax/login.php', {parameters:submitBody, onSuccess:handlerFunc, onFailure:errFunc});
}

/* SHOW / HIDE SALDOCHECKER
----------------------------------------------------------------*/
function init_saldochecker() { 
	if(document.getElementById('saldochecker_label_btn')) {
		document.getElementById('saldochecker_closebtn').onclick = function() { hide_saldochecker_card(); this.blur(); return false; }
		document.getElementById('saldochecker_label_btn').onclick = function() { show_saldochecker_card(); this.blur(); return false; }
		
		/*if(document.getElementById('saldochecker_pulldown_btn')) {
			document.getElementById('saldochecker_pulldown_btn').onclick = function() { show_saldochecker_card(); this.blur(); return false; }
		}
		if(document.getElementById('saldochecker_submenu_btn')) {
			document.getElementById('saldochecker_submenu_btn').onclick = function() { show_saldochecker_card(); this.blur(); return false; }
		}*/
		
		document.getElementById('saldochecker_submitbtn').onclick = function() { check_saldo(); this.blur(); return false; }
		
		document.getElementById('saldocheckerfrm').onsubmit = function() { check_saldo(); return false; }
	
		// Set INPUT onclick actions
		document.getElementById('saldochecker_cardnumber').onclick = function() {
			this.className = '';
		}
	}
}

function show_saldochecker_card() {
	closeall();
	pageOffset = findPageOffset();
	windowSize = findWindowSize();
	position = pageOffset[1] + Math.floor((windowSize[1]-190)/3);
	
	document.getElementById('saldocheckerbg').style.background = "url('/img/logincard_bg_type" + document.getElementById('saldocheckerbg').getAttribute('themecolor') + ".png')";
	document.getElementById('saldocheckerbg').style.top = position+"px";
	document.getElementById('saldochecker').style.top = position+"px";
	
	document.getElementById('saldocheckerbg').style.display = "block";
	document.getElementById('saldochecker').style.display = "block";
}

function hide_saldochecker_card() {
	if(document.getElementById('saldochecker')) {
		document.getElementById('saldochecker').style.display = "none";
		document.getElementById('saldocheckerbg').style.display = "none";
	}
}

function check_saldo() {
	var errFunc = function(t) {
	    alert('Error ' + t.status + ' -- ' + t.statusText);
	}
	
	var submitBody = 'saldochecker_cardnumber='+document.getElementById('saldochecker_cardnumber').value;
		
	new Ajax.Updater('saldochecker_result', '/ajax/saldochecker.php', {parameters:submitBody, onFailure:errFunc});
		
}


/* SALDOCHECKER CADEAUKAART
----------------------------------------------------------------*/
function init_cadeaukaart_saldochecker() {
	if (document.getElementById('btn_cadeaukaart_saldocheck')){
		document.getElementById('btn_cadeaukaart_saldocheck').onclick = function() { check_cadeaukaart_saldo(); return false; }
		ClearInputEvents('cadeaukaart_saldochecker_cardnumber', '');
	}
}

function check_cadeaukaart_saldo() {
	var errFunc = function(t) {
	    alert('Error ' + t.status + ' -- ' + t.statusText);
	}

	document.getElementById('cadeaukaart_saldochecker_result').style.display = 'block';
	
	var submitBody = 'saldochecker_cardnumber='+document.getElementById('cadeaukaart_saldochecker_cardnumber').value;
		
	new Ajax.Updater('cadeaukaart_saldochecker_result', '/ajax/saldochecker.php', {parameters:submitBody, onFailure:errFunc});	
	
}

/* CLEAR INPUT ON FOCUS
----------------------------------------------------------------*/
function ClearInputEvents(id,str) {
	obj = document.getElementById(id);
	if(str != '' ) {  val = str; }	else { val = obj.value; }
	
	obj.startvalue = val;
	obj.value = val;
	
	obj.onfocus = function() { if(this.value == this.startvalue) { this.value = '';}}
	obj.onblur =  function() { if(this.value == '') { this.value = obj.startvalue; }}
}

/* PRINT SCRIPT
----------------------------------------------------------------*/
function init_Print() {
	if(window.print && document.getElementById("print-btn")) { 
		document.getElementById("print-btn").style.display = 'inline';
		document.getElementById("print-btn").onclick  = function () { window.print(); return false; }
	}
}

/* TAB SCRITPS
----------------------------------------------------------------*/
function init_Tabs() { 
	for(i = 1; i < tabs + 1; i++) {
		if(!document.getElementById("tab_"+i+"_btn")) continue;
		document.getElementById("tab_"+i+"_btn").onmouseover = function () { Tab_MouseOver(this); }	
		document.getElementById("tab_"+i+"_btn").onmouseout = function () { Tab_MouseOut(this); }	
		document.getElementById("tab_"+i+"_btn").onclick = function () { return Tab_ShowMenu(this);this.blur(); }
	}
}

function Tab_MouseOver(obj) {
	baseid = obj.id.substr(4);
	baseid = baseid.substr(0,(baseid.length - 4));
	document.getElementById("tab_"+baseid+"_btn").style.backgroundPosition = "left bottom";
}

function Tab_MouseOut(obj) {
	baseid = obj.id.substr(4);
	baseid = baseid.substr(0,(baseid.length - 4));
	if(document.getElementById("tab_"+baseid+"_btn").className != 'selected') { document.getElementById("tab_"+baseid+"_btn").style.backgroundPosition = "left top"; }
}

function Tab_ShowMenu(obj) {
	baseid = obj.id.substr(4);
	baseid = baseid.substr(0,(baseid.length - 4));
	zindex = 1;
	for(i = 1; i < tabs + 1; i++) {
		document.getElementById("nav_"+i+"_menu").style.display = 'none'; 
		document.getElementById("tab_"+i).style.zIndex = zindex++; 
		document.getElementById("tab_"+i+"_btn_box").style.zIndex = zindex++; 
		document.getElementById("tab_"+i+"_btn").style.backgroundPosition = "left top";
		document.getElementById("tab_"+i+"_btn").className = '';
	}
	
	createCookie('bevertabs',baseid,24);
	document.getElementById("nav_"+baseid+"_menu").style.display = 'block'; 
	document.getElementById("tab_"+baseid).style.zIndex = 101; 
	document.getElementById("tab_"+baseid+"_btn_box").style.zIndex = 102; 
	document.getElementById("tab_"+baseid+"_btn").style.backgroundPosition = "left bottom";
	document.getElementById("tab_"+baseid+"_btn").className = 'selected';
	
	return false;
}

/* CLOSE ALL
----------------------------------------------------------------*/
function closeall() {
	hidetooltip();
	hide_login_card();
	hide_sendtoafriend_card();
	hide_360popup();
}

/* COOKIE FUNCTIONS
----------------------------------------------------------------*/
function createCookie(name,value,hours) {
	if (hours) {
		var date = new Date();
		date.setTime(date.getTime()+(hours*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var 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 eraseCookie(name) {
	createCookie(name,"",-1);
}

/*
 	getElementsByClassName()
 	Written by Jonathan Snook, http://www.snook.ca/jonathan
 	Add-ons by Robert Nyman, http://www.robertnyman.com
----------------------------------------------------------------*/
	function getElementsByClassName(oElm, strTagName, oClassNames){
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		var arrRegExpClassNames = new Array();
		if(typeof oClassNames == "object"){
			for(var i=0; i<oClassNames.length; i++){
				arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
			}
		}
		else{
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
		}
		var oElement;
		var bMatchesAll;
		for(var j=0; j<arrElements.length; j++){
			oElement = arrElements[j];
			bMatchesAll = true;
			for(var k=0; k<arrRegExpClassNames.length; k++){
				if(!arrRegExpClassNames[k].test(oElement.className)){
					bMatchesAll = false;
					break;                      
				}
			}
			if(bMatchesAll){
				arrReturnElements.push(oElement);
			}
		}
		return (arrReturnElements)
	}

/* findPageOffset 
----------------------------------------------------------------*/
function findPageOffset() {

	if(window.pageYOffset) {
		pageOffset =  [parseInt(window.pageXOffset), parseInt(window.pageYOffset)];
	} else {
		pageOffset =  [ parseInt(document.documentElement.scrollLeft),  parseInt(document.documentElement.scrollTop)];
	}
	return pageOffset;
}


/* findWindowSize
----------------------------------------------------------------*/
function findWindowSize() {
	if(window.innerHeight) {
		windowSize =  [parseInt(window.innerWidth),  parseInt(window.innerHeight)];
	} else {
		windowSize =  [parseInt(document.documentElement.clientWidth), parseInt(document.documentElement.clientHeight)];
	}
	return windowSize;
}

/* findPos(obj) written by ppk, www.quirksmode.org
----------------------------------------------------------------*/
	function findPos(obj) {
		var x = '';
		for (a in obj) x = x + a + ' ';
		x = '';
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft
			curtop = obj.offsetTop
			x = curleft;
			while (obj = obj.offsetParent) {
				x = x + ' ' + obj.id + ':' + obj.offsetLeft;
				curleft += obj.offsetLeft
				curtop += obj.offsetTop
			}
		}
		return [curleft,curtop];
	}

/* CUSTOM RADIO- / CHECKBOXES
----------------------------------------------------------------*/

/*var Input = {
initialize: function() {
     if(document.getElementsByTagName("form")) {
       var divs = document.getElementsByTagName("div");
       for(var i = 0; i < divs.length; i++) {
         if(divs[i].className.match("checkbox") || divs[i].className.match("radio")) {
           divs[i].onmousedown = Input.effect;
           divs[i].onmouseup = Input.handle;
           window.onmouseup = Input.clear;
         }
       }
     }
   },

   effect: function() {
     if(this.className == "checkbox" || this.className == "radio") {
       this.style.backgroundPosition = "0 0";
     } else {
       this.style.backgroundPosition = "0 -15px";
     }
   },

   handle: function() {
     selector = this.getElementsByTagName("input")[0];
     if(this.className == "checkbox") {
       selector.checked = true;
       this.className = "checkbox selected";
       this.style.backgroundPosition = "0 -15px";
     } else if(this.className == "checkbox selected") {
       selector.checked = false;
       this.className = "checkbox";
       this.style.backgroundPosition = "0 0";
     } else {
       selector.checked = true;
       this.className = "radio selected";
       this.style.backgroundPosition = "0 -15px";
       inputs = document.getElementsByTagName("input");
       for(i = 0; i < inputs.length; i++) {
         if(inputs[i].getAttribute("name") == selector.getAttribute("name")) {
           if(inputs[i] != selector) {
             inputs[i].parentNode.className = "radio";
             inputs[i].parentNode.style.backgroundPosition = "0 0";
           }
         }
       }
     }
   },

   clear: function() {
     divs = document.getElementsByTagName("div");
     for(var i = 0; i < divs.length; i++) {
       if(divs[i].className == "checkbox" || divs[i].className == "radio") {
         divs[i].style.backgroundPosition = "0 0";
       } else if(divs[i].className == "checkbox selected" || divs[i].className == "radio selected") {
         divs[i].style.backgroundPosition = "0 -15px";
       }
     }
   }
}*/

/* GENERAL PAGING FUNCTIONS
----------------------------------------------------------------*/
function init_paging() {
	var paging_links = document.getElementById('paging_links');
	var paging_text = document.getElementById('paging_txt');
	if(paging_links!=null) {
		if(paging_text!=null) {
			if(!paging_links.name) paging_links.name=paging_links.getAttribute('name');
			paging_info = String(paging_links.name).split('_');
			var paging_from = ((paging_info[0] * paging_info[1]) + 1) - paging_info[1];
			var paging_to = paging_from + (paging_info[1] - 1);
			if(paging_to>paging_info[2]) paging_to = paging_info[2];
			if(!paging_text.name) paging_text.name=paging_text.getAttribute('name');
			var paging_type = paging_text.name;
			if(paging_type==null) paging_type = 'Afbeelding';
						
			paging_text.innerHTML = paging_type+' '+paging_from+' - '+paging_to+' van '+paging_info[2];
		}	
		
		if(window.gotoPage) {
			paging_links = paging_links.getElementsByTagName('a');		
			for(var i=0; i< paging_links.length; i++) {
				paging_links[i].onclick = function() {
					gotoPage(this.title);
				}
				paging_links[i].href = 'javascript:;';
			}
		}	
	} else {
		if(paging_text!=null) {
			paging_text.innerHTML = '';
		}
	}
}

function changePaging(id, page, items, total) {
	var submitBody = 'items='+items+'&total='+total+'&page='+page;

	new Ajax.Updater(id, '/ajax/paging.php', {method:'post', postBody:submitBody, asynchronous:true, evalScripts: true, onComplete: init_paging } );
}

/* Bever Card aanvragen
----------------------------------------------------------------*/
function init_bevercardaanvragen() {
    if(document.getElementById('i_adres_num')) document.getElementById('i_adres_num').onblur = function () { ajax_straatEnWoonplaats('straatEnWoonplaats', 'i_postcode', 'i_adres_num'); }
    if(document.getElementById('i_postcode')) document.getElementById('i_postcode').onblur = function () { ajax_straatEnWoonplaats('straatEnWoonplaats', 'i_postcode', 'i_adres_num'); }
    //ajax_straatEnWoonplaats('straatEnWoonplaats', 'i_postcode', 'i_adres_num');
}

function ajax_straatEnWoonplaats(targetId, postcodeId, huisnummerId) {
	if (document.getElementById(postcodeId) != null) {
		var formPostcode = document.getElementById(postcodeId).value;
		var formHuisnummer = document.getElementById(huisnummerId).value;
        submitBody = 'postcode=' + formPostcode + '&nummer=' + formHuisnummer;
		new Ajax.Updater(targetId, '/ajax/webservice_address.php', {method:'post', postBody:submitBody, onComplete:function(request){checkEmptyDiv(targetId);},asynchronous:true,evalScripts:true});
	}
}

function checkEmptyDiv(elementId) {
}

/* Artikelgroep prijs slider
----------------------------------------------------------------*/

function init_slider(minimun, maximum, selectMin, selectMax) {
	jQuery("#slider-range").slider({
		range: true,
		min: minimun,
		max: maximum,
		values: [selectMin, selectMax],
		minRange: 1,
		animate: true,
		slide: function(event, ui) {
			jQuery("#slider-selected-range").html('Prijsbereik: &euro;&nbsp;' + ui.values[0] + ' -  &euro;&nbsp;' + ui.values[1]);
		},
		change: function(event, ui) {
			update_pricefields(ui.values[0], ui.values[1]);
			gotoPage(1);
			
			var focused = jQuery(this).find('.ui-slider-handle.ui-state-focus');
			var index = jQuery(this).find('.ui-slider-handle').index(focused);
			
			if (index == 0) {
				//alert('ondergrens handle: '+jQuery(this).slider('values', index));
				pageTracker._trackEvent('Prijs begrenzer', 'Ondergrens', '', jQuery(this).slider('values', index));
			} else {
				//alert('bovengrens handle: '+jQuery(this).slider('values', index));
				pageTracker._trackEvent('Prijs begrenzer', 'Bovengrens', '', jQuery(this).slider('values', index));
			}

		}
		
	});
	jQuery("#slider-range-price .left").html('&euro;&nbsp;' + jQuery("#slider-range").slider("option","min") +',-' );
	jQuery("#slider-range-price .right").html('&euro;&nbsp;' + jQuery("#slider-range").slider("option","max")+',-');
	jQuery("#slider-selected-range").html('Prijsbereik: &euro;&nbsp;' + jQuery("#slider-range").slider("values", 0) + ' - &euro;&nbsp;' + jQuery("#slider-range").slider("values", 1));
	jQuery("#slider-range a:first").css({ top: "-2px", background : "url(/img/slider_left.gif)"});
}

function update_pricefields(min_prijs, max_prijs) {
	jQuery('#min_prijs').val(min_prijs);
	jQuery('#max_prijs').val(max_prijs);
}

/* SHORT GENERIC ONLOAD BY BROTHERCAKE
----------------------------------------------------------------*/
if(typeof window.addEventListener != 'undefined') {
	window.addEventListener('load', init, false);
} else if(typeof document.addEventListener != 'undefined') {
	document.addEventListener('load', init, false);
} else if(typeof window.attachEvent != 'undefined') {
	window.attachEvent('onload', init);
}
