subMenu = new Array();

function timeSubMenu(c) {
	if(subMenu['show_timeout']) {
		clearTimeout(subMenu['show_timeout']);
	}
	if(subMenu['hide_timeout']) {
                clearTimeout(subMenu['hide_timeout']);
        }
	subMenu['show_timeout']=setTimeout('showSubMenu("'+c+'")', 400);
}

function showSubMenu(c, obj) {
	if(subMenu['visibility_timeout']) {
		clearTimeout(subMenu['visibility_timeout']);
	}

	if(!obj) {
                var ln = $('tMenu').getElementsByTagName('a');
                for(var a = 0; a<ln.length; a++) {
                        if(ln[a].name==c) {
                                obj=ln[a];
                        }
                }
        }

	if(subMenu['hover']) {
		if(subMenu['hover']['name']==c) return;
		subMenu['hover']['obj'].className='';
	}
	
	subMenu['hover']=new Array();
	subMenu['hover']['obj']=obj;
	subMenu['hover']['name']=c;

	$('subMS').className='none';

	$('mnlay').style.visibility='hidden';
        $('mnlay_pl').style.left=subMenu['hover']['obj'].offsetLeft + (subMenu['hover']['obj'].offsetWidth/2) - 8 +'px';
        $('mnlay_pl').style.visibility='visible';

	if(!subMenu['menus_json']) {
		var s = mint.Request();

		s.OnSuccess = function() {
			subMenu['menus_json']=this.responseJSON;
			getSubMenuElements(c);
		}

		s.getJSON=true;
		s.Send('submenus.php');
	} else {
		getSubMenuElements(c);
	}
}

function getSubMenuElements(c) {
	var subMenuHtml = '';
	for(var sub in subMenu['menus_json']) {
		if(sub == c) {
			var sub_m = eval('subMenu[\'menus_json\'].' + sub);
			for(var item in sub_m) {
				var item_m = eval('subMenu[\'menus_json\'].' + sub + '.' + item);
				if(subMenu['selected']==item) {
					subMenuHtml += '<a href="'+ item_m.url +'" class="selected"><img src="' + item_m.img + '"></a>';
				} else {
					subMenuHtml += '<a href="'+ item_m.url +'"><img src="' + item_m.img + '"></a>';
				}
			}
		}
	}

	$('subMS').className='none';

	$('mnlay').innerHTML=subMenuHtml;
	
	imgs = $('mnlay').getElementsByTagName('img');

	if(subMenu['hover']) {
                subMenu['hover']['obj'].className='selected';
		subMenu['hover']['obj'].imgLength=imgs.length;
		subMenu['hover']['obj'].imgCount=0;
        }
	
	for(var a = 0; a < imgs.length; a++) {
		imgs[a].onload = function() {
			if(subMenu['hover']) {
				this.imgObj = subMenu['hover']['obj'];
                        	this.imgObj.imgCount++;
				if(this.imgObj.imgCount==this.imgObj.imgLength) {
					visibleSubMenu();
				}
                	} else {
				visibleSubMenu();
			}
		}
	}
}

function checkSubMenuLoad() {
	if(subMenu['hover']) {
		if(subMenu['hover']['count']==subMenu['hover']['length']) {
			$('mnlay').style.visiblity='visible';
		}
	}
}

function visibleSubMenu() {
	if(!subMenu['hover']) {
		var ho = $('subMS');
		var l = 3;
	} else {
		var ho = subMenu['hover']['obj'];
		var l = ho.offsetLeft - $('mnlay').offsetWidth/2 + ho.offsetWidth/2;
	}
	var sT = $('stTop');

	$('mnlay').style.left=3;

	if(l < 3) {
		l = 3;
	}

	if((l+$('mnlay').offsetWidth) > sT.offsetWidth) {
		l = sT.offsetWidth - $('mnlay').offsetWidth - 5;
	}

	$('mnlay').style.left = l + 'px';

	$('mnlay').style.visibility='visible';

        $('mnlay_pl').style.visibility='hidden';
}

function hideSubMenu() {
	if(subMenu['show_timeout']) {
		clearTimeout(subMenu['show_timeout']);
	}
	if(subMenu['hover']) {
		subMenu['hide_timeout'] = setTimeout('showSelected()', 750);
	}
}

function showSelected() {
	if(subMenu['hover']) {
		subMenu['hover']['obj'].className='none';
		subMenu['hover']=null;
	}
	if($('subMS').name) {
		getSubMenuElements($('subMS').name);
		$('subMS').className='selected';
	}
}

function stopSubClear() {
	if(subMenu['show_timeout']) {
		clearTimeout(subMenu['show_timeout']);
	}
	if(subMenu['hide_timeout']) {
		clearTimeout(subMenu['hide_timeout']);
	}
}

/**
 * Shows engines selected list
 */
var chs;
function showEngines(object) {
        if(!chs) {
                var p = realPos(object);
                var l = $("srList");
                var se = $("srEng");

                l.style.display='block';
                l.style.width=object.offsetWidth+se.offsetWidth+'px';
                var c = realPos($("stCon"));
                l.style.left=se.offsetLeft+se.offsetParent.offsetLeft+'px';
                l.style.top=object.offsetHeight+p[1]+'px';
                l.style.visibility='visible';
                chs=1;
                document.onmousedown=UnClickSearch;
        } else {
                var l = $("srList");
                l.style.display='none';
                l.style.visibility='hidden';
                chs=null;
                document.onmousedown='';
        }
}

/**
 * Validating search form
 */
function submitSearch() {
        var f = document.forms['frmMainSearch'];
        var l = document.getElementById('srInput');

        if(l.name=="strGameName") {
                var u = f.action;
                u+=escape(l.value);
        } else {
                var u = f.action;
                u+='?'+l.name+'='+l.value;
        }

        if(f.method.toUpperCase()=="POST") {
                f.submit();
        } else {
                document.location=u;
        }

        return false;
}

function UnClickSearch(e) {
        if (e == null) { e = window.event; }
        obj = e.target != null ? e.target : e.srcElement;
        if(obj.className!='srLst') {
                showEngines(this);
                document.onmousedown='';
        }
}

function changeSearch(sEngine,object) {
        var se = $("srEng");
        var f = document.forms['frmMainSearch'];
        var l = document.getElementById('srInput');
        switch(sEngine) {
                case 'forum':
                        f.action='/discussion_search.php';
                        l.name='strText';
                        f.method="post";
                        break;
                case 'pictures':
                        f.action='/pictures_new.php';
                        l.name='searchtag';
                        f.method="get";
                        break;
                case 'profile':
                        f.action='/search_fast.php';
                        l.name='strUserName';
                        f.method="get";
                        break;
                case 'games':
                        f.action='/gry/?/szukaj-gier/';
                        l.name='strGameName';
                        f.method="get";
                        break;
        }
        se.innerHTML=object.innerHTML;
        showEngines(this);
        l.focus();
        document.onmousedown='';
}

