//when the dom is ready
window.addEvent('domready', function() {
	
	//store titles and text
	$$('#h_buttons a').each(function(element,index) {
		if(element.get('title')) {
			var content = element.get('title').split('::');
			element.store('tip:title', content[0]);
			element.store('tip:text', content[1]);
		}
	});
	
	//create the tooltips
	var tipz = new Tips('#h_buttons a',{	//className: 'tipz', fixed: true,
		hideDelay: 250,
		showDelay: 650,
		offsets: {'x':20,'y':20}
	});
	
	tipz.addEvents({
		'show': function(tip) {	tip.fade('in');		},
		'hide': function(tip) {	tip.fade('out');	}
	});
	
	checkForContactForm();

	if(Browser.Engine.trident) return;
	
	accordionprops = {	opacity: true, alwaysHide:false, show:-1 };
	var accordion = new Accordion($$('#h_buttons a.level1'), $$('#h_buttons div.level1'), accordionprops);
	
	//accordionprops['onActive'] = function(toggler,element) { toggler.getParent().setStyle('height',toggler.getStyle('height')*element.getChildren().length);};
	//var accordion2 = new Accordion($$('a.level2'), $$('div.level2'), accordionprops);
	


	var req = new Request.HTML({
		url:'pageload.php', 
		//encoding:'ISO-8859-1',
		evalScripts:true,
		evalResponse:true,
		onSuccess: function(html) {
//			html = html.standarize();
			
			if(Browser.Engine.trident) {
				$('h_content').set('html','');
				$('h_content').adopt(html);
			} else {
				if($('tempcontent')) $('tempcontent').destroy();
				
				var tmp = new Element('div',{id:'tempcontent'})
				.setStyle('opacity',0)
				.adopt(html)
				.inject($('h_content').getParent(),'bottom');
				
				var tmp2 = $('h_content');
				tmp.set('id','h_content');
				tmp2.set('id','tempcontent');
				
				tmp2.fade(0);
				tmp.fade(1);			
			}

			checkForContactForm();

			$$('#h_content a').each(function(el,x){	checkLink(el,req);	});
			
		},
		onFailure: function() {
			$('h_content').set('text', 'The request failed.');
		}
	});
	
	
	var loc=document.location.toString();
	$$('a').each(function(el,x) {
		checkLink(el,req);
	 	
	 	if(loc.contains('#') && loc.substring(loc.indexOf('#')+1)==el.getProperty('href').substring(1)) {
	 		el.fireEvent('click');
	 	}

	 	el.addEvent('click',function(e){this.blur()});
	}); 	
	
});
//window.onbeforeunload=function(e) {
	//console.log('beforeunload');
	//alert('unload');
//};
function checkLink(el,req) {
	var hrf = el.getProperty('href').toString();
	if((hrfI = hrf.indexOf('?')) != false) hrf = hrf.substr(hrfI);
	if( hrf.substr(0,3) == '?p=' && !(el.getProperty('target'))) {
		hrf = hrf.split('?')[1];
		el.href = '#'+hrf.substring(2);
		el.addEvent('click', function(event) {
			req.get('pageload.php?'+hrf);
		});
	}
}

function checkForm(form) {	
	
	//fieldtype regular expressions
	validateExp = {
		'email' : '^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)$',
		'phone' : '^0[1-9][0-9]{8}$',
		'postcode':'^[1-9][0-9][0-9][0-9][A-Z|a-z][A-Z|a-z]$'
	}
	
	sendform = true;

	//loop through form elements
	$$('#'+form.name+' input, #'+form.name+' select, #'+form.name+' textarea').each(function(item,x){
	
		// Check required fields
		tempReq = false;
		tempReq = 	(item.get('required') && (
						item.value		== ""
						|| ( item.type	== 'checkbox' 	&& !item.checked)
						|| (item.type	== 'radio' 		&& !radioChecked(item.name)) 
					));
		
		// Check special fields
		tempType = false;
		if( item.get('inputType')!=null && item.value!='') {
			testvalue = item.value;
			switch(item.get('inputType')) {
				case 'phone':	
				case 'postcode':	
					testvalue = get_alphanumeric(testvalue);	
				break;
			}
			
			tempType = !testvalue.test(validateExp[item.get('inputType')],"i");
		}
		
		// set or unset formerror class
		if( item.get('required') || item.get('inputType')!=null ) {
			if(tempReq || tempType) {
				item.addClass('formerror');
				sendform = false;
			} else {
				item.removeClass('formerror');
			}
		} 
	});
	//sendform = true;
	if(sendform) form.submit();
}
function getCheckedRadioValue(radioname) {
	rad= document.getElementsByName(radioname); 
	checkedValue=null;
	for(x=0;x<rad.length;x++) if(rad[x].checked) checkedValue=rad[x].value;
	return checkedValue;
}
function radioChecked(radioname) {
	return getCheckedRadioValue(radioname)!=null;
}

