/*

alle hjørner wrappes på

navigation
	selected/open/hover states, forskellige på forskellige farver? blå på gul bliver f.eks. ikke godt
	wrap i spans
	sæt klasser
		first?
		last?
		firstOpen?
		lastOpen?
		middleOpen?
		(firstSelected, middleSelected, lastSelected)

	markeret topnavigation uden børn

link farve på hvid tekst

*/

var debug = true;
var retrycount = 0;
var maxRetries = 15;

$(window).load(function() {
	log("complete");
});

$().ready(function()
{
	log("js start");
	
	if ($("#siteContainer").length == 1 && $("#siteContainer #topNavigation div.subNavigation").length != 1)
	{
		$("#siteContainer").addClass("hasPath");
		$("#siteContainer").attr("id", "siteContainerFront");
	}

	$("button").each(function() {
		var s = $(this).text().replace(/\s+/gi, '');
		if (s == '') $(this).hide();
	});

	$("#floatContainer").find("h1, h2, h3, h4, p, a").each(function() {
		$(this).html($(this).html().replace(/α/gi, '<span class="alpha">&alpha;</span>'));
	});

//	$('img[src$=.png]').ifixpng();
	fixNavigation();
	fixToolNavigation();
	setLinkIcons();
	activateTooltips();
	activateToggles();
//	var t = setTimeout("wrapImagesAndImageLinks()", 100)
	wrapImagesAndImageLinks();
	fixBrochureCorners();

	if ($("div#content div.wide div.f1").length < 5) fixProductCategories();

	showStatement();
	showRandomBox();

	var cookieCheck = false;
	createCookie("rockfonLoginCheck", "1", "1");
	cookieCheck = (readCookie("rockfonLoginCheck") == "1");

	if (cookieCheck)
	{
		if ($("form.loginForm").length > 0)
		{
			var rememberMeLabel = $("form.loginForm span.rememberMeLabel").html();
			$('<fieldset class="checkbox"><label class="checkbox">' + rememberMeLabel + '</label><input type="checkbox" id="rememberLogin" class="checkbox"/><br/></fieldset>').insertBefore("form.loginForm input:last");
			var rememberMe = (readCookie("rockfonLoginRememberMe") == "1");
			var login = "";
			if (readCookie("rockfonLoginName") != '') login = readCookie("rockfonLoginName");
			var password = "";
			if (readCookie("rockfonLoginPassword") != '') password = readCookie("rockfonLoginPassword");
			if (rememberMe) $(this).find("input").eq(3).attr("checked", "checked");
			$("form.loginForm").find("input").eq(1).val(login);
			$("form.loginForm").find("input").eq(2).val(password);
		}


		$("form.loginForm").submit(function() {
			var login = $(this).find("input").eq(1).val();
			var password = $(this).find("input").eq(2).val();
			if ($(this).find("input").eq(3).is(":checked"))
			{
			 	createCookie("rockfonLoginRememberMe", "1", 365);
			 	createCookie("rockfonLoginName", login, 365);
			 	createCookie("rockfonLoginPassword", password, 365);
			}
			else
			{
		 		eraseCookie("rockfonLoginRememberMe");
		 		eraseCookie("rockfonLoginName");
		 		eraseCookie("rockfonLoginPassword");
			}
			$(this).unbind("submit");
			$(this).submit();
		});
	}

	log("js end");
});

function filterDealers(e)
{
	var country = $(e).val();
	if (country != '')
	{
		$("#dealers div.dealer, #dealers h2").addClass("hidden");
		$("#dealers div.dealer, #dealers h2").each(function() {
			if ($(this).attr("class").indexOf("{" + country + "}") > -1) $(this).removeClass("hidden");
		});
	}
	else
	{
		$("#dealers div.dealer, #dealers h2").removeClass("hidden");
	}
}


function fixProductCategories()
{
	var maxHeight = 0;
	$("div#content div.wide div.f1").each(function() {
		if ($(this).find("h2:first").height() > maxHeight) maxHeight = $(this).find("h2:first").height();
	});
	$("div#content div.wide div.box").find("h2:first").height(maxHeight);
}

function showStatement()
{
	var statements = $("div.statements h1");
	if ($(statements).length > 0)
	{
		var r = Math.floor(Math.random() * $(statements).length);
		$(statements[r]).fadeIn("slow");
	}
}

function showRandomBox()
{
	var statements = $("div.boxRandom");
	if ($(statements).length > 0)
	{
		var r = Math.floor(Math.random() * $(statements).length);
		$(statements[r]).fadeIn("");
	}
}


