jQuery.noConflict();

var mainMenuLock = false;
var sideMenuLock = false;
/*
 * Klasa MenuItem
 * 
 */
function MenuItem(name, url){
	this._name = name;
	this._url = url;
	this._subItems = new Array();
}

MenuItem.prototype._name;
MenuItem.prototype._url;
MenuItem.prototype._subItems;

MenuItem.prototype.getName = function(){
	return this._name;
}

MenuItem.prototype.getUrl = function(){
	return this._url;
}

MenuItem.prototype.putSubItem = function(item, idx){
	this._subItems[idx] = item;
}

/*
 * KLASA DynamicMenu
 */

function DynamicMenu(divId, lang, pageUrl){
	var thisObj = this;
	this._divId = divId;
	this._menuItems = new Array();
	this._openTab = null;
	var homePageId = null;
	var englishHomePageId = null;
	var startIndex = null;
	var idx = 0;
	var $div = jQuery('#'+divId);
	var sp = pageUrl.split('id=');
	var pageId  = sp[1];
	sp = pageId.split("&");
	pageId = sp[0];
	jQuery.ajax({
        type: "GET",
        url: "servlet.dynamicMenu?lang="+lang+"&page="+pageId+"&sid="+Math.random(),
        dataType: "xml",              
        success: function(xml) {
			var mark = jQuery(xml).find('mark').text();
			jQuery(xml).find('item').each(function(){
				var name = jQuery(this).attr("name");	
				var url = jQuery(this).attr("url");
				var menuItem = new MenuItem(name, url);
				var urlId = url.substring(3 + url.indexOf("id="));
				if(urlId == mark) {
					startIndex = idx + 1;
				}
				thisObj._menuItems[idx++] = menuItem;
			});
				
			homePageId = jQuery(xml).find('homePageId').text();
			englishHomePageId = jQuery(xml).find('englishHomePageId').text();
			
			
			var carouselString = "<div class='topUpperBelt'/><div class='homeLinkContainer'/><div id='menuCarousel'><ul id='carousel' class='jcarousel-skin-tango'>"
			for(var i in thisObj._menuItems){
				carouselString += thisObj.getHtml(thisObj._menuItems[i].getName(),thisObj._menuItems[i].getUrl());
			}
			carouselString += "<li class='upperMenuItem' id='menuItem_null'><div class='menuItemWrapper'><div class='menuItemWrapper2' style='width:10px;height:10px;'/></div></li></ul></div><div class='englishLinkContainer'/><div class='topLowerBelt'/>";
			jQuery("#"+divId).append(carouselString);

			if(startIndex == null) {
				startIndex = 1;
			} 
		
			jQuery('ul#carousel').jcarousel({
				scroll:1,
				start:startIndex
			});			
			

			$div.append('<div id="submenuOverlay" class="submenuOverlay"><div id="submenuTab" class="submenuTab"/><div id="upperSubmenu" class="upperSubmenu"/></div>');
			jQuery("#upperSubmenu").hide();	
			
			jQuery("ul#carousel").find(".menuItemWrapper").each(function(){
				var width = jQuery(this).children(".menuItemWrapper2").width();
				jQuery(this).width(width);
			});
			
			jQuery('li.upperMenuItem').mouseenter(function(elem){
				if(mainMenuLock) return;
				var sp = jQuery(this).attr('id').split("_");
				var id = sp[1];
				thisObj.openUpperSubmenu(id, jQuery(this));	
			});
			
			jQuery("#"+thisObj._divId).mouseleave(function(elem){
				thisObj.closeUpperSubmenu();
			});
			
			
			if(lang == 'english') {
				var link = '<a href="/portal?id=';
				link = link + englishHomePageId + '"><img src="/portalKBPN/img/dynamicMenu/home.png"/></a>' 
				jQuery('div.homeLinkContainer').append(link);
			} else {
				var link = '<a href="/portal?id=';
				link = link + homePageId + '"><img src="/portalKBPN/img/dynamicMenu/home.png"/></a>'
				jQuery('div.homeLinkContainer').append(link);
			}
			
			if(lang == 'english') {
				var link = '<a href="/portal?id=';
				link = link + homePageId + '"><img src="/portalKBPN/img/dynamicMenu/polish.png"/></a>';
				jQuery('div.englishLinkContainer').append(link);
			} else {
				var link = '<a href="/portal?id=';
				link = link + englishHomePageId + '"><img src="/portalKBPN/img/dynamicMenu/english.png"/></a>';
				jQuery('div.englishLinkContainer').append(link);
			}
			
			jQuery("#menuItem_"+mark).addClass("upperMark");
		}
	});	
}

