var config = {
	// Initialize main configuration.
	'siteRoot'					: '/',
	'siteRootAbsolute'	: 'http://www.ardc-israel.org/'
};
	
$().ready(function(){
	for (i in initFuncs) {
		initFuncs[i]();
	}
	$('a.mailtoaddr').bind('click', genericFuncs.mailtoHrefContact);
	
	if ($('#hp_newsletter_form').length) {
		genericFuncs.attach_hp_newsletter();
	}
	if ($('.project-controls').length) {
		$('.project-controls').each(function(){
			genericFuncs.attach_block_pager(this);
		});
	}
});

var initFuncs = {
	languageSelect: function()
	{
		// bind language selection
		var languageCurr = $('#language #currentLang'), languageOptions = $('#language #optionsLangs');
		languageCurr.bind('click', function(){
			languageOptions.toggle();
		});
		// Hide menu when clicking outside of it.
		$('body').bind('click', function(e){
			var target = e.target;
			if(target.id !== 'currentLang') {
				languageOptions.hide();
			} 
		});
	},
	headerMenu: function()
	{
		if (typeof($.fn.superfish) == 'function' && typeof($.fn.supersubs) == 'function')
		{
			$('.sf-menu').supersubs({
				minWidth:  12,
				maxWidth:  40,
				extraWidth:  1
			}).superfish({
				animation: {opacity: 'show', height: 'show'},
				speed: 'fast',
				delay: 200
			});
		}
	},
	checkSlideButton: function()
	{
		// SlideButton behaviour
		var slidebut = $('#slideButton');
		if (slidebut.length > 0)
		{
			var scrollTop = f_client.f_scrollTop();
			var subPos = f_client.findPos($('#sf-menu').get(0));
			if (scrollTop > subPos[1])
			{
				if (slidebut.css('opacity') == 0)
					slidebut.animate({opacity:1,top:0}, 1000);
			}
			else
			{
				if (slidebut.css('opacity') == 1)
					slidebut.animate({opacity:0,top:-60}, 1000);
			}
			setTimeout('initFuncs.checkSlideButton()', 1000);
		}
	}
};

var genericFuncs = {
	attach_block_pager: function(pager_elem)
	{
		var controls_block = $(pager_elem);
		var block_elem = controls_block.parent();
		var item_type = controls_block.get(0).getAttribute('rel');
		
		var current_item = block_elem.children('#'+item_type+'_0');
		var current = 0;
		
		controls_block.children().each(function(){
			$(this).bind('click', function(){
				tmp_last_current = current;
				switch (this.className)
				{
					case 'prev':
						if (current == 0)
							current = block_elem.children('.'+item_type+'_item').length-1;
						else
							current = current-1;
						break;
					case 'next':
						if (current == block_elem.children('.'+item_type+'_item').length-1)
							current = 0;
						else
							current = current+1;
				}
				if (current != tmp_last_current)
				{
					current_item.hide();
					current_item = block_elem.children('#'+item_type+'_'+current);
					current_item.show();
					controls_block.find('.current_item').text(''+(current+1));
					this.blur();
				}
				return false;
			});
		});
	},
	attach_hp_newsletter: function()
	{
		$('#hp_newsletter_form #hp_newsletter_form_email').bind('focus', function(){
			if (this.value.match(/\s+/))
				this.value = '';
		})
	},
	mailtoHrefContact: function()
	{
		// TODO
	}
};

// Client dimentions / scroll object.
var f_client = {
	findPos: function(obj) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			do {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			} while (obj = obj.offsetParent);
		}
		return [curleft,curtop];
	},
	f_clientWidth: function() {
		return this.f_filterResults (
			window.innerWidth ? window.innerWidth : 0,
			document.documentElement ? document.documentElement.clientWidth : 0,
			document.body ? document.body.clientWidth : 0
		);
	},
	f_clientHeight: function() {
		return this.f_filterResults (
			window.innerHeight ? window.innerHeight : 0,
			document.documentElement ? document.documentElement.clientHeight : 0,
			document.body ? document.body.clientHeight : 0
		);
	},
	f_scrollLeft: function() {
		return this.f_filterResults (
			window.pageXOffset ? window.pageXOffset : 0,
			document.documentElement ? document.documentElement.scrollLeft : 0,
			document.body ? document.body.scrollLeft : 0
		);
	},
	f_scrollTop: function() {
		return this.f_filterResults (
			window.pageYOffset ? window.pageYOffset : 0,
			document.documentElement ? document.documentElement.scrollTop : 0,
			document.body ? document.body.scrollTop : 0
		);
	},
	f_filterResults: function(n_win, n_docel, n_body) {
		var n_result = n_win ? n_win : 0;
		if (n_docel && (!n_result || (n_result > n_docel)))
			n_result = n_docel;
		return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
	}
};