function get_alphanumeric(number) {
	var nos = new RegExp('[0-9|A-Z|a-z]');
	output = '';
	for(x=0 ; x<number.length ; x++) {
		if(number[x].match(nos)) output = output + number[x];
	}
	return output;
}
function playVideo(video) {
	$('h_video').setStyles({'display':'block','opacity':0});
	$('h_video').fade(1);
	var s1 = new SWFObject("_include/player.swf","flashplayer","512","288","9","#F6F6F7");
	s1.addParam("allowfullscreen","true");
	s1.addParam("allowscriptaccess","always");
	s1.addParam("flashvars","file=../files/?f="+video+".flv&autostart=true&lightcolor=c9252b&backcolor=333333&frontcolor=ffffff&controlbar=over");
	s1.write("h_flash");

}
function closeVideo() {
	$('h_flash').set('html','');
//	$('h_video').setStyle('display','none');
	$('h_video').fade(0);
}

function showIf(el,what,value) {
	$(what).setStyle('display', (el.value==value) ? '' : 'none' );
}


var checkForContactForm = function(){
	if(!$('contactform')) return;
	
	$('factuuradres_afwijkend_ja' ).addEvent('click',function(){$('factuuradres').setStyle('display','');});
	$('factuuradres_afwijkend_nee').addEvent('click',function(){$('factuuradres').setStyle('display','none');});
	$('factuuradres_afwijkend_nee').set('checked','checked').fireEvent('click');
	
	$('boek_ontvangen_ja' ).addEvent('click',function(){$('h_boekontvangen').setStyle('display','');});
	$('boek_ontvangen_nee').addEvent('click',function(){$('h_boekontvangen').setStyle('display','none');});
	$('boek_ontvangen_ja').set('checked','checked').fireEvent('click');
	
	$('hoe_bekend').addEvent('change',function(e){
		$('hoe_bekend_anders').setStyle('display', ($('hoe_bekend').value == 'anders'?'':'none'));
	});
	$('hoe_bekend').fireEvent('change');
	
	$('boek_adres').addEvent('click',function(){$('boekadres').setStyle('display',($('boek_adres').value=='ander_adres'?'':'none'));});
	$('boek_adres').fireEvent('click');	
	
//	$('contactform').addEvent('submit',function(){return false;});
	$('contactform').addEvent('submit',function(){
		 //console.log('sbmit');
		var w_aEls = $A(this.elements);
		var w_bErrors = false;
		
		var t_sSubmitValue = $('b_inschrijven').get('value');
		$('b_inschrijven').set('disabled',true);
		$('contactform').addClass('formsending');
		$('b_inschrijven').set('value','Bezig met versturen ...');
		
		w_aEls.each(function(p_eEl,x){
			p_eEl = $(p_eEl);
			p_eEl.removeClass('formerror');
			
			if(
				   (p_eEl.isVisible() && p_eEl.hasClass('required'))
				&&	(
					   ( p_eEl.get('type')=='radio' && !$$('input[name='+p_eEl.get('name')+']').some(function(item){return item.checked;}) )
				 	|| (p_eEl.get('type')!=='radio' && (
				 		   ( (p_eEl.get('name') == 'email') && !( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(p_eEl.value) ) )
				 		|| ( (p_eEl.get('name') != 'email') && (p_eEl.value=='') )
				 	))
				)   
			) {
				p_eEl.addClass('formerror');
				w_bErrors = true;
			}
			
			
		},this);
		//console.log("w_bErrors",w_bErrors);    
		
		if(!w_bErrors) {
			$('contactform').submit();
		} else {
			$('b_inschrijven').set('value',t_sSubmitValue);
			$('b_inschrijven').set('disabled',false);
			$('contactform').removeClass('formsending');
		}		

		return false;//!w_bErrors;

	});
	
}


Element.implement({

  isHidden: function(){
    var w = this.offsetWidth, h = this.offsetHeight,
    force = (this.tagName === 'TR');
    return (w===0 && h===0 && !force) ? true : (w!==0 && h!==0 && !force) ? false : this.getStyle('display') === 'none';
  },

  isVisible: function(){
    return !this.isHidden();
  }

});


