/*

problem med sider der er brede, skal laves på en anden måde

*/

var debug = true;
var debugString = "";

var umbraco = false;
var umbracoLocation;
var viaLocation;

$().ready(function()
{
	$("a.arrowLink").css("visibility", "visible");
	if (!(window.umbracoUrl === undefined))
	{
		umbraco = (document.location.href.indexOf(umbracoUrl) == 0);
	}

//	umbraco = true;

	if (umbraco)
	{
		umbracoLocation = document.location.href;
		if (umbracoLocation.indexOf("?") > 0) umbracoLocation = umbracoLocation.substr(0, umbracoLocation.indexOf("?"));
		if ($("#rightColumn").height() == 0) $("#rightColumn").height(1);
	}
	else
	{
		viaLocation = document.location.href;
		if (viaLocation.indexOf("?") > 0) viaLocation = viaLocation.substr(0, viaLocation.indexOf("?"));
		viaLocation = viaLocation.substr(viaLocation.indexOf("/", 8));
	}

	if (!(window.umbracoUrl === undefined))
	{
		log("a");
		cleanNavigation();

		log("b");
		stitchTopNavigation();

		log("c");
		stitchNavigation();

		log("d");
		if (umbraco) markTopNavigation();

		log("e");
		if (umbraco) drawPath();

		log("f");
		stitchSitemap();
	}

	$("div.splash #leftNavigation a").css("margin", " 0 50px 0 0")
	$("div.splash #leftNavigation a:has(img)").css("margin", "0")

	$("#path a:last").addClass("selected");

	checkToggleUrl()

//	setTopHeight();
	showJSIcons();
	setLinkIcons();
	fixOldViaForms();
	setCaptionWidths();

	lineNavigation($("#leftNavigation > ul.nav"), 1);

	activateCollapsables();

	lineTables();
	setupSitemap();

	if ($("#diaporama").length > 0)
	{
		jQuery.each($("script"),
			function(i,s){
			    if (s.src.match("http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js") != null) {
					$(s).after("<script  type='text/javascript' src='/files/system/jquery.cycle.all.js'></script>");
				}
			});
	}


	$("input:hidden").addClass("hidden");

//	if (debug && !self.console) alert(debugString);
});

function checkToggleUrl()
{
	var href = document.location.href.toLowerCase();
	var toggleIndex = href.indexOf("toggleurl=");
	var endIndex = href.indexOf("&", toggleIndex);
	if (toggleIndex > -1)
	{
		if (endIndex > -1)
			var url = href.substring(toggleIndex + 10, endIndex)
		else
			var url = href.substr(toggleIndex + 10)
	}
	$("#leftNavigation ul.nav li.collapsed > a").each(function() {
		if ($(this).attr("href").indexOf(url) > -1)
			$(this).parent().toggleClass("collapsableOpen");
	});
}

function activateCollapsables()
{
	$("#leftNavigation ul.nav li.collapsed > a").click(function() {
		$(this).parent().toggleClass("collapsableOpen");
		this.blur();
		return false;
	});
}

function setCaptionWidths()
{
	$("#content .captioned").each(function()
	{
		$(this).width($(this).find("img:first").width());
		if ($(this).width() >= ($(this).parent().width() - 32))
			$(this).removeClass("left").removeClass("right").css("marginLeft", "0px").css("marginRight", "0px").css("clear", "both");
	});
}

function fixOldViaForms()
{
	$("#content form.viaform1 label.CheckBoxLabel").each(function()
	{
		$(this).removeClass("CheckBoxLabel")
		$(this).after($(this).find("input"));
		$(this).next("input").after("<br />");
	});
	$("#content form.viaform1 input.Button:first").before("<label></label>");
}


function cleanNavigation()
{
	$("#extraNavigation a").each(function()
	{
		$(this).attr("href", umbracoUrl + $(this).attr("href"));
	});
}

function markTopNavigation()
{
	if ($("#leftNavigation ul.nav > li.open").length != 0)
	{
		$("#topNavigation ul.nav a[@href='" + $("#leftNavigation ul.nav > li.open > a").attr("href") + "']").addClass("open").parent().addClass("open").parent().parent().addClass("open").find("> a").addClass("open");
	}
	else if ($("#leftNavigation ul.nav > li.selected").length != 0)
	{
		$("#topNavigation ul.nav a[@href='" + $("#leftNavigation ul.nav > li.selected > a").attr("href") + "']").addClass("selected").parent().addClass("selected").parent().parent().addClass("open").find("> a").addClass("open");
	}
}

