//
// on dom load
//
document.observe('dom:loaded', function(){
	
	// sifr
	if(typeof sIFR == "function"){
		sIFR.replaceElement(named({sSelector:"h1.myheaderclassh1", sFlashSrc:"http://www.allesoverhypotheken.nl/templates/frontend/img/maxce.swf", sColor: "#000000", sWmode: "transparent"}));
		sIFR.replaceElement(named({sSelector:"h1.myheaderclassh1_5", sFlashSrc:"http://www.allesoverhypotheken.nl/templates/frontend/img/maxce.swf", sColor: "#000000", sWmode: "transparent"}));
		sIFR.replaceElement(named({sSelector:"h2.myheaderclassh2", sFlashSrc:"http://www.allesoverhypotheken.nl/templates/frontend/img/maxce.swf", sColor: "#000000", sWmode: "transparent"}));	
		sIFR.replaceElement(named({sSelector:"h3.myheaderclassh3", sFlashSrc:"http://www.allesoverhypotheken.nl/templates/frontend/img/maxce.swf", sColor: "#2C69F5", sWmode: "transparent"}));	
		sIFR.replaceElement(named({sSelector:"h4.myheaderclassh4", sFlashSrc:"http://www.allesoverhypotheken.nl/templates/frontend/img/maxce.swf", sColor: "#000000", sWmode: "transparent"}));				 
	};
	
	// pdf knopej
	setPDFLink(pdfUri);
	
	if(changemenu) {
		toggleMenu();
		faseMenu();
	}
	
	// papertrail
	if(loggedIn){
		addPapertrail();
		parsePapertrail();	
	}
	else
	{
		// login velden
		checkBackground('username_rechts', 'email');
		checkBackground('password_rechts', 'wachtwoord');
	}
	// tooltips
	$$('a[rel]').each(function(element){
		if(!element.rel.empty()) {
			if(element.rel == 'deletelink')
				element.replace(element.innerHTML);
			else
				new Tip(element, element.rel, { className: 'aoh'} );
		}
	});
	
	// woordenboek abbr
	$$('acronym').each(function(element){
		if(!element.title.empty()) {
			var url = element.innerHTML.toLowerCase().replace(new RegExp( " ", "g" ), "-");
			url = 'http://www.allesoverhypotheken.nl/woordenboek/'+url.substr(0, 1)+"/"+url+'.html';
			var html = '<div class="text">'+element.title+'</div><div class="footer"><a href="'+url+'">Lees meer</a></div>';
			new Tip(element, html, {title : element.innerHTML.capitalize(), 
									hideOn: { element: 'tip', event: 'mouseout'}, 
									hideAfter: 1.5, 
									hook: { tip: 'topLeft', target: 'bottomLeft'}, 
									offset: { x: 0, y: 5 },
									className: 'woordenboek'});
			element.title='';
		}
	});
	
	// done
});



function addBookmark(title,url) {
	if (window.sidebar) {
		window.sidebar.addPanel(title, url,"");
	} else if( document.all ) {
		window.external.AddFavorite( url, title);
	} else if( window.opera && window.print ) {
		return true;
	}
}



//
// global stuff
//


String.prototype.capitalize = function(){ //v1.0
    return this.replace(/\w+/g, function(a){
        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
    });
};

function in_array( array,  obj ) {
	var len = array.length;
	for ( var x = 0 ; x <= len ; x++ ) 
	{
		if ( array[x] == obj ) 
			return true;
	}
	return false;
};

function toggleContact(elementName, imgName)
{
	var el = $(elementName);
	var img = $(imgName);
	if(el)
	{
		if(el.style.display == "none")
		{
			el.style.display = "block";
			if(img)
				img.src = 'http://www.allesoverhypotheken.nl/templates/frontend/img/icon_meerinfo_on.jpg';
		}
		else
		{
			el.style.display = "none";
			if(img)
				img.src = 'http://www.allesoverhypotheken.nl/templates/frontend/img/icon_meerinfo_off.jpg';
		}
	}
}