function fixBrochureCorners()
{
	$("div.brochures div.box div.topBox:has(img)").each(function() {
		var imageUrl = $(this).find("img").attr("src");
//		var imageWidth = $(this).find("img").width();
		var imageWidth = 50;
		$(this).find("img").remove();
		if (imageUrl != '')
		{
//			$(this).find("h2").text($(this).find("h2").text() + ' ' + imageWidth)
			$(this).css("background-image", "url(" + imageUrl + ")").css("background-repeat", "no-repeat");
			$(this).find("> span > span").css("padding-left", 15 + imageWidth);
		}
	});
}

function activateToggles()
{
	$("a.toggle:not(.toggleAll)").click(function() {
		if ($(this).hasClass("toggleOpen"))
		{
			var change = true;
			$(this).parents("tr:first").nextAll("tr").each(function() {
				if (!$(this).hasClass("l")) change = false;
				if (change && $(this).hasClass("l")) $(this).addClass("h");
			});
			
			$(this).addClass("toggleClosed").removeClass("toggleOpen");
			if (!$("a.toggle:not(.toggleAll)").hasClass("toggleOpen")) $("a.toggleAll").addClass("toggleClosed").removeClass("toggleOpen");
		}
		else
		{
			var change = true;
			$(this).parents("tr:first").nextAll("tr").each(function() {
				if (!$(this).hasClass("l")) change = false;
				if (change && $(this).hasClass("l")) $(this).removeClass("h");
			});

			$(this).removeClass("toggleClosed").addClass("toggleOpen");
			if (!$("a.toggle:not(.toggleAll)").hasClass("toggleClosed")) $("a.toggleAll").addClass("toggleOpen").removeClass("toggleClosed");
		}

		var cookieString = ',';
		var toggles = $("a.toggle:not(.toggleAll)");
		for (var i = 0; i < $(toggles).length; i++)
		{
			if ($(toggles[i]).hasClass("toggleOpen")) cookieString += (i + ',');
		}
		createCookie("toggleState", cookieString, "7");

		return false;
	});
	$("a.toggleAll").click(function() {
		if ($(this).hasClass("toggleOpen"))
		{
			$("tr.l").addClass("h");
			$("a.toggle:not(.toggleAll)").addClass("toggleClosed").removeClass("toggleOpen")
			$("a.toggleAll").addClass("toggleClosed").removeClass("toggleOpen")
			createCookie("toggleState", ",", "7");
		}
		else
		{
			$("tr.l").removeClass("h");
			$("a.toggle:not(.toggleAll)").removeClass("toggleClosed").addClass("toggleOpen")
			$("a.toggleAll").removeClass("toggleClosed").addClass("toggleOpen")
			var cookieString = ',';
			for (var i = 0; i < $("a.toggle:not(.toggleAll)").length; i++)
			{
				cookieString += (i + ',');
			}
			createCookie("toggleState", cookieString, "7");
		}

		var cookieString = ',';
		var toggles = $("a.toggle:not(.toggleAll)");
		for (var i = 0; i < $(toggles).length; i++)
		{
			if ($(toggles[i]).hasClass("toggleOpen")) cookieString += (i + ',');
		}
		createCookie("toggleState", cookieString, "7");

		return false;
	});
	$("table:not(.striped) tr.l").addClass("h");
	$("a.toggle:not(.toggleAll)").addClass("toggleClosed").removeClass("toggleOpen")
	$("a.toggleAll").addClass("toggleClosed").removeClass("toggleOpen")

	var cookieString = readCookie("toggleState");
	if (cookieString != ',' && cookieString != '' && undefined != cookieString)
	{
		var toggles = $("a.toggle:not(.toggleAll)");
		for (var i = 0; i < $(toggles).length; i++)
		{
			if (cookieString.indexOf(',' + i + ',') > -1)
			{
				if ($(toggles[i]).hasClass("toggleClosed")) $(toggles[i]).click();
			}
		}
	}
}
function toggleAll(e)
{
	log("all toggled");
}

function activateTooltips()
{
	$("div.tooltip:first a.close").click(function () {
		$("div.tooltip:first").addClass("tooltipHidden");
		return false;
	});
	$("span.info").click(function () {
		var left = $(this).offset().left - $("div.tooltip:first").width() + $(this).width();
		var minLeft = $("#siteContainer").offset().left + 15;
		if (left < minLeft) left = minLeft;

		var tooltipDiv = $("div.tooltip:first");

		$(tooltipDiv).find("div.tooltipText").html($(this).find("div").html());
		$(tooltipDiv).css("top", $(this).offset().top).css("left", left).removeClass("tooltipHidden");
	});
}

function fixToolNavigation()
{
	var url = document.location.href;
	if (url.indexOf("?") > 0) url = url.substr(0, url.indexOf("?"));
	$("#top a").each(function() {
		if (url.indexOf($(this).attr("href")) >= 0)
			$(this).addClass("selected").parent().addClass("selected");
	});
}

function testImageFailed() {
	var src = $(this).attr("src");
	log(src + " failed");
}

function testImage(url) {
	var tester=new Image();
	tester.onload = testImageLoaded;
	tester.onerror = testImageFailed;
	tester.src = url;
}

