/**
 * Klasa odpowiadająca za obsługę głównego menu
 * 
 * @author Łukasz
 */
ajaxMenu = {
	
	/*element menu*/	
	hMenu: null,
	
	/*id głównego ul menu*/
	menuId: "nav-main",
	tweakInitial: {x:174, y:0},
	tweakSubsequent: {x:174, y:0},
	currentSubIndex: null,
	ajaxUrl: 'system/modules/z_medel/MedelAjaxMenu.php',
	colRight:null, //wkaźnik do prawej kolumny
	init: function(){
		/*usunięcie onclicków z głównych przycisków*/
		var mainButtons = $('nav-main').getChildren();
		Array.each(mainButtons, function(item, key){
			item.getFirst().addEvent('click', function(e){
				if(e.target.getParent().get('href')=="#") e.stop();
			});
		});
		
		myMenu = new MenuMatic(
				{
					id:'nav-main',
					subMenusContainerId:"subMenu",
					htmlListContent:null,
					htmlButtonContent:null,
					/*Zdarzenie przy utworzeniu menu*/
					onSubMenuInit_complete:function(subMenu){
						
						/*Opakowuję w kontenery*/
						var nav_layer = new Element('div');
						nav_layer.set('class','nav-layer');
						nav_layer.set('id','nav-layer'+subMenu.subMenuIndex);
						
						var nav_layer_c = new Element('div');
						nav_layer_c.set('class','nav-layer-c');
						nav_layer_c.set('id','nav-layer-c'+subMenu.subMenuIndex);
						
						var box_rounded = new Element('div');
						box_rounded.set('class','box-rounded');
						box_rounded.set('id','box-rounded'+subMenu.subMenuIndex);
						
						var box_c = new Element('div');
						box_c.set('class','box-c');
						box_c.set('id','box-c'+subMenu.subMenuIndex);
						
						var col = new Element('div');
						col.set('class','col col-left');
						col.set('id','col'+subMenu.subMenuIndex);
						
						ajaxMenu.colRight = new Element('div');
						ajaxMenu.colRight.set('class','col col-right');
						ajaxMenu.colRight.set('id', 'col-right'+subMenu.subMenuIndex);
						
						if(subMenu.subMenuIndex==0)
							col.wraps('product_wrapper');
						else
							col.wraps('link_wrapper');
						
						box_c.wraps('col'+subMenu.subMenuIndex);
						box_c.adopt(ajaxMenu.colRight);
						box_rounded.wraps('box-c'+subMenu.subMenuIndex);
						nav_layer_c.wraps('box-rounded'+subMenu.subMenuIndex);
						nav_layer.wraps('nav-layer-c'+subMenu.subMenuIndex);
						
						/*przenoszę do listy*/
						if(subMenu.subMenuIndex==0)
							subMenu.btn.getParent().adopt($('subMenu').getFirst());
						else 
							subMenu.btn.getParent().adopt($('subMenu').getLast());
						
						/*dodaję cień*/
						$('smOW'+subMenu.subMenuIndex).setStyle('box-shadow','0 0 20px #000000');
					
						/*rozciągam*/
						$('smOW'+subMenu.subMenuIndex).setStyle('width','1000px');
						
						/*jeżeli wcześniej nie została wybrana to ją wybieram teraz*/
						if(!ajaxMenu.currentSubIndex){
							ajaxMenu.currentSubIndex=$('product_wrapper').getFirst().getFirst().get('id');
							$('product_wrapper').getFirst().addClass('selected');
							ajaxMenu.loadProducts();
						}
						
						
						/*dodaję mousentery i onclicki na składowe list*/
						if(subMenu.subMenuIndex==0){
							var menuList = $('product_wrapper').getChildren();
							Array.each(menuList, 
								function(item, key){
									item.getFirst().addEvent('mouseenter', function(e){
										e.stop();
										
										/*weryfikuję co wywołało zdarzenie*/
										var target = e.target;
										if(target.get('id')==null)	target=target.getParent();
										
										/*ustawiam podświetlenie*/
										var id = target.get('id');
										if(ajaxMenu.currentSubIndex)
											$(ajaxMenu.currentSubIndex).getParent().removeClass('selected');
										target.getParent().addClass('selected');
										ajaxMenu.currentSubIndex=target.get('id');
										
										/*ładuję opowiednią zawartość*/
										ajaxMenu.loadProducts();
											
									});
								});
						}
						
						/*dodaję zawartość prawej kolumny w przypadku menu pomocy*/
						if($('col-right1')){
							var htmlRightContent = "<img src='tl_files/medel/img/big_logo.jpg' class='right_content_pic'/>";
							$('col-right1').set('html', htmlRightContent);
						}
						
					},
					
					/*Zdarzenie przy pozycjonowaniu menu*/
					onPositionSubMenu_complete:function(subMenu){
						$('smOW'+subMenu.subMenuIndex).setStyle("left","-177px");
						$('smOW'+subMenu.subMenuIndex).setStyle("top","46px");
						$('smOW'+subMenu.subMenuIndex).setStyle("width","1000px");
					},
					onShowSubMenu_begin:function(subMenu){
						subMenu.btn.getParent().addClass('active');
						$('nav-layer'+subMenu.subMenuIndex).setStyle('display','block');
					},
					onShowSubMenu_complete:function(subMenu){
						
					},
					onHideSubMenu_begin:function(subMenu){
						
					},
					onHideSubMenu_complete:function(subMenu){
						subMenu.btn.getParent().removeClass('active');
						$('nav-layer'+subMenu.subMenuIndex).setStyle('display','none');
						$('nav-layer'+subMenu.subMenuIndex).getParent().setStyle('display','none');
					}
					
				});
		hMenu = $(this.menuId);
		hMenu.setStyle('display','block');
	},	

	/**
	 * Ładuje produkty do prawej kolumny
	 * @param number id kategorii
	 */
	loadProducts: function(){
		var category = this.currentSubIndex;

			var request = new Request.JSON({
				url: this.ajaxUrl,
			    onSuccess: function(responseJSON, responseText){
			    	formatMenuOutput(responseJSON);
				}
			});
			request.get({'category':ajaxMenu.currentSubIndex});

	}
};

