window.addEvents({
	'domready': function() {
		initQuestionform();
		initPageBrowserCentering();
		setDefaultInputText();
		findExternalLinks();
		getCustomRadioButtons();
		var objImageSwapper = new ImageSwapper();
    }
});

/**
 * 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();	
}

/**
 * The Image Swapper, swaps images based on menu rollovers.
 *
 * @author Lee Boonstra, <lee.boonstra@efocus.nl>
 * @version 1.0, 25 mei, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @requires Cufon 1.09, <http://cufon.shoqolate.com>
 * @return void
 */
ImageSwapper = new Class({
	initialize: function(options){
		this.elImageHolder = $$("div.home div.full div.visual");
		if(this.elImageHolder.length > 0) {
			this.getEventsImage();
		} else {
			this.getEvents();
		}
	},
	getEventsImage: function() {
		var elImage = this.elImageHolder.getElement("img");
		var elText = this.elImageHolder.getElement("div.overlay h2");

		$$('div.nav-title').addEvents({
		 'mouseenter': function(){
        var elImageSrc = this.getElement("span.imageSrc");
        var elImageAlt = this.getElement("span.imageAlt");
        if(elImageSrc) {
          elImage.set("src", elImageSrc.get("text"));
          elImage.set("alt", elImageAlt.get("text"));
          elText.set("html", elImageAlt.get("html"));
        }
        this.getElement("h3 a").setStyle("color","#fff");
        setVisualLink();
        Cufon.refresh();
     },
      'mouseleave': function(){
        $$("div.nav-title h3 a").setStyle("color","#00AAED");
        Cufon.refresh();
      },
     'click': function(){
        var strUrl = this.getElement("h3 a").get("href");
        document.location.href = strUrl;
      } 
		});
	},
	getEvents: function() {
		var elImage = this.elImageHolder.getElement("img");
		var elText = this.elImageHolder.getElement("div.overlay h2");

		$$('div.nav-title').addEvents({
		 'mouseenter': function(){
        this.getElement("h3 a").setStyle("color","#fff");
        Cufon.refresh();
     },
      'mouseleave': function(){
        $$("div.nav-title h3 a").setStyle("color","#00AAED");
        Cufon.refresh();
      },
     'click': function(){
        var strUrl = this.getElement("h3 a").get("href");
        document.location.href = strUrl;
      } 
		});
	}
});


/**
 * 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");
    });

   }
   
 } 

/**
 * Make home visual clickable, based on href of button
 * 
 * @author Phi Son Do, <phison.do@efocus.nl>
 * @version 1.0 27 mei, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @return void
 */
function setVisualLink(){
   var elImage = $$("div.home div.visual div.overlay");
	 var elVisualLink = $$("div.visual").getElement('a.imgLink').get('href');
	 
	 elImage.addEvent('click', function(){
	 	document.location.href = elVisualLink;
	 });
} 