// identify ie6 & ie
var isMsIe6 = $.browser.msie && $.browser.version == 6;
var isMsIe = $.browser.msie;

// stopp ie6 flickering.
if (isMsIe6) {
  try {
    document.execCommand("BackgroundImageCache", false, true);
  }
  catch (e) {
  }
}

jQuery.fn.outerHTML = function() {
  return $('<div>').append(this.eq(0).clone()).html();
};

$(document).ready(function () {
	/**
	* Close button in popup-layers
	*/
	$("a.close-popup").livequery("click", function (e) {
		if ($('body #article div.ajax-layer').length > 0) {
			$('body #article div.ajax-layer').remove();
		}
		return false;
	});

	/**
	* Close popup if click is outside
	*/
	$('body').livequery("click", function (e) {
		if (!$(e.target).parents('body #article div.ajax-layer').length) {
			$('body #article div.ajax-layer').remove();
		}
	});

	/**
	* Open popup layer
	*/
	$("a.popup").livequery("click", function (e) {
		// remove the ajax-layer if it exists
		if ($('body #article div.ajax-layer').length > 0) {
			$('body #article div.ajax-layer').remove();
		}
		var $clickLink = $(this);

		// add layer
		$('#article').append('<div class="ajax-layer"></div>');
		var ajaxLayer = $('body div.ajax-layer');
		var loadUrl = $(this).attr("href") + '?ajax=true';
		$(ajaxLayer).load(loadUrl, function () {
			$('div.ajax-layer div.order-form').append('<span class="bg-bl"></span><span class="bg-b"></span><span class="bg-br"></span>');
			$('div.ajax-layer div.order-form').append('<span class="bg-r"></span><span class="bg-rt"></span>');
			var $orderForm = $('#article div.ajax-layer div.order-form');
			var paddingHeight = parseInt($orderForm.css("padding-top"), 0) * 2;
			var paddingWidth = parseInt($orderForm.css("padding-left"), 0) * 2;
			var formHeight = $orderForm.height() + paddingHeight + 1;
			var formWidth = $orderForm.width() + paddingWidth + 2;
			$(ajaxLayer).find("span.bg-b").css('top', formHeight + 'px').css('left', '3px').css('width', formWidth - 4 + 'px');
			$(ajaxLayer).find("span.bg-br").css('top', formHeight + 'px').css('right', '-5px');
			$(ajaxLayer).find("span.bg-bl").css('top', formHeight + 'px').css('left', '-1px');
			$(ajaxLayer).find("span.bg-r").css('top', '3px').css('height', formHeight - 3 + 'px').css('right', '-5px');
			$(ajaxLayer).find("span.bg-rt").css('top', '-1px').css('right', '-5px');

			var pos = $clickLink.position();
			var top = parseInt(pos.top) - $(this).height();
			// do not overlap the header
			if (top < 1) {
				var top = 0;
			}
			var topPx = top + 'px';
			var left = parseInt(pos.left) + 10;
			var leftPx = left + 'px';
			$(ajaxLayer).css({
				position: "absolute",
				marginLeft: leftPx,
				marginTop: topPx
			});
		});
		return false;
	});

	/**
	* Add rounded corners to pagination buttons
	*/
	$('ul.pagination li').each(function () {
		$(this).append('<span class="tl"></span><span class="tr"></span>');
		$(this).append('<span class="bl"></span><span class="br"></span>');
		if (isMsIe6) {
			var topHeight = $(this).height() - 2;
			$(this).find("span.bl").css('top', topHeight + 'px');
			$(this).find("span.br").css('top', topHeight + 'px');
		}
	});

	/**
	* Add rounded corners to teasers
	*/
	$('div[class*=teaser]').each(function () {
		$(this).append('<span class="tl"></span><span class="tr"></span>');
		$(this).append('<span class="bl"></span><span class="br"></span>');
		// fix for IE6 with bad floats
		if (isMsIe6) {
			var topHeight = $(this).height() - 2;
			$(this).find("span.bl").css('top', topHeight + 'px');
			$(this).find("span.br").css('top', topHeight + 'px');
		}
	});

	/**
	* Print button
	*/
	$("a.print").livequery("click", function () {
		var url = $(this).attr("href");
		if (!url || url == '') {
			return false;
		}
		var printTarget;

		var data = $(this).metadata();
		if (data.printTarget && data.printTarget != '') {
			printTarget = $(data.printTarget);
		}
		else {
			var targets = ['#article', '.printTarget'];
			var i = 0;
			var once = true;
			do {
				if (!once) {
					printTarget = $(this).parents(targets[i] + ':not(div.puff005, div.puff040)').get(0);
				}
				else {
					printTarget = $(this).siblings(targets[i] + ':not(div.puff005, div.puff040)').get(0);
					once = false;
					i--;
				}
				i++;
			}
			while (!printTarget && i < targets.length);
		}
		if (!printTarget) {
			return false;
		}
		url += '?id=' + encodeURIComponent($(printTarget).attr('id')); //Generera unikt ID, finns ett så används det
		url += '&src=' + encodeURIComponent(location.href);
		url += '&lastmod=' + encodeURIComponent(document.lastModified);
		window.open(url, 'printwindow', 'toolbar=no,location=no,directories=no,width=900,height=500,scrollbars=yes,menubar=no,resizable=yes', true).focus();
		//window.open(url, 'printwindow', 'toolbar=yes,location=yes,directories=yes,width=900,height=500,scrollbars=yes,menubar=yes,resizable=yes', true).focus();
		return false;
	});

	/**
	* Form submit-button should be an image so we need to manipulate xForms markup
	*/
	$('input[type=submit]').wrap("<div class=\"submit-button\"></div>");

	/**
	* Catch form-submits in popups
	*/
	$('div.ajax-layer form').livequery('submit', function (event) {
		var ajaxLayer = $('body div.ajax-layer');
		var currentHeight = $(ajaxLayer).height();
		var loadUrl = $(this).attr("action") + '?ajax=true';
		$(ajaxLayer).load(loadUrl);
		$(ajaxLayer).css('height', '400px')
		return false;
	});

	/**
	* Change image on weather map
	*/

	var mapTrigger = false;
	var listTrigger = false;

	$('#weather-map-holder area').click(function () {
		var $this = $(this);
		var mapArea = $this.attr('id');
		var $target = $("#weather-table tr." + mapArea);
		triggerListPoint($target);
		$.scrollTo($target, 600);
		return false;
	});

	$('#avalanche-map-holder area').click(function () {

		var $this = $(this);
		var mapArea = $this.attr('id');
		var $target = $(".prognosis-table tr." + mapArea);

		if (!$target || $target.size() == 0)
			return false;

		var $days = $target.children('td');
		var $node = $days.filter('.today');
		var state;

		if ($node.size() < 1) { $node = $days.filter(':not(.old):first'); }
		if ($node.size() < 1) { $node = $days.filter('.old:last'); }

		if ($node.size() > 0) {
			var url = $node.children('img').attr('src');
			var data = url.replace(new RegExp('[^0-9]*', 'i'), '');

			if (data) {
				state = parseInt(data);
			}
		}

		if (!state || state == NaN) state = 6;

		$('#avalanche-map-holder .weather-map')
			.attr('class', 'weather-map')
			.addClass(mapArea)
			.addClass('weather-state' + state);

		setSelected($target);

		$.scrollTo($target, 600);

		return false;
	});

	$('.weather-map-image').click(function () {
		return false;
	});

	function setSelected(listlink) {
		//Unmark all
		$(".prognosis-table tr").removeClass("selected");

		//Set specific
		listlink.addClass("selected");
	}

	function triggerMapPoint(maplink) {
		$('#weather-map-holder .weather-map').attr('class', '').addClass('weather-map ' + maplink);
	}

	function triggerListPoint(listlink) {
		listlink.find(".weather-title a").click();
		listlink.find(".weather-title a").click();

	}

	$('#weather-table .weather-title a').click(function () {
		var maplink = $(this).metadata().maptarget;

		triggerMapPoint(maplink);

		var $targetrow = $(this).parent().parent().parent().find(".table-extendedinfo." + maplink);
		var $sourcerow = $(this).parent().parent().next("tr");
		var $sourcerowsecond = $(this).parent().parent();

		if ($(this).is(".link-arrow-right-active")) {
			$("#weather-table .link-arrow-right-active").removeClass("link-arrow-right-active");
			$("#weather-table .extendedactive").removeClass("extendedactive").find("td").hide();
			$("#weather-table .two-rows-disable").removeClass("two-rows-disable");
		} else {
			$("#weather-table .link-arrow-right-active").removeClass("link-arrow-right-active");
			$("#weather-table .extendedactive").removeClass("extendedactive").find("td").hide();
			$("#weather-table .two-rows-disable").removeClass("two-rows-disable");
			if (!$targetrow.is(".extendedactive")) {
				$(this).addClass("link-arrow-right-active");
				//$targetrow.addClass("extendedactive").find("td").show();  
				$targetrow.addClass("extendedactive").find("td").hide(); //Mattias 100215  
				//$sourcerow.addClass("two-rows-disable");
				//$sourcerowsecond.addClass("two-rows-disable");
			}

		}
		return false;
	});


});

$(document).ready(function () {
	$("#menu ul li").hover(onMenuHoverIn, onMenuHoverOut);	
});

function onMenuHoverIn(event) {
    $(this).find(".MainMenuSubLevel").fadeIn(200);
}

function onMenuHoverOut(event) {
    $(this).find(".MainMenuSubLevel").fadeOut(200);
}