function drawPath()
{
	if (umbraco)
	{
		$("#path ul.nav").remove();

		var selectedNode = $("#leftNavigation ul.nav a.selected");
		var path = "<ul><li class=\"selected\"><a class=\"selected\" href=\"" + $(selectedNode).attr("href") + "\">" + $(selectedNode).html() + "</a></li><ul>";
		var leftNavigationParentNode = $(selectedNode).parent().parent();

		while ($(leftNavigationParentNode).length != 0 && !$(leftNavigationParentNode).hasClass("nav"))
		{
			leftNavigationParentNode = $(leftNavigationParentNode).parent().parent();
			var link = $(leftNavigationParentNode).find("> li > a.open");
			path = "<ul><li class=\"open\"><a class=\"open\" href=\"" + $(link).attr("href") + "\">" + $(link).html() + "</a>" + path + "</li></ul>";
		}
		var link = $("#topNavigation > ul.nav > li > a.open");
		if ($(link).length > 0)
		{
			path = "<ul><li class=\"open\"><a class=\"open\" href=\"" + $(link).attr("href") + "\">" + $(link).html() + "</a>" + path + "</li></ul>";
		}

		$("#path").prepend(path);
	}
}

function stitchTopNavigation()
{
	for (var i = 0; i < navigationStitching.length - 1; i += 2)
	{
		if (umbraco)
			var url = viaUrl + navigationStitching[i];
		else
			var url = navigationStitching[i];
		var node = $("#topNavigation > ul > li > a[@href='" + url + "']");
		if ($(node).length > 0)
		{
			$(node).parent().append($("#extraNavigation a[@href='" + umbracoUrl + navigationStitching[i+1] + "']").parent().children("ul").clone());
		}
	}
	$("#topNavigation > ul > li > ul > li > ul").remove();
}

function stitchNavigation()
{
	if (umbraco)
	{
		for (var i = 0; i < navigationStitching.length - 1; i += 2)
		{
			$("#viaExtraNavigation a[@href='" + navigationStitching[i] + "']").parent().append($("#extraNavigation a[@href='" + umbracoUrl + navigationStitching[i+1] + "']").parent().children("ul"));
		}

		$("#viaExtraNavigation *").removeClass("open").removeClass("selected");

		$("#leftNavigation ul.nav").remove();
		$("<ul class=\"nav\"></ul>").prependTo("#leftNavigation");

		log("c3");
		var leftNavigationParentNode = $("#viaExtraNavigation  a[@href='" + umbracoLocation + "']").parent().parent();

		while ($(leftNavigationParentNode).length != 0 && !$(leftNavigationParentNode).parent().parent().hasClass("nav"))
		{
			leftNavigationParentNode = $(leftNavigationParentNode).parent().parent();
		}

		$(leftNavigationParentNode).children().each(function() {
						$(this).appendTo($("#leftNavigation ul.nav"));
		});

		cleanNavigationLevel($("#leftNavigation > ul.nav"), umbracoLocation);
		
		$("#leftNavigation ul.nav a").each(function() {
			if ($(this).attr("href").indexOf(umbracoUrl) < 0)
				$(this).attr("href", viaUrl + $(this).attr("href"));
		});
	}
	else
	{
		for (var i = 0; i < navigationStitching.length - 1; i += 2)
		{
			var node = $("#leftNavigation a.selected[@href='" + navigationStitching[i] + "']");
			if ($(node).length > 0) $(node).parent().append($("#extraNavigation a[@href='" + umbracoUrl + navigationStitching[i+1] + "']").parent().children("ul"));
			if ($("#topNavigation > ul.nav > li > a.selected[@href='" + navigationStitching[i] + "']").length != 0)
			{
				$("#leftNavigation ul.nav").remove();
				$("#leftNavigation").prepend(("<ul class=\"nav\"></ul>"));
				$("#topNavigation a.selected").parent().find("li").each(function() {
					$("#leftNavigation ul.nav").append($(this).clone());
				});
			}
		}
		cleanLeftNavigation($("#leftNavigation > ul.nav"), viaLocation);
	}
}
function cleanLeftNavigation(ul, selectedHref)
{
	$(ul).find("a[@href='" + selectedHref + "']").parent().find("ul > li:not(.collapsed) > ul").remove();
}

function cleanNavigationLevel(ul, selectedHref)
{
	$(ul).find("> li:not(.collapsed)").each(function() {
		if ($(this).find("a[@href='" + selectedHref + "']").length == 0)
		{
			$(this).find("ul").remove();
		}
		else
		{
			if ($(this).find("> a").attr("href") == selectedHref)
			{
				$(this).addClass("selected");
				$(this).find("> a").addClass("selected");
			}
			else
			{
				$(this).addClass("open");
				$(this).find("> a").addClass("open");
				$(this).find("> ul").each(function() {
					cleanNavigationLevel(this, selectedHref);
				});
			}
		}
	});
}

function stitchSitemap()
{
	if ($("#topContent ul.nav").length > 0)
	{
		for (var i = 0; i < navigationStitching.length - 1; i += 2)
		{
			$("#topContent ul.nav a[@href='" + navigationStitching[i] + "']").parent().append($("#extraNavigation a[@href='" + umbracoUrl + navigationStitching[i+1] + "']").parent().children("ul").clone());
		}
	}
}