function contactToggle(obj,parent) {
	var el = document.getElementById(obj);
	var par = document.getElementById(parent);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
		par.className = 'block_right_expand_item_expand';		
	}
	else {
		el.style.display = 'block';
		par.className = 'block_right_expand_item_collapse';
	}
}


//
// Favorieten.
//
function getFolder()
{
	var ul = document.getElementById('menu_container');
	for(i=0; i<ul.childNodes.length; i++)
	{
		if(ul.childNodes[i].nodeName == "LI")
		{
			var className = ul.childNodes[i].firstChild.className;
			var index = className.lastIndexOf('_');
			if(index > -1)
			{
				if(className.substring(index+1) == 'active')
				{
					return ul.childNodes[i].firstChild.innerHTML;
				}
			}
		}
	}
	return 'overige';
}
function addFavoriet()
{
	if(!loggedIn)
	{
		var aanmelden = confirm('U dient een persoonlijk dossier te hebben om deze pagina op te slaan, wilt u er nu een aanmaken?');
		if(aanmelden)
		{
			document.location = "http://www.allesoverhypotheken.nl/aanmelden.html";
		}
		return;
	}
	var titel = document.title;
	var index = titel.indexOf('-');
	if(index != -1)
		titel = titel.substring(0, index-1);
	if(titel.length < 2)
		titel = document.title;
		
	var name = prompt('Onder welke naam wilt u deze pagina opslaan?', titel);
	
	if(name)
	{
		// later even kijken of we dit kunnen posten.
		var loc = ("http://www.allesoverhypotheken.nl/persoonlijkdossier/favorieten.html?folder=" + encodeURI(getFolder().toLowerCase()) + '&naam=' + encodeURI(name) + '&url=' + encodeURI(document.location));
		window.location = loc;
	}
}


//
// print
//
function printPage()
{
	// url bouwen
	var url = document.location.href;
	if(url.indexOf("?") > -1)
		url += '&print';
	else
		url += '?print';

	
	//screen pos
	var left=(screen.width-705)/2;
	var height = screen.height;
	var args = 'width=705,height='+height+',top=0,left='+left+',scrollbars=1';
	
	// pop it up!
	newwindow = window.open(url, '', args);
	if (window.focus) newwindow.focus();
}

//
// stuurDoor
//
function stuurDoor(form)
{
	var left=(screen.width/2)/2;
	var width = (screen.width/2);
	var height = (screen.height/3)*2;
	var top = (screen.height/3)/2;
	var args = 'width='+width+',height='+height+',top='+top+',left='+left+',scrollbars=1';
	
	// pop it up!
	windowName = 'stuurdoor';
	if(form) form.target = windowName;
	newwindow = window.open('http://www.allesoverhypotheken.nl/stuurdoor.html', windowName, args);
	if (window.focus) newwindow.focus();
}

function taf(form)
{
	if("" == (form.naam.value)) {
		alert('Uw naam is een verplicht veld!');
		return;
	}
	if("" == (form.email.value)) {
		alert('Uw email is een verplicht veld!');
		return;
	}
	if("" == (form.naamontvanger.value)) {
		alert('Naam ontvanger is een verplicht veld!');
		return;
	}
	if("" == (form.emailontvanger.value)) {
		alert('Email ontvanger is een verplicht veld!');
		return;
	}
	
	//start ajax
	var params = $(form).serialize(); 
	form.disable();
	
	new Ajax.Request('http://www.allesoverhypotheken.nl/ajax.php?type=taf',
	{
		method:'post',
		parameters: params,
		onSuccess: function(transport){
			var response = transport.responseText.evalJSON();
			
			if(response.succes == true)
			{
				alert('Er is een email gestuurd naar '+form.naamontvanger.value);
				form.reset();
			}
			else
			{
				var message = "Error:";
				response.message.each(function(item){message+= "\n" + item});
				alert(message);
			}
		
			// als ajax klaar
			form.enable();
		}
	});
}