DynamicMenu.prototype._divId;
DynamicMenu.prototype._menuItems;
DynamicMenu.prototype._openTab;

DynamicMenu.prototype.center = function(){
	jQuery('#'+this._divId).css("left", (jQuery(window).width()-820)/2);
}

DynamicMenu.prototype.getHtml = function(name, url){
	var sp = url.split("=");
	var id = sp[1];	
	return "<li class='upperMenuItem' id='menuItem_"+id+"'><div class='menuItemWrapper'><div class='menuItemWrapper2'><div class='menuItemLeft'/><div class='menuItemContainer'><a class='upperMenuItem' href="+url+">"+name+"</a></div><div class='menuItemRight'/><div style='clear:both'/></div></div></li>";
}

DynamicMenu.prototype.getUpperSubmenuHtml = function(name, url, i, control){
	var sp = url.split("=");
	var id = sp[1];
	var nameLenght = name.length;
	if (nameLenght > 60){ 
		if (control == false){
			control = true;
			return "<div class=\"setClear\"/><span class='upperSubmenuItem' id='submenuItem_"+id+"'><a class='upperSubmenuItem' href="+url+">"+name+"</a></span>";
		} 
	} else if((i % 5 == 0) && control == false){
		control = true;
		return "<span class='upperSubmenuItem' id='submenuItem_"+id+"'><a class='upperSubmenuItem' href="+url+">"+name+"</a></span><div class=\"setClear\"/>";
	} else {
		control = false;
		return "<span class='upperSubmenuItem' id='submenuItem_"+id+"'><a class='upperSubmenuItem' href="+url+">"+name+"</a></span>";
	}
}

DynamicMenu.prototype.openUpperSubmenu = function(id, $menuItem){
	var thisObj = this;
	mainMenuLock = true;
	jQuery(".selected").removeClass("selected");
	if (jQuery("#upperSubmenu").is(':visible')){
		jQuery("#upperSubmenu").hide();
	}
	//Load menu items
	jQuery.ajax({
        type: "GET",
        url: "servlet.dynamicMenu?action=loadChild&pageId="+id+"&sid="+Math.random(),
        dataType: "xml",
        success: function(xml) {
			var $submenu = jQuery("#upperSubmenu");
			$submenu.html("");
			var i = 0;
			var control = false;
			jQuery(xml).find('item').each(function(){
				i++;
				var name = jQuery(this).attr("name");	
				var url = jQuery(this).attr("url");
				$submenu.append(thisObj.getUpperSubmenuHtml(name, url, i, control));
			});
			$menuItem.find("a").addClass("selected");
			if($submenu.html()!= ""){
				$submenu.show();
				$menuItem.addClass("selected");
				jQuery(".jcarousel-clip").addClass("selected");
			}
			mainMenuLock=false;
		},
		error: function() {
			mainMenuLock=false;
		}
	});
}

DynamicMenu.prototype.closeUpperSubmenu = function(){
	jQuery(".selected").removeClass("selected");
	jQuery("#upperSubmenu").hide();
}

/*
 * Klasa SideMenu
 */