/*Funkcja dodająca podaną wartość to atrybutu "left" podanego elementu*/
function moveElement(elem,value){
	var leftPos = elem.getStyle("left");
	var leftStr = '';
	var leftInt = 0;
	if(leftPos.contains('px')) Array.each(leftPos,
			function(item,key){
				if(item!='p'&&item!='x') leftStr+=item;
			}
	);
	
	leftInt = leftStr.toInt();
	leftInt+=value;
	
	elem.setStyle("left",leftInt+"px");
}

/**
 * Funkcja układająca w HTML JSON'ową odpowiedz
 * 
 * @param elem - mootools Element
 * @param jsonContent
 */
function formatMenuOutput(jsonContent){
	var htmlContent = "";
	
	/*baner górny*/
	htmlContent += "<a href='"+jsonContent.arrCategory['topLink']+"' class='banner'>" +
						"<img src='"+jsonContent.arrCategory['topImg']+"' alt='' />" +
					"</a>";
	
	/*produkty w tej kategorii*/
	htmlContent += "<ul class='products-list'>";
	for(var i=0; i<3;i++){
		if(jsonContent.arrProduct[i]){
		htmlContent += "<li>" +
						"<div class='img-container'>" +
							"<a class='product-list-link' href='"+jsonContent.arrProduct[i]['link']+"'><img style='height:106px;' src='"+jsonContent.arrProduct[i]['mainImg']+"' alt='"+jsonContent.arrProduct[i]['name']+"' /></a>" +
						"</div>" +
						"<div class='content'>" +
						"<h3> <a class='product-list-link' href='"+jsonContent.arrProduct[i]['link']+"'>"+jsonContent.arrProduct[i]['name']+"</a></h3>" +
						"<a class='btn btn-r' href='"+jsonContent.arrProduct[i]['link']+"'>zobacz</a>" +
						"<p> <a class='product-list-link' href='"+jsonContent.arrProduct[i]['link']+"'>"+jsonContent.arrProduct[i]['short_description']+"</a></p>" +
						"</div>" +
						"</li>";
		}
	}
	htmlContent += "</ul>";
	htmlContent += "<ul class='products-list'>";
	for(var i=3; i<6;i++){
		if(jsonContent.arrProduct[i]){
		htmlContent += "<li>" +
						"<div class='img-container'>" +
							"<a class='product-list-link' href='"+jsonContent.arrProduct[i]['link']+"'><img style='height:106px;' src='"+jsonContent.arrProduct[i]['mainImg']+"' alt='"+jsonContent.arrProduct[i]['name']+"' /></a>" +
						"</div>" +
						"<div class='content'>" +
							"<h3> <a class='product-list-link' href='"+jsonContent.arrProduct[i]['link']+"'>"+jsonContent.arrProduct[i]['name']+"</a></h3>" +
							"<a class='btn btn-r' href='"+jsonContent.arrProduct[i]['link']+"'>zobacz</a>" +
							"<p> <a class='product-list-link' href='"+jsonContent.arrProduct[i]['link']+"'>"+jsonContent.arrProduct[i]['short_description']+"</a></p>" +
						"</div>" +
						"</li>";
		}
	}
	htmlContent += "</ul>";

	/*baner dolny*/
	htmlContent += "<a href='" + jsonContent.arrCategory['bottomLink'] + "' class='banner last'>" +
						"<img src='" +
						jsonContent.arrCategory['bottomImg'] + 
						"' alt='" +
						jsonContent.arrCategory['name'] +
						"' />" +
				   "</a>";
	
	$('col-right0').set('html', htmlContent);
}
	
/*odpalenie procesora po załadowaniu strony*/
window.addEvent('domready', function(){
	ajaxMenu.init();
});
