/**
 * 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.es") >= 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;
}