function SideMenu(divId, pageUrl){
	var sp = pageUrl.split('id=');
	var pageId  = sp[1];
	sp = pageId.split("&");
	pageId = sp[0];
	this._divId = divId;
	this._pageId = pageId;
	this._cache = new Array();
	
	var $div = jQuery("#"+divId);
	
	$div.append("<div class='sideMenuUpperBelt'/>");
	$div.append("<div class='sideMenuContent'/>");
	$div.append("<div class='sideMenuLowerBelt'/>");
	
	var $content = jQuery("div.sideMenuContent");
	var thisObj = this;
	
	jQuery.ajax({
        type: "GET",
        url: "servlet.dynamicMenu?action=loadChild&pageId="+pageId+"&sid="+Math.random(),
        dataType: "xml",
        success: function(xml) {
        if(jQuery(xml).find('item').length == 0){
        	jQuery('div.sideMenuUpperBelt').addClass('hideDynamicMenu');
			jQuery('div.sideMenuContent').addClass('hideDynamicMenu');
			jQuery('div.sideMenuLowerBelt').addClass('hideDynamicMenu');
        }
		jQuery(xml).find('item').each(function(){
			var name = jQuery(this).attr("name");	
			var url = jQuery(this).attr("url");
			var hasChild = jQuery(this).attr("child");
			$content.append(thisObj.getMenuHtml(name, url, hasChild));
		});
		
		jQuery('.topLinkArrowWhiteHorizon').click(function(elem){
			jQuery(this).css('display', 'none');
			var parent = jQuery(this).parents().attr("id");
			jQuery("#"+parent+ " .topLinkArrowWhiteVertical").css('display', 'block');
			if(sideMenuLock) return;
			var sp = jQuery(this).attr('id').split("_");
			var id = sp[1];		
			if(jQuery("#submenuContainer_"+id).height() == null)
				thisObj.openSubmenu(id);
			else if(jQuery("#submenuContainer_"+id).height() > 0)
				jQuery("#submenuContainer_"+id).show('fast');
		});
		
		jQuery('.topLinkArrowWhiteVertical').click(function(elem){
			jQuery(this).css('display', 'none');
			var parent = jQuery(this).parents().attr("id");
			jQuery("#"+parent+ " .topLinkArrowWhiteHorizon").css('display', 'block');
			var sp = jQuery(this).attr('id').split("_");
			var id = sp[1];		
			jQuery("#submenuContainer_"+id).hide('fast');
			fixHeight();
			t=setTimeout('fixHeight()',500);
		});
		
		jQuery('.topLinkArrowBlueVertical').mouseenter(function(elem){
			jQuery(this).css('display', 'none');
			if(jQuery("#"+parent+ " .topLinkArrowBlueHorizon").is(":visible") == false && jQuery("#"+parent+ " .topLinkArrowWhiteHorizon").is(":visible") == false){
			var parent = jQuery(this).parents().attr("id");	
			jQuery("#"+parent+ " .topLinkArrowWhiteVertical").css('display', 'block');
			jQuery('div.sideMenuItem').addClass('highlight');
			jQuery(this).siblings('a.sideMenuItem').addClass('highlight');
			}
		});
		
		jQuery('.topLinkArrowWhiteVertical').mouseleave(function(elem){
			var parent = jQuery(this).parents().attr("id");
			if(jQuery("#"+parent+ " .topLinkArrowBlueHorizon").is(":visible") == false && jQuery("#"+parent+ " .topLinkArrowWhiteHorizon").is(":visible") == false){
			jQuery(this).css('display', 'none');
			jQuery("#"+parent+ " .topLinkArrowBlueVertical").css('display', 'block');
			jQuery('div.sideMenuItem').removeClass('highlight');
			jQuery(this).siblings('a.sideMenuItem').removeClass('highlight');
			}
		});
		
		jQuery('.topLinkArrowBlueHorizon').mouseenter(function(elem){
			var parent = jQuery(this).parents().attr("id");
			if(jQuery("#"+parent+ " .topLinkArrowBlueVertical").is(":visible") == false && jQuery("#"+parent+ " .topLinkArrowWhiteVertical").is(":visible") == false){
				jQuery(this).css('display', 'none');
			jQuery("#"+parent+ " .topLinkArrowWhiteHorizon").css('display', 'block');
			jQuery('div.sideMenuItem').addClass('highlight');
			jQuery(this).siblings('a.sideMenuItem').addClass('highlight');
			}
		});
		
		jQuery('.topLinkArrowWhiteHorizon').mouseleave(function(elem){
			var parent = jQuery(this).parents().attr("id");
			if(jQuery("#"+parent+ " .topLinkArrowBlueVertical").is(":visible") == false && jQuery("#"+parent+ " .topLinkArrowWhiteVertical").is(":visible") == false){
			jQuery(this).css('display', 'none');
			jQuery("#"+parent+ " .topLinkArrowBlueHorizon").css('display', 'block');
			jQuery('div.sideMenuItem').removeClass('highlight');
			jQuery(this).siblings('a.sideMenuItem').removeClass('highlight');
			}
			});
		
		jQuery('a.sideMenuItem').mouseenter(function(elem){
			jQuery('div.sideMenuItem').addClass('highlight');
			jQuery(this).addClass('highlight');	
			var parent = jQuery(this).parents().attr("id");
			if(jQuery("#"+parent+ " .topLinkArrowBlueVertical").is(":visible") == false && jQuery("#"+parent+ " .topLinkArrowWhiteVertical").is(":visible") == false){
			jQuery("#"+parent+ " .topLinkArrowBlueHorizon").css('display', 'none');
			jQuery("#"+parent+ " .topLinkArrowWhiteHorizon").css('display', 'block');
			}
			if(jQuery("#"+parent+ " .topLinkArrowBlueHorizon").is(":visible") == false && jQuery("#"+parent+ " .topLinkArrowWhiteHorizon").is(":visible") == false){
			jQuery("#"+parent+ " .topLinkArrowBlueVertical").css('display', 'none');
			jQuery("#"+parent+ " .topLinkArrowWhiteVertical").css('display', 'block');
			}
		});		
	
		jQuery('a.sideMenuItem').mouseleave(function(elem){
			jQuery('div.sideMenuItem').removeClass('highlight');
			jQuery(this).removeClass('highlight');
			var parent = jQuery(this).parents().attr("id");
			if(jQuery("#"+parent+ " .topLinkArrowBlueVertical").is(":visible") == false && jQuery("#"+parent+ " .topLinkArrowWhiteVertical").is(":visible") == false){
			jQuery("#"+parent+ " .topLinkArrowWhiteHorizon").css('display', 'none');
			jQuery("#"+parent+ " .topLinkArrowBlueHorizon").css('display', 'block');
			}
			if(jQuery("#"+parent+ " .topLinkArrowBlueHorizon").is(":visible") == false && jQuery("#"+parent+ " .topLinkArrowWhiteHorizon").is(":visible") == false){
			jQuery("#"+parent+ " .topLinkArrowWhiteVertical").css('display', 'none');
			jQuery("#"+parent+ " .topLinkArrowBlueVertical").css('display', 'block');
			}			
		 });	
	   }
	});
	fixHeight();
	t=setTimeout('fixHeight()',500);
}

