window.addEvent('domready', function() {
    initLanguageSelector();
    initPrintButton();
    initPushbox();
    initVideoPlayer();
    initFixEqualHeightF21();
    initBlockAlignment();
    initF01HeaderSearch();
    initF12Zoekresultaten();
    RightClick.init();
    initContactFormCheck();
});

window.addEvent('load', function() {

    if ($(document.body).getElement('div.pagehead')) {
        initLightboxImages($(document.body).getElement('div.pagehead').getElements('img')); /* in f17 */
    }

    if ($(document.body).getElement('div.user_content')) {
        initLightboxImages($(document.body).getElement('div.user_content').getElements('img')); /* in f19 */
    }

    if ($(document.body).getElement('div.fotos')) {
        initLightboxImages($(document.body).getElement('div.fotos').getElements('img')); /* in f21 */
    }

    if ($(document.body).getElement('div.nieuwsdetail')) {
        initLightboxImages($(document.body).getElement('div.nieuwsdetail').getElements('img')); /* in f27 */
    }
    
});


/**
* function initLightboxImages
*
* initializes lightboxes in content
*
* @author Mirjam <mirjam{AT}efocus.nl>
* @return void
*/

function initLightboxImages(contentImg) {

    if (contentImg.length == 0) return false;
    
    contentImg.each(function(img) {

        var thisLink = new Element('a', { 'href': '#' });
        thisLink.wraps(img);

        thisLink.addEvent('click', function() {

            var imgSrc = this.getElement('img').get('src');

            if (imgSrc.split('?').length > 1) {
                var newImgSrc = imgSrc.split('?')[0] + "?";
                var dimImgSrc = imgSrc.split('?')[1].split('&');

                newImgSrc += "mh=500&mw=500";
            } else {
                var newImgSrc = imgSrc;
            }

            Shadowbox.open({
                player: 'img',
                content: newImgSrc
            });

        });

    });
    
}


/**
* function initLanguageSelector
*
* initializes language selector
*
* @author Mirjam <mirjam{AT}efocus.nl>
* @return void
*/

function initLanguageSelector () {

	var languageSel = $$('li.language_selector a')[0];
	if (!languageSel) return false;

	languageSel.addEvent('click', function(){
		this.getParent('li').getElement('ul').toggleClass('open');
		this.toggleClass('open');
	});

}

/**
* function initPrintButton
*
* initializes language selector
*
* @author phison <phison.do{AT}efocus.nl>
* @return void
*/
function initPrintButton(){
	var printBtn = $$('li a.print');
	if (!printBtn) return false;
	
	printBtn.addEvent('click', function(){
		window.print();
	});
}


/**
* function initPushbox
*
* initializes pushbox
*
* @author Mirjam <mirjam{AT}efocus.nl>
* @return void
*/

function initPushbox() {
    
    var pushBox = $('interactive_tool');
    if (!pushBox) return false;

    var pushBoxId = pushBox.get('id');
        
    var flashvars = {};
    var params = {};
    var attributes = {};
    
    params.menu = "false";
    params.quality = "high";
    params.scale = "default";
    params.wmode = "transparent";
    params.allowFullScreen = "true";
    params.AllowScriptAccess = "always";
    
    flashvars.xmlpath = "/interactieve-tool.xml.aspx?landingItemID=" + $('scID').content;
    flashvars.showvisuals = "true";
    flashvars.delay = "2";
    // de globalGoogleMapsKey wordt ingesteld in F07
    flashvars.googleMapsKey = globalGoogleMapsKey;

    attributes.id = "customRightClick";

    swfobject.embedSWF("/swf/interactive_tool.swf", pushBoxId, "100%", "100%", "9.0.0", "/swf/expressinstall.swf", flashvars, params, attributes);

    pushBox.setStyle('display', 'block');
    
}


/*
 * initVideoPlayer
 * Initializes the flv JW videoplayer
 * 
 * @author  Phi Son Do <phison.do{AT}efocus.nl>
 */
