/*

 * MooTools

 * Version 1.11

 * used for sliders, accordion, emptying fields on focus & on dom ready functions

*/
function themesListAccordion() {
    if($chk($('themesList'))) {
        $E('a.theme', 'themesList').addClass('firstTheme');
        $A($$('a.theme')).each(function(el) {
			//el.removeProperty('href')
            el.addEvent("mouseover", function(event) {
                el.addClass('hoverTheme');
            });
            el.addEvent("mouseout", function(event) {
                el.removeClass('hoverTheme');
            });
        });

        ac1 = new Accordion('a.theme', 'div.themeInfo', {
            alwaysHide: true,
            display: 0,
            onActive: function(toggler, element){
                toggler.addClass('selectedTheme');
            },
            onBackground: function(toggler, element){
                toggler.removeClass('selectedTheme');
            }
        }, $('themesList'));
    };
};

function subNavigationAccordion(currentItem) {
    Array.prototype.match = function(matchArray) {
        for(var i=0;i<this.length;i++) {
            for(var x=0;x<matchArray.length;x++) {
                if(matchArray[x] == this[i]) {
                    return this[i]
                }
            }
        }
        return null;
    }

    var matchClasses;
    var togglerClasses;

	ac2 = new Accordion('li.mainItem', 'ul.subItem', {
        alwaysHide: true,
        display: currentItem, //currentItem = index (zero-based) of toggler in unordered list (ul)
        onActive: function(toggler, element){
            toggler.getFirst().addClass('selected');
            toggler.getFirst().addClass('tertiaryBg');
            
            element.setStyle('padding-bottom', '7px');
            
            matchClasses = new Array('blue', 'lgreen', 'red', 'yellow', 'green','purple');

            togglerClasses = toggler.className.split(' ');

            if(togglerClasses.match(matchClasses) !== null) {
                toggler.addClass('selectedMainItem' + togglerClasses.match(matchClasses).capitalize());
            };
        },
        onBackground: function(toggler, element){
            toggler.getFirst().removeClass('selected');
            toggler.getFirst().removeClass('tertiaryBg');
            
            element.setStyle('padding-bottom', '0px');
            
            matchClasses = new Array('selectedMainItemBlue', 'selectedMainItemLgreen', 'selectedMainItemRed', 'selectedMainItemYellow', 'selectedMainItemGreen','selectedMainItemPurple');
            togglerClasses = toggler.className.split(' ');

            //window.console.log(togglerClasses.match(matchClasses));

            if(togglerClasses.match(matchClasses) !== null) {
                toggler.removeClass(togglerClasses.match(matchClasses));
            };
        }
    }, $('subNavigation'));

	$A($$('#subNavigation li ul li')).each(function(el) {
		if(el.nodeName.toLowerCase() == 'li') {
            $(el).addEvent("click", function(event) {
                $(el).getFirst().addClass('selected');
                $(el).getFirst().addClass('tertiaryBg');
				$(el)
            });
		};
	});
};


function emptyFieldsOnFocus() {
    var inputElements = $$('div.Search input');
    if (inputElements.length > 0) {
        //add unobtrusive javascript for onclick event to <input> tag that empties field on entry
        for (var i = 0; i < inputElements.length; i++){      
            inputElements[i].onfocus = function(event) {
                  this.value = '';
            };
        };
    };
};

function searchFilterSlider() {
    if($chk($('filterToggler'))) {
		var controlElement1 = $('simple');
		var controlElement2 = $('advanced');
        var toggleElement = $('advancedFilter');

        //add unobtrusive javascript for onclick event to <a> tags that toggle sliding search filter
        var filterSlider = new Fx.Slide(toggleElement, {duration: 1000}).hide();
        controlElement1.removeAttribute("href");
        controlElement2.removeAttribute("href");
        controlElement1.setStyle('visibility', 'visible');
        controlElement2.setStyle('visibility', 'hidden');
        controlElement1.addEvent("click", function(event) {
            controlElement1.setStyle('visibility', 'hidden');
            controlElement2.setStyle('visibility', 'visible');
            filterSlider.toggle();
        });
        controlElement2.addEvent("click", function(event) {
            controlElement1.setStyle('visibility', 'visible');
            controlElement2.setStyle('visibility', 'hidden');
            filterSlider.toggle();
        });
    };
};