SideMenu.prototype._divId;
SideMenu.prototype._pageId;
SideMenu.prototype._cache;

SideMenu.prototype.getMenuHtml = function(name, url, hasChild){
	var sp = url.split('id=');
	var pageId  = sp[1];
	if(typeof(pageId) == "undefined"){
		pageId="-1&1";
	}
	sp = pageId.split("&");
	pageId = sp[0];
	if (hasChild == 'true')
		return '<div class="sideMenuItem" id="sideMenuItem_'+pageId+'">'+'<div id="arrowBlueHor_'+pageId+'" class="topLinkArrowBlueHorizon"></div><div id="arrowWhiteHor_'+pageId+'" class="topLinkArrowWhiteHorizon" style="display: none;"></div><div id="arrowBlueVer_'+pageId+'" class="topLinkArrowBlueVertical" style="display: none;"></div><div id="arrowWhiteVer_'+pageId+'" class="topLinkArrowWhiteVertical" style="display: none;"></div><a class="sideMenuItem" href="'+url+'">'+name+'</a></div>';
	else
		return '<div class="sideMenuItem" id="sideMenuItem_'+pageId+'">'+'<a class="sideMenuItem" href="'+url+'">'+name+'</a>'+'</div>';
}

SideMenu.prototype.getSubmenuHtml = function(name, url, hasChild){
	var sp = url.split('id=');
	var pageId  = sp[1];
	sp = pageId.split("&");
	pageId = sp[0];
	var cssClass = 'sideSubmenuItem';
	if(hasChild == 'true') cssClass = 'sideSubmenuItemChild';
	return '<div class="'+cssClass+'" id="sideSubmenuItem_'+pageId+'">'+'<a class="sideSubmenuItem" href="'+url+'">'+name+'</a>'+'</div>';
}

