/* http://www.jod.uk.com/ProfileUIResources/JS/kuoni.style.navigation.layering.js */
Valtech.Namespace.create("Kuoni.Style.Navigation");Kuoni.Style.Navigation.Layering=(function(){var layerClass="layer",closeBtnClass="close-layer",menuLinkSelector="#global-menu a[href]",structureUrl="/_layouts/kbfrontend.asmx/GetLayeredNavigation",snippetsUrl="/_layouts/kbfrontend.asmx/GetContent";var $root={},$cache=[],$layers={},showing=false,language;var initEvents=function(){$(document).bind("layer:activate",layer.activate);$(document).bind("layer:deactivate",layer.deactivate);$(document).bind("layer:deactivateAll",layer.deactivateAll);$(document).bind("layer:loading",layer.loading);$(document).bind("layer:loaded",layer.loaded);};var structure={parse:function(data){var data=$(data);var getLayerPage=function(node){var layerPage=false;node.children("layerPages").find("layerPage").each(function(){var $this=$(this);if($this.attr("id")){layerPage=$this;}});return layerPage;};data.find("root > webs > web").each(function(){var layer=$(this);var layerPage=getLayerPage(layer);if(!layerPage){return;}var sublayers=[];var xmlURLs="<urls>";var parentId=layerPage.attr("id");if(!parentId){return true;}var url=layerPage.attr("url");$(menuLinkSelector).each(function(){var link=$(this);var href=(Kuoni.User.authenticated&&parentId=="mykuoni")?window.userContext.UserContext.MyKuoniDefaultPage:"#"+parentId+"/";if(url.toUpperCase()==link.attr("href").toUpperCase()){link.attr({href:href});}});try{Kuoni.Style.Navigation.Breadcrumb.update(url,parentId);}catch(e){}var subs=layer.find("web");if(subs.length>0){subs.each(function(){var sub=$(this);var subPage=getLayerPage(sub);if(!sub){return;}var suburl=subPage.attr("url");var id=subPage.attr("id");var title=sub.attr("title");var sublayer={url:suburl,id:id,html:""};xmlURLs+="<url>"+suburl+"</url>";try{Kuoni.Style.Navigation.Breadcrumb.update(suburl,parentId+"/"+id);}catch(e){}structure.create(parentId,id,title,suburl);sublayers.push(sublayer);});}else{xmlURLs+="<url>"+url+"</url>";sublayers.push({url:url,id:Kuoni.Style.Navigation.mainlayerPrefix+parentId,html:""});}xmlURLs+="</urls>";var params={xmlURLs:xmlURLs};Kuoni.Style.AjaxQueue.add(parentId,snippetsUrl,"layer",params,sublayers);});},create:function(parentId,childId,title,url){var cont=$("#"+Kuoni.Style.Navigation.mainlayerPrefix+parentId);var first=($(".sublayer",cont).length<1);var sublayer=$("<div />").attr("id",childId).addClass("sublayer").appendTo($(".sublayers",cont));if(first){sublayer.show();}else{sublayer.hide();}var menu=$(".menu ul",cont);var a=$("<a />").attr("href","#"+parentId+"/"+childId).attr("title",title).html(title);var li=$("<li />").html(a).appendTo(menu);if(first){li.addClass("selected");}},load:function(url,ids,lang){var modes="<modes><mode>"+ids.split(";").join("</mode><mode>")+"</mode></modes>";$.post(url,{language:lang,mode:modes},function(data){structure.parse(data);structure.loaded();},"xml");},loaded:function(){Kuoni.Style.AjaxQueue.play();}};var layer={activate:function(e,hashArray){$root.show();$.each(hashArray,function(i,id){if(id!=""){if(!findId(id,$cache)){Kuoni.Style.AjaxQueue.bump(id);indicator.show(id);}else{indicator.hide();}$("#"+Kuoni.Style.Navigation.mainlayerPrefix+id+", #"+id).css({display:"block"}).siblings().css({display:"none"});}});if(hashArray&&hashArray[1]){$root.find(".layer .menu li").removeClass("selected").end().find("a[href$='"+hashArray[0]+"/"+hashArray[1]+"']").parent("li").addClass("selected");}},deactivate:function(e,layer){$root.hide();},deactivateAll:function(){$root.hide();$("."+layerClass,$root).hide();},loading:function(e,layerID){$cache.push({id:layerID,state:"loading"});},loaded:function(e,data){var item=findId(data.id,$cache);item.state="loaded";item.rawdata=data.rawdata;item.sublayers=data.data;layer.render(item);},render:function(item){$.each(item.sublayers,function(i,slayer){var html;$(item.rawdata).find("snippet").each(function(){var snippet=$(this);if(snippet.attr("url")==slayer.url){html=snippet.text();}});$("#"+slayer.id).append(html);});item.state="rendered";indicator.hide(item.id);}};var indicator={ind:{},id:"",init:function(){this.ind=$(".indicator");},show:function(id){this.ind.fadeIn("fast");this.id=id;},hide:function(id){if(!id||id==this.id){this.ind.fadeOut("slow");}}};var findId=function(id,arr){var result=false;$.each(arr,function(i,el){if(el.id==id){result=el;}});return result;};return{init:function(){console.log("[Kuoni.Style.Navigation.Layering] inited");language=Kuoni.User.language;$root=$("#layer-navigation");structure.load(structureUrl,Kuoni.Style.Navigation.topLayers,language);initEvents();indicator.init();}};})();$(document).ready(Kuoni.Style.Navigation.Layering.init);