function newsToggle(tab) {
	if (tab == 1) {
		$('newstab1').addClass('selected');
		$('newstab2').removeClass('selected');
		
		$('newscontent1').style.display = "block";
		$('newscontent2').style.display = "none";
		Cookie.set('hometab', tab);
	} else {
		$('newstab1').removeClass('selected');
		$('newstab2').addClass('selected');

		$('newscontent1').style.display = "none";
		$('newscontent2').style.display = "block";
		Cookie.set('hometab', tab);
	}
}

Window.onDomReady(function() {
	var hometab = Cookie.get('hometab');
	if (hometab) {
		if ($chk($('newstab1'))) {
			newsToggle(hometab);
		}
	}
});



var textCharCounter = new Class({

	counterObject: null,

	areaObject: null,

	areaLimit: 300,

	areaCounter: 0,

	initialize: function(areaId, targetId, options) {

		this.areaLimit = options.limit;
		this.areaObject = $(areaId);
		this.counterObject = $(targetId);
		this.counterObject.innerHTML = this.areaLimit;
		this.setCountEvents();
	},

	setCountEvents: function(){
		this.areaObject.addEvent('keyup',this.checkAreaSize.bind(this));
	},

	checkAreaSize: function(){
		this.areaCounter = this.areaObject.getValue().length;
		if(this.areaCounter > this.areaLimit){
			this.counterObject.innerHTML = 0;
			this.areaObject.value = this.areaObject.getValue().substring(0,this.areaLimit);
		}else{
			this.counterObject.innerHTML = this.areaLimit - this.areaCounter;
		}
	}

});


/**
 * class for rotating most wanted dao items
 */
Carrousel = new Class({
	target: null,
	items: null,
	current: 0,
	total: 0,
	rotator: false,
	rotatorDuration: 5000,
	
	initialize: function() {
		this.target = $$('div.carrousel');
		this.items = $$('div.carrousel .item').reverse();
		this.total = this.items.length;
		this.addNav();
		this.rotator = this.rotate.periodical(this.rotatorDuration,this);
	},
	
	addNav: function() {
		$$('.left').addEvent('click', function() {
			this.rotator = $clear(this.rotator);
			this.rotate('prev');
			this.rotator = this.rotate.periodical(this.rotatorDuration,this);
			return false;
		}.bind(this));
		$$('.right').addEvent('click', function() {
			this.rotator = $clear(this.rotator);
			this.rotate('next');
			this.rotator = this.rotate.periodical(this.rotatorDuration,this);
			return false;
		}.bind(this));
	},

	rotate: function(flow) {
		next = this.current + 1;
		if (flow == 'next') next = this.current + 1;
		if (flow == 'prev') next = this.current - 1;

		if (next == this.total) next = 0;
		if (next < 0) next = (this.total -1);
		
		var transition = new Hash({
			'0': { 'opacity': [1, 0] },
		    '1': { 'opacity': [0, 1] }
		});
		var transitionElements = [this.items[this.current],this.items[next]];
		
		var myElementsEffects = new Fx.Elements(transitionElements, {duration:1500});
		myElementsEffects.start(transition.obj);
		
		this.current = next;
	}
});


function pngFix(img) {
	var imgID = (img.id) ? "id='" + img.id + "' " : ""
	var imgClass = (img.className) ? "class='" + img.className + "' " : ""
	var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
	var imgStyle = "display:inline-block;" + img.style.cssText 
	if (img.align == "left") imgStyle = "float:left;" + imgStyle
	if (img.align == "right") imgStyle = "float:right;" + imgStyle
	if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
	var strNewHTML = "<span " + imgID + imgClass + imgTitle
	+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
	+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
	+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
	img.outerHTML = strNewHTML
}

textCharCounter.implement(new Events);
textCharCounter.implement(new Options);

window.addEvent('domready',function(){
	if($chk($('formBuilderChangable'))){
		var checkboxes = $('formBuilderChangable').getElements('input.checkBox');
		for(i=0;i<checkboxes.length;i++){
			var curCheckBox = checkboxes[i];
			var parentItem = curCheckBox.getParent();
			var nextItem = parentItem.getNext();
			var nextCheckbox = nextItem.getElement('input.checkBox');
			if($chk(nextCheckbox)){
				parentItem.setStyle('border-bottom','0px');
				parentItem.setStyle('padding-bottom','0px');
				nextItem.setStyle('padding-top','0px');
			}
		}
	};
});