function printurl(section)
{
	var u = document.location.href;
	if(u.indexOf('#') > 0)
	{
	u = u.split('#');
	u = u[0];
	}
	u += (u.indexOf('?') >0)? '&':'?';
	u +='print=1';
	if(typeof(section)!="undefined") u +='&section='+ section;
	return u;
}

function printing(section)
{
	var u = printurl(section);
	w = window.open(u,'print','width=650,height=680,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no');
	w.focus();
}

function setLinkIcons()
{
	$('#content a').each(
		function() {
			setIconIfAllowed(this);
		}
	);
	$('#rightColumn a').each(
		function() {
			setIconIfAllowed(this);
		}
	);
	$('#leftNavigation .box a').each(
		function() {
			setIconIfAllowed(this);
		}
	);
}

function setIconIfAllowed(e)
{
	var icons = ",.pdf,.doc,.dwg,.txt,.xls,.wmv,.exe,.ppt,";
	if (icons.indexOf(',' + e.href.substr(e.href.length - 4).toLowerCase() + ',') > -1)
	{
		if ($(e).children("img").length > 0)
		{
		}
		else if ($(e).parent().is("p") && ($(e).parent().html().substr(0,2).toLowerCase() == "<a"))
		{
			$(e).addClass(e.href.substr(e.href.length - 3).toLowerCase());
		}
		else if ($(e).parent().is("p") && !($(e).parent().html().substr(0,2).toLowerCase() == "<a"))
		{
		}
		else
		{
			$(e).addClass(e.href.substr(e.href.length - 3).toLowerCase());
		}
	}
}

function TellAFriend()
{
	var path = document.location.href;
	if (path.indexOf('?lastPagePath=') > 0) path = path.substring(0, path.indexOf('?lastPagePath='));
	var title = document.title;
	document.location.href='/Tell+a+friend?lastPagePath=' + escape(path) + '&lastPageTitle=' + escape(title);
}

function showJSIcons()
{
	$(".jsshow").removeClass("jsshow");
}

function setTopHeight()
{
	var imgHeight = $("#top img:first").height();
	$("#top").css("height", imgHeight);
	$("#topNavigation").css("top", imgHeight + 10);
	$("#pathNavigation").css("top", imgHeight + 54);
	$("#siteContainer").css("padding-top", imgHeight + 85);
	$("#siteContainerFront").css("padding-top", imgHeight + 53);
}

function lineTables()
{
	$("table.linedTable").each(function() {
		$(this).find("tr:odd").addClass("e");
	});
	$("table.linedTable tr").mouseover(function() {
		$(this).addClass("o");
	});
	$("table.linedTable tr").mouseout(function() {
		$(this).removeClass("o");
	});
}

function lineNavigation(ul, level)
{
	var subUL = $(ul).find("> li > ul");
	if (subUL.length > 0)
	{
		var subSubUL = $(subUL).find("> li > ul");
		if (subSubUL.length > 0)
			lineNavigation(subUL, level + 1);
		else
			if (level > 1) subUL.parent().addClass("lined");
	}
	$(ul).find("li.collapsed").removeClass("lined");
}

function setupSitemap()
{
	var avg = $("#topContent > ul.nav li").length / 4.0;
	if (avg > 0)
	{
		$("#topContent > ul.nav").before('<div id="sitemap"></div>');
		$("#sitemap").before('<ul class="navjs"></ul>');
		var ul = $("#topContent > ul.navjs");
		var cnt = 0;
		var ulCnt = 1;
		while ($("#topContent > ul.nav > li").length > 0)
		{
			ul.append($("#topContent > ul.nav > li:first-child"));
			cnt = $("#topContent > ul.navjs li").length;
			if (cnt > (avg * sitemapDistributionFactor) && ulCnt < 4)
			{
				ulCnt++;
				$("#sitemap").append(ul);
				if (ulCnt > 3)
					$("#sitemap").before('<ul class="navjs navjslast"></ul>');
				else
					$("#sitemap").before('<ul class="navjs"></ul>');
				ul = $("#topContent > ul.navjs");
			}
		}
		$("#sitemap").append(ul);
		$("#topContent > ul.nav").remove();
		$("#topContent ul.navjs").addClass("nav");
	}
}

function addNavigation()
{
	var extra = $("#extraNavigation > ul > li");
	$("#topNavigation ul.nav").prepend(extra.clone());
	$("#topContent ul.nav").prepend(extra);

	$("#topNavigation > ul.nav > li > ul > li > ul").remove();
}

function log(s)
{
	var now = new Date();
	s = (now.getTime() + '').substr(9) + ": " + s;
	if (debug && self.console) console.log(s);
	debugString += s + '\n';
}