//
// show vragen formulier
//
function show_vragen()
{
	new Ajax.Request(
		'http://www.allesoverhypotheken.nl/ajax.php?type=vragenOverlay', {
			method: 'get',
			onSuccess: function(transport) {
				var json = transport.responseText.evalJSON(true);
				document.body.insert({'top':json.data});
				
				var arrayPageSize = getPageSize();
				
				// overlay
				objOverlay = document.getElementById("overlay");
				objVragen = document.getElementById("vragen_main");
				
				// set height of Overlay to take up whole page and show
				objOverlay.style.height = (arrayPageSize[1] + 'px');
				objOverlay.style.display = 'block';
				objVragen.style.display = 'block';
				
				// Hide select boxes as they will 'peek' through the image in IE
				selects = document.getElementsByTagName("select");
				for (i = 0; i != selects.length; i++) {
						selects[i].style.visibility = "hidden";
				}
				
				// kan dat niet netter?
				sIFR.replaceElement("h1", "http://www.allesoverhypotheken.nl/templates/frontend/img/maxce.swf", named({sColor: "#000000", sWmode: "transparent"}));
			}
		}
	);
}

//
// hide vragen()
//
function hide_vragen()
{
	objOverlay = document.getElementById("overlay");
	objVragen = document.getElementById("vragen_main");
	
	// hide lightbox and overlay
	objOverlay.style.display = 'none';
	objVragen.style.display = 'none';
	
	// make select boxes visible
	selects = document.getElementsByTagName("select");
    for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}

//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

//
// linkje naar PDF
//
function setPDFLink(uri) {
	var url = uri;
	if(uri.indexOf('?') > -1)
		url = uri+'&download=pdf';
	else
		url = uri+'?download=pdf';
	if($('pdf_1'))$('pdf_1').href = url;
	if($('pdf_2'))$('pdf_2').href = url;
}


function toggleMenu()
{
	if($('submenu')){
		var displayType = readCookie('dt');
		var atag = document.createElement('a');
		Element.extend(atag);
		if(displayType == 'normaal')
			atag.innerHTML = 'In fasen';
		else
			atag.innerHTML = 'Op onderwerp';
		atag.addClassName('pdflink');
		atag.href = 'javascript:void(0)';
		atag.onclick = function() {
			var displayType = readCookie('dt');
			if(displayType == 'normaal')
				createCookie('dt', 'stap');
			else
				createCookie('dt', 'normaal');
			location.reload(true);
		};
		$('submenu').insert({'top':atag});
	}
}

function faseMenu() {
	$$("#submenu li.stap ul").each(function(element){
		element.style.display = 'none';
	});
	$$("#submenu li.stap_actief ul").each(function(element){
		element.style.display = 'block';
	});
}

function toggleSubMenuStap(stap) {
	$$("#submenu li.stap_actief").each(function(element){
		element.className = 'stap';
	});
	stap.parentNode.className = 'stap_actief';
	faseMenu();
}

//
// Checklist
//
function toggleChecklistitem(id)
{
	var element = $("checkbox_"+id);
	new Ajax.Request('http://www.allesoverhypotheken.nl/ajax.php?type=checkItem&id='+escape(id), {
		method: 'get',
		onSuccess: function(transport) {
			var json = transport.responseText.evalJSON(true);
			if(json['succes'] == true)	{
				if(json['data'] == 'checked' )
					element.checked = true;
				else
					element.checked = false;
			}else{
				alert(json['message']);	
			}
		}
	});
}

//
// validate Url
// 
var reg = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 
function validateURL(textfield){
	if (textfield.value != "")	{
		if (textfield.value.substring(0,7) != "http://" && textfield.value.substring(0,8) != "https://") {
			textfield.value = "http://" + textfield.value;
		}
		if (!reg.test(textfield.value)){
			alert("Invalid web site address");
			textfield.focus();
			return false;
		}
		return true;
	}
	return false;
}



//
// Inlog scherm balk rechts
//
function showBackground(field, classname){
	if($(field).value=="")
		$(field).addClassName(classname);
}

function hideBackground(field, classname){
	$(field).removeClassName(classname);
}


function checkBackground(field, classname){
	if($(field) && $F(field)) {
		if($F(field).empty())
			showBackground(field, classname);
		else
			hideBackground(field, classname);
	}
}

//
// 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);
}