
var browsers = 'all';
var config = {
	hovers: new Array(
		{
			parentId:'menu',
			tagName:'li',
			tagPosition:'children',
			className:'hover'
		}
	)
};

/* CODE AREA */

/* hovers */

var initHovers = function()
{
	for (var index in config.hovers){
		var conf = config.hovers[index];
		var topLevelElement = document.getElementById(conf.parentId);
		if (topLevelElement){
			var subElements = topLevelElement.getElementsByTagName(conf.tagName);
			for (var i = 0; i < subElements.length; i++){
				if (conf.tagPosition == 'all' || (conf.tagPosition == 'children' && subElements[i].parentNode.id == conf.parentId))
				{
					subElements[i].configIndex = index;
					subElements[i].onmouseover = function(){
						this.className += ' ' + config.hovers[this.configIndex].className;
						
						for(var j=0;j<subElements.length;j++){
							if(subElements[j].className.indexOf('active')!=-1){
								subElements[j].className = subElements[j].className.replace('active','activ');
							}
						}
						
						if(this.getElementsByTagName('ul').length > 0){
						for (var j=0; j<subElements.length;j++){
							var subnav = subElements[j].getElementsByTagName('ul');
							if(subnav.length > 0){
							subnav[0].style.visibility = 'visible';
								if(subnav[0].parentNode != this){
								subnav[0].style.visibility = 'hidden';
								}
							}
						}
						}
					};
					subElements[i].onmouseout = function(){
						this.className = this.className.replace(config.hovers[this.configIndex].className,'');
						
						for(var j=0;j<subElements.length;j++){
							if(subElements[j].className.indexOf('activ')!=-1){
								subElements[j].className = subElements[j].className.replace('activ','active');
							}
						}
						
						for (var j=0; j<subElements.length;j++){
							var subnav = subElements[j].getElementsByTagName('ul');
							if(subnav.length > 0){
							if(subnav[0].parentNode.className.indexOf('active') != -1){
							subnav[0].style.visibility = 'visible';
							} else subnav[0].style.visibility = 'hidden';
							}
						}
					};
				}
			}
		}
	}
}

/* common */

var currentState = {};

var opera = window.opera;
var safari = navigator.appVersion.indexOf("Safari") != -1;
var ie = document.all && !window.opera;
var ff = navigator.userAgent.indexOf("Firefox") != -1;

var addEvent = function(browsers,event,initMethod)
{
	if (opera && (browsers.match(/Opera/) || browsers.match(/all/))) {
		window.addEventListener(event, initMethod, false);
	} else if (safari && (browsers.match(/Safari/) || browsers.match(/all/))) {
		window.addEventListener(event, initMethod, false);
	} else if (ie && (browsers.match(/IE/) || browsers.match(/all/))) {
		window.attachEvent("on" + event, initMethod);
	} else if (ff && (browsers.match(/FF/) || browsers.match(/all/))) {
		window.addEventListener(event, initMethod, false);
	} else if (!ie && !ff && !safari && !opera) {
		if (window.addEventListener){
			window.addEventListener(event, initMethod, false);
		}
		else if (window.attachEvent){
			window.attachEvent("on" + event, initMethod);
		}
	} 
}

var initPortfolio = function()
{
	var works = document.getElementById('works');
	if (works){
		var links = works.getElementsByTagName('a');
		for(var i=0;i<links.length;i++){
			links[i].onmouseover = function(){
				this.className += 'over';
			};
			links[i].onmouseout = function(){
				this.className = this.className.replace('over','');
			};
		}
	}
}

addEvent(browsers,'load',initHovers);
addEvent('all','load',initPortfolio);