/** * Author: E Grobler * Contributors: R Perez * Date: 28 May 2010 * * Plugin for use with VeriSign sites using the HTML/CSS leftnav implementation */ jQuery.fn.vrsnLeftNav = function (options) { var myUrl = $(document).url(); settings = jQuery.extend({ state: "default", man_url: (myUrl.attr("file") == null)? myUrl.attr("path") + "index.html" : myUrl.attr("path") }, options); if (myUrl.attr("path").indexOf("/cgi") >= 0) { //referrer from a cgi page if (myUrl.attr("host").indexOf("verisign.com.br") >= 0) { //UK Leadgen if (document.referrer.indexOf("/partners/domain-name-programs/become-reseller/application/index.html") > -1) { //Change curr_url value to the value relative path of the thank you page for this page settings.man_url = "/partners/domain-name-programs/become-reseller/application/thankyou/index.html"; } else if (document.referrer.indexOf("/partners/authentication-programs/authentication-services-reseller/enrollment/index.html") > -1) { //Change curr_url value to the value relative path of the thank you page for this page settings.man_url = "/partners/authentication-programs/authentication-services-reseller/enrollment/confirmation/index.html"; } } settings.state = "cgiconfirm"; } this.each( function () { isInNav = function (elm, man_url_string) { if ($(elm).find("a[href='"+ man_url_string + "']").length > 0) { return this.$(elm).find("a[href='"+ man_url_string + "']") } else return false; } if (settings.state == "default") { if (isInNav(this,settings.man_url)) { var item_elm = isInNav(this,settings.man_url); var item_level = item_elm.parents("li").length + 1; if (item_level > 2) { item_elm.parents("li").eq(item_elm.parents("li").length-2).addClass("active"); item_elm.parents("li").eq(item_elm.parents("li").length-1).addClass("activechild"); } else { if (!item_elm.parents("li").hasClass("main")) { item_elm.parents("li").eq(item_elm.parents("li").length-1).addClass("active"); } } //NoclickHere functionality item_elm.css({"cursor":"text","textDecoration":"none"}); item_elm.click(function(){ return false; }); } else { //URL's not in leftnav var parentInNav = 0; var item_levels = settings.man_url.toString().split("/").length - 2; var item_level_test = "/" + $(document).url().segment(0); var i = 1; for (i==1; i <= item_levels - 2; i++) { item_level_test += "/" + $(document).url().segment(i); } item_level_test += "/" + $(document).url().segment(item_levels); while (parentInNav < 1) { if (isInNav(this,item_level_test)) { var item_elm = isInNav(this,item_level_test); var item_level = item_elm.parents("li").length + 1; if (item_level > 2) { item_elm.parents("li").eq(item_elm.parents("li").length-2); item_elm.parents("li").eq(item_elm.parents("li").length-1).addClass("activechild"); } else { if (!item_elm.parents("li").hasClass("main")) { item_elm.parents("li").eq(item_elm.parents("li").length-1).addClass("activechild"); } } parentInNav = 1; } else { //Parent also not in leftnav //console.log ($(document).url().segment(item_levels)); if ($(document).url().segment(item_levels) != "index.html") { item_levels = settings.man_url.toString().split("/").length - 2; } else { item_levels = settings.man_url.toString().split("/").length - 3; } item_level_test = "/" + $(document).url().segment(0); var i = 1; for (i==1; i <= item_levels - 2; i++) { item_level_test += "/" + $(document).url().segment(i); } if ($(document).url().segment(item_levels) != "index.html") { item_level_test += "/" + "index.html"; } else { item_level_test += "/" + $(document).url().segment(item_levels); } parentInNav = 0; } } } } else if (settings.state == "cgiconfirm") { if (isInNav(this,settings.man_url)) { var item_elm = isInNav(this,settings.man_url); var item_level = item_elm.parents("li").length + 1; if (item_level > 2) { item_elm.parents("li").eq(item_elm.parents("li").length-2).addClass("active"); item_elm.parents("li").eq(item_elm.parents("li").length-1).addClass("activechild"); } else { if (!item_elm.parents("li").hasClass("main")) { item_elm.parents("li").eq(item_elm.parents("li").length-1).addClass("active"); } } //NoclickHere functionality item_elm.css({"cursor":"text","textDecoration":"none"}); item_elm.click(function(){ return false; }); } else { //URL's not in leftnav var parentInNav = 0; var page_url = document.createElement('a'); page_url.href = document.referrer; var item_levels = $(page_url).url().attr("path").split("/").length - 2; var item_level_test = "/" + $(page_url).url().attr("path").split("/")[1]; var i = 1; for (i==1; i <= item_levels - 2; i++) { item_level_test += "/" + $(page_url).url().segment(i); } item_level_test += "/" + $(page_url).url().segment(item_levels); //item_level_test = document.referrer.split("//")[1].substring(document.referrer.split("//")[1].indexOf("/")); while (parentInNav < 1) { if (isInNav(this,item_level_test)) { var item_elm = isInNav(this,item_level_test); var item_level = item_elm.parents("li").length + 1; if (item_level > 2) { item_elm.parents("li").eq(item_elm.parents("li").length-2).addClass("active"); item_elm.parents("li").eq(item_elm.parents("li").length-1).addClass("activechild"); } else { if (!item_elm.parents("li").hasClass("main")) { item_elm.parents("li").eq(item_elm.parents("li").length-1).addClass("active"); } } parentInNav = 1; } else { //Parent also not in leftnav //console.log ($(document).url().segment(item_levels)); if ($(page_url).url().segment(item_levels) != "index.html") { item_levels = settings.man_url.toString().split("/").length - 2; } else { item_levels = settings.man_url.toString().split("/").length - 3; } item_level_test = "/" + $(page_url).url().segment(0); var i = 1; for (i==1; i <= item_levels - 2; i++) { item_level_test += "/" + $(page_url).url().segment(i); } if ($(page_url).url().segment(item_levels) != "index.html") { item_level_test += "/" + "index.html"; } else { item_level_test += "/" + $(page_url).url().segment(item_levels); } parentInNav = 0; } } } } }); //Nothing to return, only adding class names to nav items return false; }