window.addEvents({
	'domready': function() {
		findExternalLinks();
		initOverviewBlocks();
		initOverviewSitemap();
		initPageBrowserCentering();
		setDefaultInputText();
		loadRouteMap();
		initF4AccordionHome();
		initF4Accordion();
		initFormInfoWindow();
		initTooltip();
		removeMargin();
		initHomeBanners();
		initSubNav();
		
		initDatePicker();
		
		if(Browser.Engine.version <=4 && Browser.Engine.trident) addHoverIE6($$('div.header ul.mainmenu li, div.header ul.mainmenu li span'));
		
		if ($('pushbox')) {
			var pb = new ProgressPushbox({
				container: $('pushbox'),
				duration: 10
			});
		}
	},
	'load': function() {
		
		
	}
});


/**
 * initializes datepicker
 *
 * @author Mirjam <mirjam[AT]efocus.nl>
 * @since jan 2011
 * @return void
 */
 
function initDatePicker() {
	
	if (document.getElement('input.date')) {
		
		var objToday = new Date();
		var strToday = objToday.getFullYear().toString() + '-' + (objToday.getMonth() + 1).toString() + '-' +  objToday.getDate().toString();
		
		var objTomorrow = new Date();
		var strTomorrow = objTomorrow.getFullYear().toString() + '-' + (objTomorrow.getMonth() + 1).toString() + '-' +  (objTomorrow.getDate() + 1).toString();
		
		new efDatePicker('input.date', {
			pickerClass			: 'datepicker_vista',
			inputOutputFormat	: 'd-m-Y',
			allowEmpty			: true,
			positionOffset		: { x: -30, y: 0 },
			days				: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
			months				: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december']
		});
		
	};
}


/**
 * 
 * 
 * @author Bas van der Tpgt <bas.vander.togt@efocus.nl>
 */
function countUploadsAndSubmit() {
	var msg = 'U dient minimaal 1 bestand te uploaden';
	var formerrors = $$('ul.formerrors');
	var newerror = new Element ( 'li' , { 'text': msg });
	var form = $('claimsform');
	var newformerrors = new Element ( 'ul' , {'class': 'formerrors', 'style': 'clear: both; width: 555px;' });
	var files = $$('div.files div.file');
		
	if (files.length==0) {
		if (formerrors==false) {
			newformerrors.inject(form, 'top');
			newerror.inject(newformerrors, 'bottom');
		} else {
			if ($$('ul.formerrors li').length==0) {
				newerror.inject(formerrors[0], 'bottom');
			}
		}
		scroll(0,0);
	} else {
		$('process').value='1';
		$('submit_without_contact').value='1';
		$('claimsform').submit();
	}
}

/**
 * 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();	
}

/**
 * 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'));
			});
		});	
	}
}

/**
* Tooltip for F28 vorderingenformulier 
* 
*
* @author phison do <phison.do{AT}efocus.nl>
* @version 1.0, 6 aug, 2010
* @requires MooTools 1.2.4 Core, <http://www.mootools.net>
* @return void
*/
function initTooltip() {
	var elF28Form = $$('div.vorderingenformulier');
	if (elF28Form) {
		
		$$('a.tooltip').each(function(element, index){
			var content = element.get('title').split('::');
			element.store('tip:title', content[0]);
			if(content[1]){
				element.store('tip:text', content[1]);	
			} else {
				element.store('tip:text', ' ');
			}
		});
		
		var tip = new Tips('.tooltip', {className: 'tooltip', fixed: false, hideDelay: 50, showDelay: 50});
	}
};


/**
* Removes margin of first col
* 
*
* @author phison do <phison.do{AT}efocus.nl>
* @version 1.0, 6 aug, 2010
* @requires MooTools 1.2.4 Core, <http://www.mootools.net>
* @return void
*/
function removeMargin() {
	var arrCol1of4 = $$('div.col1of4');
	if (arrCol1of4[0]) {
		arrCol1of4[0].setStyle('margin-left', '0');	
	}
};


