/* MISC */

function checkActiveLinks(base) {
	if(typeof(base) == 'undefined' && typeof(document.path) != 'undefined') base = document.path;
	var url = document.dynamicLoad ? _dynamicUrlCurrent : window.location.href;
	
	var linksArray = $$('a');
	for(i = 0; i < linksArray.length; ++i ){
		var a = linksArray[i];
		var link = a.href;
		
		if(document.dynamicLoad && a.href.substring(0, document.path.length) == document.path && (!a.attributes.getNamedItem('dynamic') || a.attributes.getNamedItem('dynamic').value != 'false')) {
			a.href = 'javascript:dynamicLoad(\'' + a.href + '\');';
		}
		
		if(link.substring(0, 23) == 'javascript:dynamicLoad(') link = link.substring(24, link.length - 3);
		if(link.substring(link.length-5, link.length) == '.html') link = link.substring(0, link.length - 5);
		a.removeClass('active').removeClass('active_exact');
		
		if(link == url || (link != base && link != (base + '/') && link == url.substring(0, link.length))) {
			if(link == url || (link + '/') == url || link == (url + '/')) {
				a.addClass('active_exact');
			}
			if(url.length <= link.length || (url.length > link.length && (url.substring(link.length, link.length+1) == '/' || url.substring(link.length, link.length+5) == '.html'))) {
				a.addClass('active');
			}
		}
	}
}

function switchVersion(url, redirect) {
	createCookie('mobileRedirect', (redirect === true), 365);
	window.location = url;
}

/* SUBMENUS */

function positionSubMenus(offset, min, max) {
	if(typeof(offset) == 'undefined') offset = 0;
	if(typeof(min) == 'undefined') min = false;
	if(typeof(max) == 'undefined') max = false;
	
	var menus = $$('div[class$=menu_hori]');

	var lists = new Array();
	for(var i = 0; i < menus.length; ++i) {
		if(menus[i].childNodes) {
			for(var j = 0; j < menus[i].childNodes.length; ++j) {
				if(menus[i].childNodes[j].nodeName == 'UL') {
					lists[lists.length] = menus[i].childNodes[j];
				}
			}
		}
	}
	
	var listItems = new Array();
	for(var i = 0; i < lists.length; ++i) {
		for(var j = 0; j < lists[i].childNodes.length; ++j) {
			if(lists[i].childNodes[j].nodeName == 'LI') {
				listItems[listItems.length] = lists[i].childNodes[j];
			}
		}
	}
	
	for(var i = 0; i < listItems.length; ++i) {
		var menu = listItems[i];
		var submenu = null;
		
		for(var j = 0; j < menu.childNodes.length; ++j) {
			if(menu.childNodes[j].nodeName == 'UL') {
				submenu = menu.childNodes[j];
				break;
			}
		}
		
		if(submenu != null && menu != null) {
			var item_offset = menu.offsetLeft + offset;
			if(min && item_offset < min) item_offset = min;
			if(max && item_offset > max) item_offset = max;
			
			submenu.style.left = parseInt(item_offset) + 'px';
			submenu.style.zIndex = 100;
			
			$(menu).addEvent('mouseover', showSubMenu);
			$(submenu).addEvent('mouseover', showSubMenu);
			$(menu).addEvent('mouseout', hideSubMenu);
			$(submenu).addEvent('mouseout', hideSubMenu);
		}
	}
}

function showSubMenu(e) {
	var submenu = getEventSubmenu(e);
			
	if(submenu != null && typeof(submenu) == 'object') {
		submenu.style.display = 'block';

		// save the menu only for ie.. grmbl
		document.submenu_active = submenu;
	}
}

function hideSubMenu(e) {
	var submenu = getEventSubmenu(e);

	// load the menu only for ie.. grmbl
	if(submenu == null || typeof(submenu) != 'object') {
		submenu = document.submenu_active;
	}

	if(submenu != null && typeof(submenu) == 'object') {
		submenu.style.display = 'none';
	}
}

function getEventMenu(e) {
	var obj = window.event ? window.event.srcElement : e.target;
	
	while(obj && obj.nodeName != 'LI') obj = obj.parentNode;
	if(obj && obj.parentNode.parentNode.nodeName == 'LI') obj = obj.parentNode.parentNode;
	
	return obj;
}

function getEventSubmenu(e) {
	var menu = getEventMenu(e);	
	
	if(menu) {
		var submenu = null;
		
		for(var j = 0; j < menu.childNodes.length; ++j) {
			if(menu.childNodes[j].nodeName == 'UL') {
				submenu = menu.childNodes[j];
				break;
			}
		}
		return submenu;
		
	} else {
		return null;
	}
}

/* COOKIES */

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 
		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);
}

/* ICEPAY */

