window.addEvents({
	'domready': function() {
		initQuestionform();
		initPageBrowserCentering();
		setDefaultInputText();
		findExternalLinks();
		getCustomRadioButtons();
		navigationRollover();
		if (Browser.Engine.trident4) ie6Fix();
    },
	'load': function() {
		homeSlideshow();
	}
});

/**
 * Send Question Form
 * 
 * @author Bram van Haren, <bram.van.haren@efocus.nl>
 * @author Lee Boonstra, <lee.boonstra@efocus.nl>
 * @version 1.0 26 mei, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @return void
 */
function initQuestionform() {
	if ($('questionform')) {
		$('questionform').addEvent('submit', function(e) {
			
			e.stop();
			this.set('send', {onComplete: function(response) {
				
				var obj = JSON.decode(response, true);
				
				if (obj.errorMessage) {
					alert (obj.errorMessage);
				} else {
					location.href = "/test-uw-bevlogenheid/#top";
				}
				
				obj.completedObjects.each(function(item){
					elemId = "question" + item;
					$(elemId).removeClass("error");
					
					elemId = "question_span" + item;
					$(elemId).addClass("hidden");
				});
				
				$('testresult').setStyle('display', 'none');

				
				if (obj.errorObjects.length>0) {
					obj.errorObjects.each(function(item){
						elemId = "question" + item;
						$(elemId).addClass("error");
						
						elemId = "question_span" + item;
						$(elemId).removeClass("hidden");
					});
					$('testresult').setStyle('display', 'none');
				} else {
					$('testresult').setStyle('display', 'block');
				}
				
				if (obj.scoreText && obj.scoreText.length>0) {
					$('testresultTitle').innerHTML = obj.scoreTitle;
					$('testresultText').innerHTML = obj.scoreText;
				}
				
				if (obj.scoreUrl && obj.scoreUrl.length>0) {
					$('testresultUrl').href = obj.scoreUrl;
					$('testresultUrl').setStyle('display', 'block');
				} else {
					$('testresultUrl').setStyle('display', 'none');
				}
				
			
			
			}});
					
			this.send();
		});
	}
}



/**
 * Centers the page browser.
 * 
 * @author Ralph Meeuws <ralph.meeuws@efocus.nl>
 * @author Phi Son Do <phison.do@efocus.nl>* 
 * @version 1.0, 26 mei, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @return void
 */
function initPageBrowserCentering() {
	arrPageBrowsers = $$('.tx-pagebrowse');
	if (arrPageBrowsers){
		arrPageBrowsers.each(function(elPageBrowser){
			intPageBrowserWidth = elPageBrowser.getWidth();
					
			elPageBrowser.setStyles({
				'position': 'relative',
				'left': '50%',
				'width': intPageBrowserWidth,
				'margin-left': -(intPageBrowserWidth / 2)
			});
		});
	}
}


/**
 * Toggles default text in text inputfields
 *
 * @author Phi Son Do<phison.do{AT}efocus.nl>
 * @version 1.0, 6 mei, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @requires MooTools 1.2.4 More, <http://www.mootools.net> 
 * @return void
 */
function setDefaultInputText() {
	var arrInputFields = $$('.defaultText');
	
	if(arrInputFields){
		arrInputFields.each(function(elInputField) {
			elInputField.defaultText = elInputField.value;
			
			elInputField.addEvents({
				'focus': function() {
					if (elInputField.value == elInputField.defaultText) {
						elInputField.value = '';
						elInputField.setStyle('color', "#b2b2b2"); 
					}
				},
				'blur': function() {
					if (elInputField.value == '') {
						elInputField.value = elInputField.defaultText;
						elInputField.setStyle('color','#b2b2b2');
					}
				}
			});
		});
	}
}

/**
 * Opens external links valid in a new window without the target attribute.
 * 
 * @author Mirjam Verloop, <mirjam.verloop@efocus.nl>
 * @version 1.0, 12 feb, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @requires <a href="http://www.efocus.nl/" class="external">eFocus</a>
 * @return void
 */