/**
* initFormInfoWindow for F28 vorderingenformulier 
* 
* displays infowindow if radio input is clicked
*
* @author phison do <phison.do{AT}efocus.nl>
* @version 1.0, 6 aug, 2010
* @requires MooTools 1.2.4 Core, <http://www.mootools.net>
* @return void
*/
function initFormInfoWindow() {
	var elF28Form = $$('div.vorderingenformulier');
	if(elF28Form){

		var arrRadioInputs = elF28Form.getElements('div.radiolabel input');
		var arrRadioLabels = elF28Form.getElements('div.radiolabel');

		arrRadioInputs.each(function (elRadioInput){		
			elRadioInput.addEvent('click', function(){
				var elLabel = this.getParent('div.radiolabel');
				$$('div.radiolabel').removeClass('active');
				elLabel.addClass('active');
			});			
		});
	}
};


/**
* initF4AccordionHome
*
* @author phison do <phison.do{AT}efocus.nl>
* @author rocco janse <rocco@efocus.nl>
* @author Ralph Meeuws <ralph.meeuws[AT]efocus.nl>
* @version 3.0, 19 aug, 2010
* @requires MooTools 1.2.4 Core, <http://www.mootools.net>
* @return void
*/
function initF4AccordionHome() {
	var arrF4ListItems = $$('div.home div.target-navigation ul li');
	if (arrF4ListItems.length > 1) {
		arrF4ListItems.each(function(item) {
			var handle = item.getElement('a.title');
			if (handle) {
				var content = item.getElement('div.target-content');
				if (content) {
					if (content.getElements('li').length == 1) {
						handle.addEvent('click', function(){
							window.location = content.getElement('li a').get('href');
						});
					} else {
						content.fade('hide');
						handle.addEvents({
							click: function() {
								item.toggleClass('open');
								if(item.hasClass('open')) {
									content.fade('in');
								} else {
									content.fade('hide');
								}
							}
						});
					}
				}
			}
		});
	}		
}


/**
 * initF4Accordion
 *
 * initializes accordion in F4 rightcol
 *
 * @author Klaas Dieleman <klaas{AT}efocus.nl>
 * @author Phi Son Do <phison.do{AT}efocus.nl>
 * @author Ralph Meeuws <ralph.meeuws[AT]efocus.nl>
 * @return void
 */
function initF4Accordion() {
	var elTargetNav = $$('div.right div.target-navigation')[0];
	if (!$defined(elTargetNav)) return false;
	
	var accordion = new Accordion(elTargetNav.getElements('a.toggler'), elTargetNav.getElements('div.target-content'), {			
		opacity: 0,
		show: -1,
		alwaysHide: true,
		onActive: function(toggler, element){
			toggler.getParent().addClass('open');
		},
		onBackground: function(toggler, element){
			toggler.getParent().removeClass('open');
		}
	});
}


/**
 * remove margin of all first blocks
 * 
 * @author Lee Boonstra <lee.boonstra@efocus.nl>
 * @version 1.0, 21 jun, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @return void
 */
function initOverviewSitemap(){
	arrSitemapList = $$('div.csc-sitemap ul li').addClass('list-item');
	arrSitemapSubList = $$('div.csc-sitemap ul ul li').addClass('sub');
	
	arrSitemapList.each(function(elSitemapList){
		elSitemapList.getElements('li.sub').removeClass('list-item');
	})
	
	var arrListItems = $$('div.csc-sitemap ul li.list-item');
	
	if(arrListItems.length > 0){		
		var intMaxBlocks = arrListItems.length-1;
		for(var i=0; i<=intMaxBlocks; i++){
			if(i%2 == 0){				
				arrListItems[i].setStyles({
					'margin-left': '0',
					'clear': 'both'
				});				
			}
		}
	}
};


/**
 * remove margin of all first blocks
 * 
 * @author Lee Boonstra <lee.boonstra@efocus.nl>
 * @version 1.0, 21 jun, 2010
 * @requires MooTools 1.2.4 Core, <http://www.mootools.net>
 * @return void
 */