function initVideoPlayer() {

	var arrVideoPlayers = $$('.videoplayer');
	if (arrVideoPlayers.length == 0) return;
	
	var elVideoPlayer = arrVideoPlayers[0];
	
	var strVideoPlayerUrl = elVideoPlayer.getElement('p.video_url').get('html');
	
	var objVideoPlayer = new Swiff('/swf/flvplayer.swf?t=' + new Date().getTime(), {
		container: elVideoPlayer,
		id: 'flvplayer',
		width: elVideoPlayer.getStyle('width'),
		height: elVideoPlayer.getStyle('height'),
		params: {
			wMode: 'opaque',
			bgcolor: '#000000'
		},
		vars: {
			file: strVideoPlayerUrl
		}
});
	
}


/**
 * initFixEqualHeightF21
 * Calculates equal heights to all boxes
 * 
 * @author Ralph Meeuws <ralph.meeuws{AT}efocus.nl>
 * @return void
 */
function initFixEqualHeightF21() {
	if (!document.getElement('.horizontal')) return;
	
	var arrF21ListItems = document.getElement('.horizontal ul').getElements('li');

	var intF21ListHeightMax = 0;
	
	arrF21ListItems.each(function(elF21ListItem){
		if (elF21ListItem.getHeight() > intF21ListHeightMax) {
			intF21ListHeightMax = elF21ListItem.getHeight();
		}
	});
	arrF21ListItems.each(function(elF21ListItem){
		elF21ListItem.setStyle('height', intF21ListHeightMax);
	});
	
	arrF21ListItems[1].setStyle('background', 'white');
}


/**
* function initBlockAlignment
*
* initializes alignment of blocks
*
* @author phison <phison.do{AT}efocus.nl>
* @return void
*/

function initBlockAlignment () {
	if (!document.getElement('.vertical')) return;
	
	var arrListItems = $$('.vertical ul li');

	arrListItems.each(function(elListItem) {
	    var elListItemImage = elListItem.getElements('img');
	    var elListItemImageWidth = parseInt(elListItemImage.getWidth());

	    var elListItemDiv = elListItem.getElement('div');

	    if (!elListItemImage == true) {
	        elListItemDiv.setStyles({ left: 0, marginLeft: 0 });
	    } else {
	        var newW = (elListItemDiv.getStyle('width').toInt() - elListItemImageWidth.toInt() - 10);
	        elListItemDiv.setStyles({ left: elListItemImageWidth + 10 + 'px', width :  newW});
	    };
	});
}



/*
* initF01HeaderSearch
* Adds interactivity to the search field in the header.
* 
* @author Barend van der Hout (barend[AT]efocus.nl)
*/
function initF01HeaderSearch() {
    if (!$('header_searchbox')) return;

    var elHeaderSearchBox = $('header_searchbox');
    var elHeaderSearchText = elHeaderSearchBox.getElement('.header_search_text');
    var elHeaderSearchBtn = elHeaderSearchBox.getElement('.submit');
    var elHeaderSearchHref = elHeaderSearchBox.getElement('.header_search_href').value;
    var strHeaderSearchTextDefault = elHeaderSearchText.getProperty('value');

    Element.Events.keyup_enter = {
        base: 'keyup',
        condition: function(event) {
            return (event.key == 'enter');
        }
    };

    elHeaderSearchText.addEvents({
        'focus': function() {
            if (elHeaderSearchText.getProperty('value') == strHeaderSearchTextDefault) elHeaderSearchText.setProperty('value', '');
        },
        'blur': function() {
            if (elHeaderSearchText.getProperty('value') == '') elHeaderSearchText.setProperty('value', strHeaderSearchTextDefault);
        },
        'keyup_enter': function() {
            elHeaderSearchBtn.fireEvent('click');
        }
    });

    elHeaderSearchBtn.addEvent('click', function() {
        window.location = elHeaderSearchHref + "?q=" + elHeaderSearchText.getProperty('value');
        return false;
    });
}

