/**

 * file default.js

 *

 *

 * @require MooTools version 1.2.4 core & more

 *

 */



window.addEvents({

    'domready': function() {



     	startPushbox();

		initFaqAccordion();

		clearSearchField();

		initMailto();

    },

    'load': function() {

		

		equalHeight($$('ul.news_list li'));

		equalHeight($$('div.homepage div.narrow_container div.container_mid'));
		
		twitterFirstMessage();

		positionSitemap();

    }

});





/**

 * starts pushbox

 *

 * @author Mirjam <mirjam@efocus.nl>

 * @since 1.0, 6 july, 2010

 * @return void

 */



function startPushbox() {

	

	if (!document.getElement('div.pushbox') || !document.getElement('div.pushbox div.viewport')) return false;

	

	var intNewWidth = 0;

	var arrSlides = document.getElement('div.pushbox div.viewport ul.slides').getElements('li');

	arrSlides.each(function(item) {

		intNewWidth += item.getSize().x.toInt();

	});

	

	document.getElement('div.pushbox div.viewport ul.slides').setStyle('width', intNewWidth);

	

	var pbox = new Pushbox({

		'viewport': document.getElement('div.pushbox div.viewport'),

		'slides': arrSlides,

		'navigation': document.getElement('div.pushbox ul.pushbox_nav').getElements('li'),

		'prevButton': document.getElement('div.pushbox div.pushbox_nav_holder ul li.btn_back a'),

		'nextButton': document.getElement('div.pushbox div.pushbox_nav_holder ul li.btn_forward a'),

		'pauseButton': document.getElement('div.pushbox div.pushbox_nav_holder ul li.btn_pause a'),

		'transition': 'fade',

		'delay': document.getElement('div.pushbox span.duration').get('text')

	});	

		

}



/**

 * clears searchfields

 *

 * @author Mirjam <mirjam@efocus.nl>

 * @since 1.0, 9 july, 2010

 * @return void

 */



function clearSearchField () {



	var arrSearchFields = document.getElements('input.search');

	arrSearchFields.each(function(item, index) {

		item.addEvent('click', function(ev){ 

			item.value = '';

		});

	});

	

}



/**

 * position sitemap

 *

 * @author Mirjam <mirjam@efocus.nl>

 * @since 1.0, 7 july, 2010

 * @return void

 */



function positionSitemap() {

	

	if (!document.getElement('div.footerwrapper') && !document.getElement('div.sitewrapper')) { return false; }

	

	document.getElement('div.pagewrapper').setStyle('min-height', document.getElement('div.sitemapwrapper').getSize().y.toInt());

	

	var intSitemapTop = document.getElement('div.footerwrapper').getPosition().y.toInt();

	intSitemapTop -= 28;

	

	document.getElement('div.sitemapwrapper').setStyle('top', intSitemapTop);

	initSitemap(intSitemapTop);

	

	var intSitemapH = document.getElement('div.sitemapwrapper').getSize().y;

	

	var intFooterH = 0;

	var arrFooter = document.getElements('div.footerwrapper');

	arrFooter.each(function(elFooter) {

		intFooterH += elFooter.getSize().y;

	});

	

	if (intSitemapH > intFooterH) {

		var intFirstFooterH = arrFooter[0].getSize().y;

		arrFooter[0].setStyle('height', intFirstFooterH + (intSitemapH - intFooterH));

	}

	

	document.getElement('div.sitemapwrapper').setStyle('visibility', 'visible');

	

}



/**

 * initializes sitemap

 *

 * @author Mirjam <mirjam@efocus.nl>

 * @param intOrgH [int] original topposition of sitemap

 * @since 1.0, 7 july, 2010

 * @return void

 */



function initSitemap(intOrgH) {

	

	var elSitemap = document.getElement('div.sitemapwrapper');

	

	if (!elSitemap && !elSitemap.getElement('div.tab a')) { return false; }

	

	

	var elSitemapButton = elSitemap.getElement('div.tab a');

	var elSitemapH = elSitemap.getSize().y.toInt();

	

	elSitemapButton.removeEvents('click'); 

	elSitemapButton.addEvent('click', function(ev){

		

		ev.stop();

		

		if (elSitemap.hasClass('sitemap_active')) {

			

			var elSitemapNewTop = intOrgH;

			elSitemap.removeClass('sitemap_active');

			

		} else {

		

			var elSitemapNewTop = elSitemap.getPosition().y.toInt() - elSitemapH + 29;

			elSitemap.addClass('sitemap_active');

		}

		

		var elSitemapFx = new Fx.Tween(elSitemap);

		elSitemapFx.start('top', elSitemapNewTop);

		

	});

	

}





/**

 * FAQ accordion

 *

 * @author Lowen <lowen{AT}efocus.nl>

 * @since 1.0, 6 july 2010

 * @return void

 */

 

function initFaqAccordion() {

	

	if (!document.getElement('ul.faq_list')) return false;

	

	var arrFAQItems = document.getElements('ul.faq_list > li');

	

	arrFAQItems.each(function(item, index) {

		item.getElement('h3').addEvent('click', function(ev){

			

			arrFAQItems.removeClass('active');

			item.addClass('active');

			positionSitemap();

		

		});

	});

	

}



 /**

 * equals the height of an array of elements, all adapt to the highest

 *

 * @author Lowen <lowen{AT}efocus.nl>

 * @since 1.0, 7 july 2010

 * @return void

 */



function equalHeight(arrElements) {

	if (arrElements.length == 0) return false;

	

	var intMaxHeight = arrElements.getHeight().max();

	

	arrElements.each(function(elElement){

		elElement.setStyle('height', intMaxHeight - (elElement.getStyle('padding-top').toInt() + elElement.getStyle('padding-bottom').toInt() + elElement.getStyle('border-bottom').toInt()) + elElement.getStyle('border-top').toInt());

	});

}



 /**

 * replaces the mailto ###TITLE### markers with the H1 title of the page

 *

 * @author Richard <richardvy{AT}efocus.nl>

 * @since 1.0, 9 july 2010

 * @return void

 */



function initMailto() {

	$$('a.mailto').each(function(el) {

		var title = document.getElementsByTagName('h1');

		if (title.length > 0) {

			el.href = el.href.replace(/###TITLE###/gi, "'"+title[0].innerHTML+"'");

		}

	});

}


/**
 * First message from twitter extension has to be big
**/
function twitterFirstMessage() {
	var twitter_div = $$('#wt_twitter_newsticker li');
	if(twitter_div[0]) {
		twitter_div[0].className = 'big';
	}
}