function initExternalLinks() {
	var arrExternalLinks = $$('a.external');
	if (arrExternalLinks.length > 0) {
		arrExternalLinks.each(function(elExternalLink) {
			elExternalLink.addEvent('click', function(event) {
				event.stop();
				window.open(this.get('href'));
			});
		});	
	}
}

/**
 * Find all external links, and add class External
 * 
 * @author Mirjam Verloop, <mirjam.verloop@efocus.nl>
 * @version 1.0, 12 feb, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @requires <a href="http://www.efocus.nl/" class="external">eFocus</a>
 * @return void
 */
function findExternalLinks () {
	
	var allExternalLinks = $$('a[href^="http://"]');
	var thisDomain = window.location.host;
	
	allExternalLinks.each(function(thisLink) {
		
		if (!thisLink.get('href').contains(thisDomain)) {
			thisLink.addClass('external');
		}
				
	});
	
	initExternalLinks();	
}


/**
 * Places custom Radio Buttons
 * 
 * @author Lee Boonstra, <lee.boonstra@efocus.nl>
 * @version 1.0 26 mei, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @param strFormId - string form id
 * @return void
 */
 function getCustomRadioButtons(strFormId){
   if($("questionform")){
    //count questions
    $$("ol.questionlist li ul").each(function(item, index){
       item.addClass("question_" + index);
     });
    
    //on click
    $$("ul.answerlist li span").addEvent('click', function(){
      var elQuestion = this.getParent().getParent();
      var elInputType = this.getParent().getElement('input');
      var intQuestionNum = elQuestion.get("class").split("question_")[1];
      
      
      //reset all radio boxes
      $$("ul.question_" + intQuestionNum + " li").each(function(item, index){
        item.getElement("span").set("class","inactive");
        item.getElement("input").set("value","false");
      });      
      
      //set custom radio box & hidden form element
      this.set("class","active");
      elInputType.set("value","true");
    });

   }
   
 } 


/**
 * Toggles navigation titles on rollover/rollout in order to correctly use the changing Cufon text.
 * 
 * @author Ralph Meeuws, <ralph.meeuws[AT]efocus.nl>
 * @version 1.0, 4 jan, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @requires MooTools 1.2.4 More, <http://www.mootools.net>
 * @return void
 */
function navigationRollover() {
	if (!$defined($(document).getElement('div.navigation ul'))) return false;
	
	var elNavigation = $(document).getElement('div.navigation ul');
	elNavigation.getChildren('li').each(function(elNavListItem){
		elNavListItem.addEvents({
			'mouseenter': function(){
				elNavListItem.getElement('h3.default').addClass('hidden');
				elNavListItem.getElement('h3.hover').removeClass('hidden');
			},
			'mouseleave': function(){
				elNavListItem.getElement('h3.default').removeClass('hidden');
				elNavListItem.getElement('h3.hover').addClass('hidden');
			}
		});
	});
}


/**
 * Loads the slideshow on the homepage
 * 
 * @author Ralph Meeuws, <ralph.meeuws[AT]efocus.nl>
 * @version 1.0 26 mei, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @requires MooTools 1.2.4 More, <http://www.mootools.net>
 * @requires EfxBaseSlideShow class
 * @return void
 */
function homeSlideshow() {
	if (!$defined($(document).getElement('ul.slideshow'))) return false;
	
	var objSlideshow = new EfxBaseSlideShow({
		arrSlides: $(document).getElements('ul.slideshow > li'),
		intInterval: 5000
	});
}


/**
 * fixed for ie6
 * 
 * @author Phi Son Do <phison.do@efocus.nl>* 
 * @version 1.0, 19 mei, 2011
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @return void
 */
function ie6Fix() {
	var navItems = $$('div.navigation ul li');
	var navItemFirst = $$('div.navigation ul li')[0];
	var navItemLast = $$('div.navigation ul li:last-child');
	navItemFirst.addClass('first');
	navItemLast.addClass('last');
	
	navItems.each(function(navItem){
		navItem.addEvent('mouseenter', function(){
		    navItem.addClass('hover');
		});
		navItem.addEvent('mouseleave', function(){
		    navItem.removeClass('hover');
		});
	});
	
}