function testImageLoaded() {
	var imgSrc = $(this).attr("src");
	var imgs = $("img");
	for (var i = 0; i < imgs.length; i++)
	{
		if ($(imgs[i]).attr("src") == imgSrc)
		{
			var img = $(imgs[i]);
			if ($(img).parent().hasClass("roundedImageLink"))
			{
				$(img).parent().css("display", "block").width($(img).width()).height($(img).height()).wrap('<span class="tr columnImage"><span class="tl"><span class="bl"><span class="br"></span></span></span></span>').find("img").css("z-index", "-1").css("position", "relative");
				if ($(img).attr("onmouseover") != undefined && $(img).attr("onmouseover") != '')
				{
					$(img).parent().mouseover(function() {
						var over = $(img).html();
						over = over.substring(over.indexOf("over=\"img.src= '") + 17);
						over = over.substring(0, over.indexOf("'"));
						$(img).find("img").attr("src", over);
					})
					$(img).parent().mouseout(function() {
						var out = $(img).html();
						out = out.substring(out.indexOf("out=\"img.src= '") + 16);
						out = out.substring(0, out.indexOf("'"));
						$(img).find("img").attr("src", out);
					})
				}

			}
			else if ($(img).hasClass("topImage"))
			{
				var box = $(img).parents("div.box");
				var imgHeight = $(img).height() - 12;
				var imgWidth = $(img).width() - 30;
				var imgSrc = replaceAll($(img).attr("src"), ' ', '%20');
				var imgClick = $(img).attr("title");
				var imgTarget = "";
				if ($(img).hasClass("blank")) imgTarget = "_blank";
				$(box).css("background-image", "url(" + imgSrc + ")");
				$(img).replaceWith('<a class="topImage"></a>');
				$(box).find("a.topImage").css("display", "block").height(imgHeight + 12).width(imgWidth + 30);
				if (imgClick != '')
				{
					$(box).find("a.topImage").attr("href", imgClick).attr("target", imgTarget);
				}
			}
		}
	}
}

function wrapImagesAndImageLinks()
{
	$("div.column > img:not(.b)").css("z-index", "-1").css("position", "relative").wrap('<span class="tr columnImage"><span class="tl"><span class="bl"><span class="br"></span></span></span></span>')
	$("div.column > a:has(img:not(.b))").addClass("roundedImageLink").each(function() {
		testImage($(this).find("img").attr("src"));
	});

	$("div.col25 > span.tr").addClass("wide");
	$("div.col3 > span.tr").addClass("wide");
	$("div.column > div.box:has(img.bottomImage)").each(function() {
		var img = $(this).find("img.bottomImage");
		var imgHeight = $(img).height() - 12;
		var imgWidth = $(img).width();
		var imgSrc = replaceAll($(img).attr("src"), ' ', '%20');
		var imgClick = $(img).attr("title");
		$(this).css("background-image", "url(" + imgSrc + ")");
		$(img).replaceWith('<span class="bottomImage"></span>');
		$(this).find("span.bottomImage").css("display", "block").height(imgHeight).width(imgWidth);
		if (imgClick != '')
		{
			$(this).find("span.bottomImage").css("cursor", "pointer").attr("onclick", "document.location.href='" + imgClick + "'");
		}
	});
	$("div.column > div.box:has(img.topImage)").each(function() {
		testImage($(this).find("img.topImage").attr("src"));
	});
}

function replaceAll(text, strA, strB)
{
    return text.replace( new RegExp(strA,"g"), strB );    
}

function fixNavigation()
{
	var count = 1;
	var openNode = 0;
	$("#topNavigation > .nav li").each(function() {
//		$(this).addClass("c" + count);
		if (($(this).hasClass("open") || $(this).hasClass("selected")))
			openNode = count;
		$(this).wrapInner('<span class="tl"><span class="tr"><span class="bl"><span class="br"></span></span></span></span>');
		count++;
	});
	var subNavigation = $("#topNavigation .subNavigation");
//	$(subNavigation).addClass("c" + openNode);
	if (openNode == 1)
		$(subNavigation).wrapInner('<span class="tr"><span class="bl"><span class="br"></span></span></span>');
	else if (openNode == $("#topNavigation > .nav li").length)
		$(subNavigation).wrapInner('<span class="tl"><span class="bl"><span class="br"></span></span></span>');
	else
		$(subNavigation).wrapInner('<span class="tl"><span class="tr"><span class="bl"><span class="br"></span></span></span></span>');
//	$("#leftNavigation .nav").parents("div:first").addClass("c" + openNode);

	
}

function setLinkIcons()
{
	var icons = ",.pdf,.doc,.dwg,.txt,.xls,";
	$('#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,";
	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 printing()
{
	window.print();
}

function log(s)
{
	if (debug && self.console) console.log(s);
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