function createIcepayWindow(issuer, issuer_ideal) {

	if(issuer == 'IDEAL') issuer = issuer_ideal;

	var url = document.path + '/icepay_checkout.php?issuer=' + issuer;
	var h, w, s = 0;
	switch (issuer) {
		case 'ABNAMRO': h = 750; w = 1000; break;
		case 'ASNBANK': h = 750; w = 790; break;
		case 'VANLANSCHOT': h = 660; w = 680; break;
		case 'FRIESLAND': h = 750; w = 1025; break;
		case 'RABOBANK': h = 780; w = 780; s = 1; break;
		case 'ING': h = 700; w = 800; break;
		case 'SNSBANK': h = 640; w = 771; break;
		case 'SNSREGIOBANK': h = 640; w = 771; break;
		case 'MASTER': h = 600; w = 600; break;
		case 'VISA': h = 600; w = 600; break;
		case 'AMEX': h = 600; w = 600; break;
		case 'PBAR': h = 500; w = 600; break;
		case 'WALLIE': h = 240; w = 380; break;
		case 'INCASSO': h = 600; w = 620; s = 1; break;
		case 'SMS' : h = 600; w = 800; s = 1; break;
		case 'WIRE': h = 600; w = 620; s = 1; break;
		case 'DIRECTEBANK' : h = 650; w = 900; s = 1; break;
		case 'FASTERPAY' : h = 400; w = 600; break;
		case 'PAYPAL' : h = 400; w = 600; break;
		default: return alert( 'Kies een betaalmethode' );
	}

	var x = (screen.width - w) / 2;
	var y = (screen.height - h) / 2;

	var iceW = window.open(url, '_blank', 'height=' + h + ' , width=' + w + ' , left=' + x + ' , top=' + y + (s == 1 ? ' , scrollbars=yes' : ''));
	iceW.focus();
	return false;
}

/* DYNAMIC PAGELOAD */

var _dynamicUrlHistory = new Array();
var _dynamicUrlCurrent = window.location.href;

var _dynamicJsIncl = new Array();
var _dynaminJsRun = new Array();

function dynamicLoad(url_, back) {
	if(typeof(dynamicLoadBefore) == 'function') dynamicLoadBefore(url_);
	
	if(_dynamicUrlCurrent != url_ && (typeof(back) == 'undefined' || back == false)) {
		_dynamicUrlHistory.push(_dynamicUrlCurrent);
	}
	_dynamicUrlCurrent = url_;
		
	new Request.JSON({
		url: url_, 
		onSuccess: function(data) {
			document.title = data.meta_title;
			document.body.className = data.body_class;
			
			if($('trail')) $('trail').innerHTML = data.trail;
			$('content').innerHTML = data.html;
			
			_dynaminJsRun = data.js_run;
			
			var dynamicJsAdded = 0;
			for(var i = 0; i < data.js_incl.length; ++i) {
				if(_dynamicJsIncl[data.js_incl[i]] != 1 && _dynamicJsIncl[data.js_incl[i]] != 2) {
					var js = data.js_incl[i];
					
					_dynamicJsIncl[js] = 1;
					
					var script = document.createElement('script');
					script.setAttribute('type', 'text/javascript');
					script.setAttribute('src', js);
					script.onload = function() { dynamicLoadJsLoaded(js); };
					document.getElementsByTagName('head')[0].appendChild(script);
					
					++dynamicJsAdded;
				}
			}
			if(dynamicJsAdded == 0) {
				dynamicLoadJsLoaded();
			}
		},
		onError: function(text, error) {
			window.location = url_;
		}}).get({'js': 1});
}

function dynamicLoadJsLoaded(js) {
	if(typeof(js) != 'undefined') _dynamicJsIncl[js] = 2;
	
	var run = true;
	for(var i in _dynamicJsIncl) {
		if(_dynamicJsIncl[i] == 1) {
			run = false;
		}
	}
	
	if(run) {
		for(var i = 0; i < _dynaminJsRun.length; ++i) {
			try {
				eval(_dynaminJsRun[i]);
			} catch(e) {
				console.error(e.msg);
			}
		}
		_dynaminJsRun = new Array();
		
		if(typeof(dynamicLoadAfter) == 'function') dynamicLoadAfter();
		
		Mediabox.scanPage();
		checkActiveLinks();
	}
}

/* BROWSER CHECK */

function checkVersion() {
	if(Browser.ie && Browser.version <= 6) {
		var old_version = document.createElement('div');
		old_version.setAttribute('id', 'old_version');
		old_version.setAttribute('class', 'old_version');
		old_version.className = 'old_version';
		
		old_version.innerHTML = '<div class="info"></div><span>U maakt gebruik van een verouderde browser. Voor een optimale weergave raden wij u aan uw browser te updaten. <a class=\"icon_firefox\" target="_blank" href="http://www.mozilla.com/firefox" title="Download Firefox"></a><a class=\"icon_ie\" target="_blank" href="http://www.microsoft.com/netherlands/windows/internet-explorer/" title="Download Internet Explorer"></a></span>';
		
		document.body.insertBefore(old_version,document.body.firstChild);
	}
}
addEvent('load', checkVersion);