function initOverviewBlocks(){
	arrBlocks = $$('div.overview-holder ul li.blockcontainer');
	if(arrBlocks.length > 0){
		var intMaxBlocks = arrBlocks.length-1;
		for(var i=0; i<=intMaxBlocks; i++){
			if(i%2 == 0){
				arrBlocks[i].setStyles({
					'margin-left': '0',
					'clear': 'both'
				});
			}
		}
	}
};

/**
 * 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@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');
					}
				}
			});
		});
	}
}


/*
 * loadRouteMap
 * 
 * @author Ralph Meeuws (ralph-meeuws[AT]efocus.nl)
 * @editor Phi Son Do <phison.do{AT}efocus.nl>
 */

function loadRouteMap() {
	if (!$('route_map')) return;
	
	var elRouteMap = $('route_map');
	var elRouteZip = $('route_zip');
	var elRouteBtn = $('route_button');
	var elRouteDir = $('route_directions');
	
	var strCompanyName = $('company_name').innerHTML;
	var strCompanyStreet = $('company_street').innerHTML;
	var strCompanyCity = $('company_city').innerHTML;
	var strBalloonContent = '<h4>' + strCompanyName + '</h4>' + '<p>' + strCompanyStreet + '<br />' + strCompanyCity + '</p>';
	var locale = 'nl_NL';

	if (GBrowserIsCompatible()) {
		var map = new GMap2(elRouteMap);
		var geocoder = new GClientGeocoder();
	
		var gdir = new GDirections(map, elRouteDir);
		
		var strAddress = strCompanyStreet + ', ' + strCompanyCity;

		function showAddress(address) {
			geocoder.getLatLng(
				address,
				function(point) {
					if (!point) {
						alert(address + " niet gevonden");
					} else {
						map.setCenter(point, 12);
						
						var marker = new GMarker(point);
						map.addOverlay(marker);

						map.setUIToDefault();
						marker.openInfoWindowHtml(strBalloonContent);
						
						GEvent.addListener(marker, "click", function() {
							marker.openInfoWindowHtml(strBalloonContent);
						});			
					}
				}
			);
		}
		showAddress(strAddress);
	}
	
	var loadDirections = function() {
		gdir.load('from: ' + elRouteZip.value + ' to: ' + strAddress, { 'locale': locale });
	}
	
	elRouteBtn.addEvent('click', function(){
		loadDirections();
	});
	
	$('route_form').addEvent('submit', function(){
		loadDirections();
	});
	
	elRouteZip.addEvent('keydown', function(event){
		if (event.key == 'enter') loadDirections();
	});
}



/*
 * Makes the banners on the homepage entirely clickable
 * 
 * @author Ralph Meeuws (ralph-meeuws[AT]efocus.nl)
 * @version 1.0, 19 aug, 2010
 */

function initHomeBanners() {
	var arrHomeBanners = $$('.bannerhome');
	if (arrHomeBanners.length == 0) return false;
	
	arrHomeBanners.each(function(elHomeBanner){
		elHomeBanner.setStyle('cursor', 'pointer');
		elHomeBanner.addEvent('click', function(){
			window.location = elHomeBanner.getElement('.arrow').getProperty('href');
		});
	});
}


/*
 * Redirects the mainitem in case there is only one subitem.
 * 
 * @author Ralph Meeuws (ralph-meeuws[AT]efocus.nl)
 * @version 1.0, 19 aug, 2010
 */

function initSubNav() {
	var elSubNav = $(document).getElement('ul.subnav');
	if (!$defined(elSubNav)) return false;
	
	elSubNav.getChildren('li').each(function(elSubNavMainItem){
		if (elSubNavMainItem.getElements('li').length == 1) {
			elSubNavMainItem.addEvent('click', function(event){
				event.stop();
				window.location = elSubNavMainItem.getElement('.level2 li a').get('href');
			});
		}
	});
}

function addHoverIE6(arrElements) {
	arrElements.each(function(el, index) {
		el.addEvents({
			'mouseenter': function(){
				el.addClass('hover');
			},
			'mouseleave': function(){
				el.removeClass('hover');
			}
		});
	});
}
