
var helper = {

    Version: '0.1',
    extKey: 'sfpHelper',

    hideElements : function (boxId, tagName) {

        hideMe = new Array();
        hideMe = $A($(boxId).getElementsByTagName(tagName)).each(function(e) {
		
		if (e.style.visibility == '' || e.style.visibility == 'visible') {
			e.style.visibility = 'hidden';  
		} else {
			e.style.visibility = 'visible';  	
		}                 
           
        });
    },

    preloadImages : function(imglist) {
        var imgs = new Array();
        var count;
        if (document.images) {
            for (count=0; count<imglist.length; count++) {
                imgs[count]=new Image(); imgs[count].src=imglist[count];
            }
        }
    },

    sfHover : function(idList, tagList) {
	
	var count;
	
	for (count=0; count<idList.length; count++) {
		if ($(idList[count])) {
			var sfEls = $(idList[count]).getElementsByTagName(tagList[count]);
			
			for (var i=0; i<sfEls.length; i++) {
				sfEls[i].onmouseover=function() {
				    this.className+=' sfhover';
				}
				sfEls[i].onmouseout=function() {
				    this.className=this.className.replace(new RegExp(' sfhover\\b'), '');
				}
			}
		}
	}
	
    },

    random : function(imgs) {
        var imgsNum = 0;

        imgs.each(function(imgs){
            imgsNum ++
        });

        var imgSelect = Math.round(Math.random()*(imgsNum-1));
        var bgImage = imgs[imgSelect];

        $('header').setStyle({
            backgroundImage: 'url('+bgImage+')'
        });
    },


    //showloading
    loading : function (boxId, action) {

        var ajaxLoader = $(boxId);

        if (ajaxLoader) {

             if (action == 'start') {
                Effect.Appear (ajaxLoader);
             } else {
               ajaxLoader.hide();
            }

        }
    }

}

// Main navigation: open and close navigation parts by clicking on the left part of a navigation item
Event.observe(window, 'load', function() {
	$('mainNavigation').removeClassName('jsdisabled').addClassName('jsenabled');
	$$('#mainNavigation a').each(function(item) {
		Event.observe(item, 'click', respondToClickOnMainNavigation);
	});
	$$('#mainNavigation .cur', '#mainNavigation .cursub', '#mainNavigation .act', '#mainNavigation .actsub').each(function(item) {
		if (item.down('ul')) {
			if (item.down('a')) {
				item.down('a').addClassName('open');
			}
			item.addClassName('open');
			item.down('ul').addClassName('open');
		}
	});
	fixPngWhereNecessary();
});
function respondToClickOnMainNavigation(event) {
	var element = Event.element(event);
	var offsetx = Event.pointerX(event) - Position.cumulativeOffset(element)[0]; // should be Element. instead of Position. in prototype >= 1.6
	var paddingleft = element.getStyle('padding-left').sub('px','');
	// check if click was on the left padding-area
	if (offsetx < paddingleft) {
		if (element.hasClassName('open')) {
			element.removeClassName('open');
			element.up('li').removeClassName('open');
			if (element.up('li').down('ul')) {
				element.up('li').down('ul').removeClassName('open');
			}
		} else {
			// only perform action if there is a any subnvigation
			if (element.up('li').down('ul')) {
				element.addClassName('open');
				element.up('li').addClassName('open');
				element.up('li').down('ul').addClassName('open');
				fixPngWhereNecessary();
			}
		}
		Event.stop(event);
	}
}
function fixPngWhereNecessary() {
	if (BrowserDetect.browser == 'Explorer' & BrowserDetect.version < 7) {
		$$('#mainNavigation a').each(function(item) {
			item.up('li').setStyle({height:'0px'});
		});
	}
}