/*
* initF12Zoekresultaten
* Adds interactivity to the search field in the search page.
* 
* @author Barend van der Hout (barend[AT]efocus.nl)
*/
function initF12Zoekresultaten() {
    if (!$('searchbox')) return;

    var elSearchBox = $('searchbox');
    var elSearchText = elSearchBox.getElement('.search_text');
    var elSearchBtn = elSearchBox.getElement('.submit');

    Element.Events.keyup_enter = {
        base: 'keyup',
        condition: function(event) {
            return (event.key == 'enter');
        }
    };

    elSearchText.addEvents({
        'focus': function() {
        },
        'blur': function() {
        },
        'keyup_enter': function() {
            elSearchBtn.fireEvent('click');
        }
    });

    elSearchBtn.addEvent('click', function() {
        window.location = this.href + "?q=" + elSearchText.getProperty('value');
        return false;
    });
}

/**
* function ValidateRequiredDropDownList
*
* enables/disables implements client side validation of customvalidator for "empty dropdownlist"
*
* @author Barend van der Hout <barend[at]efocus.nl>
* @param object sender asp.net sender-object
* @param object args asp.net args-object
* @return void
*/
function ValidateRequiredDropDownList(sender, args) {
    // afspraak is dat de "lege" optie niet geldig is
    args.IsValid = args.Value != '';
}

/**
* function cbNeemContactOp_CheckedChanged
*
* enables/disables validation of land and telefoonnummer
*
* @author Barend van der Hout <barend[at]efocus.nl>
* @param bool checked whether cbNeemContactOp currently is checked
* @param string cvLand id of Land-Validator
* @param string rvTelefoonnummer id of Telefoonnummer-Validator
* @return void
*/
function cbNeemContactOp_CheckedChanged(checked, cvLand, rvTelefoonnummer) {
    // land en telefoonnummer zijn alleen verplicht als NeemContactOp is aangevinkt
    $(cvLand).enabled = checked;
    $(rvTelefoonnummer).enabled = checked;
    if (!checked) {
        $(cvLand).style.display = 'none';
        $(rvTelefoonnummer).style.display = 'none';
    }
}

/*
* initContactFormCheck
* Checks if required fields in the contact form are filled in
* 
* @author Rou-hun Fan (lowen[AT]efocus.nl)
*/

function initContactFormCheck() {
	var contactForm = document.getElement('form.contactform');
	
	if (!contactForm) return false;	
	
	var arrRequiredFields = contactForm.getElements('.required');
	
	var checkEmail = function(elField) {
		if (elField.value == "") return false;
		
		var emailPattern = new RegExp(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i);
		if(emailPattern.test(elField.value) == false) {
			document.getElement('p.errormsg.email').setStyle('display', 'block')
			blnFormSubmit = false;	
		} 
		else {
			document.getElement('p.errormsg.email').setStyle('display', 'none')
		}
	}	
	
	var checkRequired = function(elRequiredField) {
		if (elRequiredField.hasClass('email')) {
			checkEmail(elRequiredField);
		}		
		if (elRequiredField.value == "") {
			if (elRequiredField.getNext().hasClass('errormsg')) {
				elRequiredField.getNext().setStyle('display', 'block');
				blnFormSubmit = false;
			}
		} 
		else {
			elRequiredField.getNext().setStyle('display', 'none');
		}
	}

	
	arrRequiredFields.each(function(elRequiredField) {
		elRequiredField.addEvent('blur', function() {
			checkRequired(elRequiredField);

		});
	});

	contactForm.getElement('a.buttonPink').addEvent('click', function(event) {
	    event.stop();

	    blnFormSubmit = true;

	    arrRequiredFields.each(function(elRequiredField) {
	        checkRequired(elRequiredField);
	    });

	    if (blnFormSubmit == true) {
	        contactForm.submit();
	    } else {
	        window.location.hash = "#top";
	    }

	});
	
}