SideMenu.prototype.getSecondLevelHtml = function(name, url){
	var sp = url.split('id=');
	var pageId  = sp[1];
	sp = pageId.split("&");
	pageId = sp[0];
	fixHeight();
	t=setTimeout('fixHeight()',500);
	return '<div class="secondLevelSubmenuItem" id="secondLevelSubmenuItem_'+pageId+'">'+'<a class="secondLevelSubmenuItem" href="'+url+'">'+name+'</a>'+'</div>';
}

SideMenu.prototype.openSubmenu = function(id){
	var thisObj = this;
	var $menuItem = jQuery("#sideMenuItem_"+id);
	if(thisObj._cache[id] !=null){
		sideMenuLock=true;	
			$menuItem.append('<div id="submenuContainer_'+id+'" class="sideSubmenuContainer"/>');
			jQuery("#submenuContainer"+id).hide(fast);
			jQuery("#submenuContainer"+id).append(thisObj._cache[id]);
			jQuery("#submenuContainer_"+id).show('fast');
		jQuery("div.sideSubmenuItemChild").mouseleave(function(e){
			jQuery(".secondLevelSubmenu").remove();
		});
		jQuery("div.sideSubmenuItemChild").mouseenter(function(e){
			var $menuContainer = jQuery("#"+thisObj._divId);			
			var posX = parseInt($menuContainer.css('left')) + parseInt($menuContainer.css('width')) - parseInt(jQuery("div.sideMenuItem").css("padding-left"));
			jQuery('.secondLevelSubmenu').remove();
			jQuery(this).append('<div id="secondLevelSubmenu" class="secondLevelSubmenu"/>');
			var positionTop = jQuery("div.secondLevelSubmenu").position().top;
			var $submenuContainer = jQuery('.secondLevelSubmenu').css("position", "absolute").css("left", "200px").css("top",positionTop-35).hide();
			$submenuContainer.html('');
			$submenuContainer.append('<div class="secondLevelSubmenuTop"/>');
			$submenuContainer.append('<div class="secondLevelSubmenuContent" id="secondLevelSubmenuContent"/>');
			$submenuContainer.append('<div class="secondLevelSubmenuBottom"/>');
			var $subContent = jQuery("#secondLevelSubmenuContent");
			var sp = jQuery(this).attr('id').split("_");
			var id = sp[1];
			jQuery.ajax({
		        type: "GET",
		        url: "servlet.dynamicMenu?action=loadChild&pageId="+id+"&sid="+Math.random(),
		        dataType: "xml",
		        success: function(xml) {
					$subContent.html("");
					jQuery(xml).find('item').each(function(){
						var name = jQuery(this).attr("name");	
						var url = jQuery(this).attr("url");
						$subContent.append(thisObj.getSecondLevelHtml(name, url));
					});
					$submenuContainer.show('fast');
				}
			});
		});	
		sideMenuLock=false;
		fixHeight();
		t=setTimeout('fixHeight()',500);
	}else{
		sideMenuLock = true;
	jQuery.ajax({
        type: "GET",
        url: "servlet.dynamicMenu?action=loadChild&pageId="+id+"&sid="+Math.random(),
        dataType: "xml",
        success: function(xml) {			
			var contents = "";
			jQuery(xml).find('item').each(function(){
				var name = jQuery(this).attr("name");	
				var url = jQuery(this).attr("url");	
				var hasChild = jQuery(this).attr("child");
				contents += thisObj.getSubmenuHtml(name, url, hasChild);				
			});
				thisObj._cache[id] = contents;
				$menuItem.append('<div id="submenuContainer_'+id+'" class="sideSubmenuContainer"/>');
				jQuery("#submenuContainer_"+id).hide();
				jQuery("#submenuContainer_"+id).append(contents);
				jQuery("#submenuContainer_"+id).show('fast');
			jQuery("div.sideSubmenuItemChild").mouseleave(function(e){
				jQuery(".secondLevelSubmenu").remove();
			});
			jQuery("div.sideSubmenuItemChild").mouseenter(function(e){
				var $menuContainer = jQuery("#"+thisObj._divId);				
				var posX = parseInt($menuContainer.css('left')) + parseInt($menuContainer.css('width')) - parseInt(jQuery("div.sideMenuItem").css("padding-left"));
				jQuery('.secondLevelSubmenu').remove();
				jQuery(this).append('<div id="secondLevelSubmenu" class="secondLevelSubmenu"/>');
				var positionTop = jQuery("div.secondLevelSubmenu").position().top;
				var $submenuContainer = jQuery('.secondLevelSubmenu').css("position", "absolute").css("left", "200px").css("top",positionTop-35).hide();
				$submenuContainer.html('');
				$submenuContainer.append('<div class="secondLevelSubmenuTop"/>');
				$submenuContainer.append('<div class="secondLevelSubmenuContent" id="secondLevelSubmenuContent"/>');
				$submenuContainer.append('<div class="secondLevelSubmenuBottom"/>');
				var $subContent = jQuery("#secondLevelSubmenuContent");
				var sp = jQuery(this).attr('id').split("_");
				var id = sp[1];
				jQuery.ajax({
			        type: "GET",
			        url: "servlet.dynamicMenu?action=loadChild&pageId="+id+"&sid="+Math.random(),
			        dataType: "xml",
			        success: function(xml) {
						$subContent.html("");
						jQuery(xml).find('item').each(function(){
							var name = jQuery(this).attr("name");	
							var url = jQuery(this).attr("url");
							$subContent.append(thisObj.getSecondLevelHtml(name, url));
						});
							$submenuContainer.show('slow');
					}
				});
			});
			sideMenuLock=false;
			fixHeight();
			t=setTimeout('fixHeight()',500);
		},
		error : function(){
			sideMenuLock=false;
			fixHeight();
			t=setTimeout('fixHeight()',500);
		}
	});
	}
}

SideMenu.prototype.closeSubmenu = function(){
	if(!jQuery(".sideMenuContent .sideMenuItem.highlight").find(".sideMenuItem.hightlight")){
	jQuery(".secondLevelSubmenu").hide('slow', function(){
		jQuery(".secondLevelSubmenu").remove();
	});
	jQuery("#submenuContainer").hide('slow', function(){
		jQuery("#submenuContainer").remove();
	});
	fixHeight();
	t=setTimeout('fixHeight()',500);
	}
}

function fixHeight() {
	var leftH = jQuery("div.leftContent").height() + 100;
	var contentH = jQuery("div.pageContent").height();
	if (leftH > contentH) {
		jQuery(
				"div.leftBelt .mainBorder,div.leftBelt .mainBackground,div.rightBelt .mainBorder,div.pageContent")
				.height(leftH);
	} else {
		jQuery(
				"div.leftBelt .mainBorder,div.leftBelt .mainBackground,div.rightBelt .mainBorder,div.pageContent")
				.height(contentH);
	}
}




			

