var $j=jQuery.noConflict(); var i, hashTab, hash, t, a, b, newHash, clickState, hashState, changeState, currentState; var imageIndex = []; $j.extend($j.expr[':'], { 'containsi': function(elem, i, match, array) { return (elem.textContent || elem.innerText || '').toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; } }); var getHash = function() { x = location.hash; i = x.lastIndexOf("."); if (x.length) { if (i!=-1 && x.length >4) { i++; hashTab = parseInt(x.slice(i), 10)-1; i--; hash = x.slice(1,i).replace(/[-]/g, " ").toLowerCase(); } else if (x.length >4){ hashTab=-1; i--; hash = x.slice(1).replace(/[-]/g, " ").toLowerCase(); } else { i++; hashTab = parseInt(x.slice(i), 10)-1; hash = -1; } } else { hashTab=-1; hash=-1; } }; var getCurrentState = function(){ b=$j("ul.tabbs li.active").index(); t=$j("td.tabicon-active, td.tabicon").index(".tabicon-active"); a=$j(".accordion-toggle, .accordion-toggle-after").index(".accordion-toggle-after"); currentState=[b,t,a]; }; var getHashState = function(){ getHash(); b=hashTab; if ($j("td.tabicon, td.tabicon-active").length) { t=$j("td.tabicon, td.tabicon-active").index($j(".tabicon:containsi('"+ hash +"'),.tabicon-active:containsi('"+ hash +"')")); } else { t= -1; } if ($j(".accordion-toggle, .accordion-toggle-after").length) { a=$j(".accordion-toggle, .accordion-toggle-after").index($j(".accordion-toggle:containsi('"+ hash +"'),.accordion-toggle-after:containsi('"+ hash +"')")); } else { a= -1; } hashState=[b,t,a]; }; var stateToHash = function(z) { if (z[0] !=-1) { b=z[0]; b++; b="."+b; } else { b=""; } if (z[1]!=-1) { t=$j("td.tabicon, td.tabicon-active").eq(z[1]).text().replace(/^\s+|\s+$/g,'').replace(/\s/g,"-").toLowerCase(); } else { t=""; } if (z[2]!=-1) { a=$j(".accordion-toggle, .accordion-toggle-after").eq(z[2]).text().replace(/^\s+|\s+$/g,'').replace(/\s/g,"-").toLowerCase(); } else { a=""; } newHash = t+a+b; }; var compareStates = function(x,z) { b = x[0]!=z[0]; t = x[1]!=z[1]; a = x[2]!=z[2]; changeState = [b,t,a]; }; var hashUpdate = function(e) { if (e) { window.location.hash = e; } else { history.pushState({}, '', window.location.href.slice(0,window.location.href.indexOf("#"))); } }; var setState = function(hashState, currentState) { compareStates(hashState,currentState); var tabbs = $j("ul.tabbs li"); var tabb = $j("ul.tabb"); var tabcontent = $j("div.tabcontent"); var accordTogAft = $j(".accordion-toggle-after"); var accordcontent = $j(".accordion-content"); var tabiconActiveImg = $j("td.tabicon-active img"); var tabiconAll = $j("td.tabicon img, td.tabicon-active img"); if (changeState[0]==true){ changeTab(tabbs,tabb,hashState[0]); } if (changeState[1]==true) { changeTabord(tabiconActiveImg,tabcontent,tabiconAll,hashState[1]); // checkChangeTab(tabbs,tabb,tabcontent,hashState[1],hashState); } if (changeState[2]==true) { changeAccord(accordcontent,accordTogAft,hashState[2]); // if (accordcontent.eq(hashState[2]).children().hasClass("tabbed")){ // checkChangeTab(tabbs,tabb,tabcontent,hashState[1],hashState); // } } currentState=hashState; }; var setClickState = function(clickIndex,clickState,currentState) { var tabbs = $j("ul.tabbs li"); var tabb = $j("ul.tabb"); var tabcontent = $j("div.tabcontent"); var accordTogAft = $j(".accordion-toggle-after"); var accordcontent = $j(".accordion-content"); var tabiconActiveImg = $j("td.tabicon-active img"); var tabiconAll = $j("td.tabicon img, td.tabicon-active img"); if (clickState[0]==true && currentState[0]!=clickIndex){ changeTab(tabbs,tabb,clickIndex); currentState.splice(0,1,clickIndex); } if (clickState[1]==true) { if (currentState[1]!=clickIndex){ if (accordcontent.length){ hideAccord(accordcontent,accordTogAft); currentState.splice(2,1,-1); } changeTabord(tabiconActiveImg,tabcontent,tabiconAll,clickIndex); currentState.splice(1,1,clickIndex); checkChangeTab(tabbs,tabb,tabcontent,clickIndex,currentState); } else { var tabiconActiveImg = $j("td.tabicon-active img"); hideTabord(tabiconActiveImg,tabcontent,tabbs,tabb); currentState.splice(0,1,-1); currentState.splice(1,1,-1); } } if (clickState[2]==true) { if (currentState[2]!=clickIndex){ hideTabord(tabiconActiveImg,tabcontent); currentState.splice(1,1,-1); changeAccord(accordcontent,accordTogAft,clickIndex); currentState.splice(2,1,clickIndex); if (accordcontent.eq(clickIndex).children().hasClass("tabbed")){ checkChangeTab(tabbs,tabb,accordcontent,clickIndex,currentState); } } else { hideAccord(accordcontent,accordTogAft); currentState.splice(2,1,-1); if (accordcontent.eq(clickIndex).children().hasClass("tabbed")){ hideTab(tabbs,tabb); currentState.splice(0,1,-1); } } } }; var changeTab = function(tabbs,tabb,clickIndex){ if (clickIndex==-1){clickIndex=0} tabbs.removeClass(); tabbs.eq(clickIndex).addClass("active"); tabb.children("li").hide().removeClass(); tabb.children("li").eq(clickIndex).addClass("active").show(); }; var hideTab = function(tabbs,tabb){ tabbs.removeClass(); tabb.children("li").removeClass().hide(); }; var changeAccord = function(accordcontent,accordTogAft,clickIndex){ if (clickIndex!=-1){ accordcontent.slideUp(200); accordTogAft.removeClass().addClass("accordion-toggle"); accordcontent.eq(clickIndex).delay(300).slideDown(700) $j(".accordion-toggle").eq(clickIndex).removeClass().addClass("accordion-toggle-after"); } else { hideAccord(accordcontent,accordTogAft); } }; var changeTabord = function(tabiconActiveImg,tabcontent,tabiconAll,clickIndex){ if (clickIndex!=-1){ hideTabord(tabiconActiveImg,tabcontent); tabiconAll.eq(clickIndex).attr("src",tabiconAll.eq(clickIndex).attr("src").slice(0,-4)+"_active.png"); $j("td.tabicon").eq(clickIndex).removeClass().addClass("tabicon-active"); tabcontent.eq(clickIndex).delay(300).slideDown(700); } else { hideTabord(tabiconActiveImg,tabcontent); } }; var checkChangeTab = function(tabbs,tabb,tabcontent,clickIndex,currentState){ if (tabcontent.eq(clickIndex).children().hasClass("tabbed")){ hideTab(tabbs,tabb); tabcontent.eq(clickIndex).children("div.tabbed").children("ul.tabbs").children(":first-child").addClass("active"); i=tabbs.index($j("ul.tabbs li.active")); tabb.children("li").eq(i).addClass("active").show(); currentState.splice(0,1,i); } else if (tabbs.length){ hideTab(tabbs,tabb); currentState.splice(0,1,-1); } }; var hideAccord = function(accordcontent,accordTogAft){ accordcontent.slideUp(300); accordTogAft.removeClass().addClass("accordion-toggle"); }; var hideTabord = function(tabiconActiveImg,tabcontent){ if (tabiconActiveImg.length){ tabiconActiveImg.attr("src",tabiconActiveImg.attr("src").slice(0,-11)+".png"); tabiconActiveImg.parent().removeClass().addClass("tabicon"); tabcontent.slideUp(300); } }; var getClickState = function(clicked){ if (clicked.is("li")){ clickIndex=$j("ul.tabbs li").index(clicked); clickState=[true,false,false]; } else if (clicked.hasClass("tabicon") || clicked.hasClass("tabicon-active")){ clickIndex=$j("td.tabicon-active, td.tabicon").index(clicked); clickState=[false,true,false]; } else { clickIndex = $j(".accordion-toggle, .accordion-toggle-after").index(clicked); clickState=[false,false,true]; } }; var setAccordion = function(accord){ $j.each(accord, function(i,x){ $j(x).children("h4").addClass("accordion-toggle"); $j(x).children("div").addClass("accordion-content"); }); }; var setTabbed = function(tabbed){ $j.each(tabbed, function(i,x){ $j(x).children("ul:even").addClass("tabbs"); $j(x).children("ul:odd").addClass("tabb"); }); }; var setTabord = function(tabord){ $j.each(tabord, function(i,x){ $j(x).children("table").first().find("td").addClass("tabicon"); $j(x).children("div").addClass("tabcontent"); }); }; var setSlider = function(slider){ slider.children(":even").addClass("bottomImage"); slider.children(":odd").addClass("topImage").width("50%").height("100%"); }; var setInitialState = function(){ getHashState(); getCurrentState(); if (hashState[0]+hashState[1]+hashState[2]==-3) { setState([0,-1,-1], currentState); } else { setState(hashState, currentState); } }; var setSlideshow = function(x){ $j(x).each(function(i,y){ $j(y).children(":even").hide().addClass("slideshow-image").eq(0).addClass("active").show(); $j(y).children(":odd").hide().addClass("slideshow-caption").eq(0).addClass("active").show(); imageIndex.push(0); }); }; var setLayout = function(){ var x; x = $j("div.tabord"); if (x){ setTabord(x); } x = $j("div.accordion"); if (x){ setAccordion(x); } x = $j("div.tabbed"); if (x){ setTabbed(x); } x = $j("div.read"); if (x){ setReadMore(x); } x = $j("div.slidebar"); if (x){ setSlider(x); } x = $j("div.slideshow"); if (x){ setSlideshow(x); } }; var setReadMore = function(read){ $j.each(read, function(i,x){ $j(x).append("

[Read less]

"); $j(x).children().not(":first-child").css("display", "none"); $j(x).children(":first-child").addClass("readmore-first").after("

[Read more]

"); }); }; var readLess = function(read){ read.children(":first-child").addClass("readmore-first"); read.children().not(":nth-child(1)").not(":nth-child(2)").slideUp(200); read.children(1).css("display", "block"); }; var readMore = function(read){ read.prev().removeClass(); read.siblings().slideDown(200); read.css("display", "none"); }; var changeSlide = function(i,x){ var slideImage = $j(x).children(":even"); var slideCaption = $j(x).children(":odd"); n=slideImage.length; k=imageIndex[i]; j=k+1; if (j==n){ k=n-1; j=0;} slideImage.eq(k).css("z-index","0").removeClass("active").fadeOut(1000); slideImage.eq(j).css("z-index","999").addClass("active").fadeIn(1000); slideCaption.eq(k).css("z-index","0").removeClass("active").fadeOut(1000); slideCaption.eq(j).css("z-index","999").addClass("active").fadeIn(1000); imageIndex.splice(i,1,j); }; $j(document).ready(function(){ setLayout(); setInitialState(); $j(window).on('hashchange', function() { getHashState(); setState(hashState, currentState); }); $j("td.tabicon, td.tabicon-active, ul.tabbs li, .accordion-toggle, .accordion-toggle-after").click(function(){ getClickState($j(this)); setClickState(clickIndex, clickState, currentState); stateToHash(currentState); hashUpdate(newHash); }); $j("p.readmore, p.readless").click(function(){ if ($j(this).hasClass("readmore")){ readMore($j(this)); } else { readLess($j(this).parent()); } }); $j("div.slidebar").on("touchmove touchstart touchend mousemove", function (e) { var offset = $j(this).offset(); var height = $j(this).height(); var iTopWidth = (e.pageX - offset.left); $j(this).find(".topImage").width(iTopWidth).height(height); }); setInterval (function(){ $j("div.slideshow").each(function(i,x){ changeSlide(i,x); }); }, 5000); });