﻿// RollOver images
// * This control rollover images preloads them and set the behavior
// * For the behavior to work you need to to do 3 things
// * Place the 2 images in the buttons folder and name them [name]_over and [name]_out fx: button_over.gif and button_out.gif
// * Add the images to the images array using addButtonImages(name) function and only pass the name
// * Add onmouseover="linkBehavior(this, 'over')" onmouseout="linkBehavior(this, 'out')" to the the desired tag
//-------------------------------------
var buttonImages_array = [];
function addButtonImages(name) {
	buttonImages_array.unshift({});
	buttonImages_array[0].name = name;
	buttonImages_array[0].over = new Image();
	buttonImages_array[0].out = new Image();
}
//*************************************
// ADD IMAGES HERE
//*************************************
addButtonImages("arrowButton");
addButtonImages("arrowButtonClean");
addButtonImages("browseButton");
addButtonImages("browseButton");
addButtonImages("listArrowButton");
addButtonImages("nextButton");
addButtonImages("prevButton");
addButtonImages("pageBack");
addButtonImages("pageForw");
addButtonImages("searchButton");
addButtonImages("selectBox");
addButtonImages("sendButton");
addButtonImages("showOnList");
addButtonImages("showOnMap");
addButtonImages("xButton");
//-------------------------------------
// linkBehavior set defferents states
//-------------------------------------
var DocumentReady = false;
function getImage(src, state) {
	var src_str = src.toString();
	var returnSrc = src;
	src_str = src_str.substring(src_str.lastIndexOf("/") + 1, src_str.lastIndexOf("_"));
	for (var i = 0; i < buttonImages_array.length; i++) {
		if (src_str == buttonImages_array[i].name) {
			returnSrc = buttonImages_array[i][state].src;
		}
	}
	return returnSrc;
}
function imgBehavior(imgObj, state) {
	if(DocumentReady && $(imgObj).length > 0){
		var $img = $(imgObj);
		var newImageSrc = getImage($img.attr("src"), state);
		$img.attr("src", newImageSrc);
	}
}
function linkBehavior(linkObj, state) {
	if(DocumentReady && $(linkObj).length > 0){
		var $img = $("img", linkObj);
		var newImageSrc = getImage($img.attr("src"), state);
		$img.attr("src", newImageSrc);
	}
}
//-------------------------------------
// Preload all images
//-------------------------------------
function preloadImages() {
	if (document.images) {
		for (var i = 0; i < buttonImages_array.length; i++) {
			buttonImages_array[i].over.src = pathPrefix + "images/buttons/" + buttonImages_array[i].name + "_over.gif";
			buttonImages_array[i].out.src = pathPrefix + "images/buttons/" + buttonImages_array[i].name + "_out.gif";
		}
	}
}
//-------------------------------------
// Flash top
//-------------------------------------
function getLocation() {
	var locHref = window.location.href;
	return locHref;
}
function getMenuVars() {
	var varsString = "";
	$("#topMenuAlternative > ul > li").each(function(index) {
		varsString += $("> a > span", this).text() + "*";
		varsString += $("> a", this).attr("href") + "*";
		varsString += (($(this).attr("class") == "topMenuActive") ? 1 : 0) + "*";
		varsString += (index + 1 < $("#topMenuAlternative > ul > li").length) ? "@": "";
	});
	varsString = encodeURIComponent(varsString);
	return varsString;
}
function getSubMenuVars() {
	var varsString = "";
	$("#topContentAlternative > ul > li").each(function(index) {
		if ($(this).attr("class") != "listHeading") {
			varsString += $("> a", this).text() + "*";
			varsString += $("> a", this).attr("href") + "*";
			varsString += (($(this).attr("class") == "subMenuActive") ? 1 : 0) + "*";
			varsString += (index + 1 < $("#topContentAlternative > ul > li").length) ? "@": "";
		}
	});
	varsString = encodeURIComponent(varsString);
	return varsString;
}

function swfObjectInit() {
	var flashvars = {};
	flashvars.mainMenu = getMenuVars();
	flashvars.subMenu = getSubMenuVars();
	flashvars.pathPrefix = (pathPrefix) ? pathPrefix : "";
	flashvars.xmlPath = (flash_path) ? flash_path : "";

	var params = {};
	params.scale = "noscale";
	params.wmode = "transparent";
	params.swliveconnect = "true";
	params.allowfullscreen = "true";
	params.allowscriptaccess = "always";
	params.allownetworking = "all";
	params.salign = "TM";

	if ($(".flashBigTop").length > 0) {
		swfobject.embedSWF(pathPrefix + "flash/LPMainModule.swf", "flashObject", "100%", "100%", "9.0.0", pathPrefix + "includes/swfobject/expressInstall.swf", flashvars, params);
	} 
	if ($(".flashSmallTop").length > 0) {
		swfobject.embedSWF(pathPrefix + "flash/LPMiniModule.swf", "flashObject", "100%", "100%", "9.0.0", pathPrefix + "includes/swfobject/expressInstall.swf", flashvars, params);
	}
	
	if($("#flashAlternative").length > 0){
		$("#flashAlternative").css("visibility","visible");	
	}
}

//-------------------------------------
// Flash product calculator
//-------------------------------------
function swfObjectXInit() {
	var params = {};
	
	var obj = $("#flashObjectX");
	if (obj.length > 0) {
		// Adjust divs to prevent overlay
		var column = $(obj.parent().parent().next()[0]);
		column.css('width','265px');
		column.css('margin-left','165px');
		var url = obj.text()
		var params = {};
		params.wmode = "transparent";
		params.swliveconnect = "true";
		params.allowfullscreen = "true";
		params.allowscriptaccess = "always";
		params.allownetworking = "all";
		params.salign = "TM";
		
		swfobject.embedSWF(url, "flashObjectX", "90%", "90%", "9.0.0", "/Style%20Library/includes/swfobject/expressInstall.swf", {}, params);
	}
}

//-------------------------------------
// fix IE6 PNG
//-------------------------------------
var png_array = [];
png_array.push(".leftShadow")
png_array.push(".rightShadow")
png_array.push("#Template_2 .bottomRow")

function fixIE6PNG() {
	if ($.browser.msie) {
		var selectString = png_array.join(", ")
		$(selectString).pngfix();
		$("img[src*='png']").pngfix({
			sizingMethod: "scale"
		});
	}
}

//-------------------------------------
// MOSSCheck
//-------------------------------------
function MOSSCheck(){
	var testMoss = typeof(L_CutToolTip_TEXT);
	if(testMoss == "undefined"){
		return true;
	}else{
		return false;
	}
}


//-------------------------------------
// adminRemoveShadows
//-------------------------------------
function adminRemoveShadows(){
	if(!MOSSCheck()){
		$('.rightShadow, .leftShadow').hide();	
	}else {
		$('.rightShadow, .leftShadow').show();	
	}
}
//-------------------------------------
// sifrSetup
//-------------------------------------
var InfoDispBook
var InfoDispBold
function sifrFontSetup(){
	InfoDispBook = {
		src: pathPrefix + 'includes/sifr3/flash/InfoDispBook.swf',
		ratios: [9, 1.27, 14, 1.19, 15, 1.16, 23, 1.15, 26, 1.12, 27, 1.13, 38, 1.12, 43, 1.11, 50, 1.1, 51, 1.11, 74, 1.1, 75, 1.09, 80, 1.1, 81, 1.09, 82, 1.1, 87, 1.09, 89, 1.1, 1.09]
	};
	InfoDispBold = {
		src: pathPrefix + 'includes/sifr3/flash/InfoDispBold.swf',
		ratios: [7, 1.32, 11, 1.31, 13, 1.24, 14, 1.25, 19, 1.23, 20, 1.22, 26, 1.21, 33, 1.2, 40, 1.19, 54, 1.18, 58, 1.17, 59, 1.18, 95, 1.17, 97, 1.16, 100, 1.17, 104, 1.16, 105, 1.17, 110, 1.16, 111, 1.17, 1.16]
	};
}
function setH1(){
	sIFR.replace(InfoDispBook, {
		selector: 'h1',
		css: {
			'.sIFR-root': {
				'color': '#5e6e65',
				'letter-spacing': '0.5',
				'textDecoration':'none'
			},
			'a': {
				'color': '#5e6e65',
				'letter-spacing': '0.5',
				'textDecoration':'none'
			},
			'a:hover': {
				'color': '#328e92',
				'letter-spacing': '0.5',
				'textDecoration':'none'
			}
		},
		wmode: 'transparent',
		fitExactly: true,
		antiAliasType: "advanced",
		gridFitType: "pixel"
	});
}
function setH2(){
	sIFR.replace(InfoDispBold, {
		selector: 'h2',
		css: {
			'.sIFR-root': {
				'color': '#5e6e65',
				'letter-spacing': '0.2',
				'textDecoration':'none'
			},
			'a': {
				'color': '#5e6e65',
				'letter-spacing': '0.5',
				'textDecoration':'none'
			},
			'a:hover': {
				'color': '#328e92',
				'letter-spacing': '0.5',
				'textDecoration':'none'
			}
		},
		wmode: 'transparent',
		fitExactly: true,
		tuneHeight: -5,
		antiAliasType: "advanced",
		gridFitType: "pixel"
	});
}
function setH3(){
	sIFR.replace(InfoDispBold, {
		selector: 'h3',
		css: {
			'.sIFR-root': {
				'color': '#5e6e65',
				'letter-spacing': '0.5',
				'textDecoration':'none'
			},
			'a': {
				'color': '#5e6e65',
				'letter-spacing': '0.5',
				'textDecoration':'none'
			},
			'a:hover': {
				'color': '#328e92',
				'letter-spacing': '0.5',
				'textDecoration':'none'
			}
		},
		wmode: 'transparent',
		fitExactly: true,
		tuneHeight: -6,
		antiAliasType: "advanced",
		gridFitType: "pixel"
	});
}




function sifrSetup() {
	// if MOSS console open do nothing
	if(MOSSCheck()){	
		// debug code, comment out for live version
		//sIFR.fromLocal = true;
		sifrFontSetup()
		sIFR.useStyleCheck = true;
		sIFR.activate(InfoDispBook, InfoDispBold);
		// H1
		setH1();
		
		// H2
		setH2();
		// H3
		setH3();
	}
}
//-------------------------------------
// initTabs
//-------------------------------------
function initTabs() {
	$("div.ui-tabs").map(function() {
		var $TabsNavLi = $("ul.ui-tabs-nav > li", this)
		// initialize tabs
		$(this).tabs({
			fx: {
				opacity: 'toggle',
				duration: 'fast'
			}
		});
		// Reorder tab 
		$TabsNavLi.each(function(index) {
			$(this).css("z-index", $TabsNavLi.length - index);
		});
		// Set selected tab z-index		
		$(this).bind('tabsselect', function(event, ui) {
			$TabsNavLi.each(function(index) {
				$(this).css("z-index", (ui.index == index) ? 500 : $TabsNavLi.length - index);
			});
		});		
	});
}
//-------------------------------------
// Google map setup
//-------------------------------------
var GMap2 = null
function initGMap() {
	if (!$.isFunction(GMap2)) return;
	if (!GBrowserIsCompatible()) return;
	
	var map = null;
	var myIcon = new GIcon();

	myIcon.image = pathPrefix + 'images/graphic/map/marker.png';
	myIcon.printImage = pathPrefix + 'images/graphic/map/printImage.gif';
	myIcon.mozPrintImage = pathPrefix + 'images/graphic/map/mozPrintImage.gif';
	myIcon.iconSize = new GSize(18, 25);
	myIcon.shadow = pathPrefix + 'images/graphic/map/shadow.png';
	myIcon.shadowSize = new GSize(31, 25);
	myIcon.printShadow = pathPrefix + 'images/graphic/map/printShadow.gif';
	myIcon.iconAnchor = new GPoint(13, 35);
	myIcon.infoWindowAnchor = new GPoint(13, 0);

	var style = [{
		url: pathPrefix + 'images/graphic/map/group.png',
		height: 31,
		width: 31,
		opt_anchor: [8, 0],
		opt_textColor: '#FFF'
	}];

	var markers = [];
	var markerClusterer = null;
	var bounds = null;

	map = new GMap2(document.getElementById("map_canvas"));
	map.setUIToDefault();
	//map.setMapType(G_PHYSICAL_MAP);
	map.addControl(new GLargeMapControl3D());
	map.disableScrollWheelZoom();
	
	var $Alert = $("<div class='mapAlert'><div class='loadingBg'><div class='loadingAni'>&nbsp;</div></div></div>");
	$("#map_canvas").append($Alert)

	bounds = new GLatLngBounds; 
	
	var query = ($('#findBank input:text').val().length > 0) ? "?search=" + encodeURIComponent($('#findBank input:text').val()) : "";
	var markerURL = (isLocal) ? ("includes/markers.xml") : ("/_layouts/LETPENSION/MapXML.ashx" + query);
	if(typeof(mapURL) != "undefined") markerURL = mapURL;
	//
	GDownloadUrl(markerURL, function (doc) {
		var xmlDoc = GXml.parse(doc);
		var xmlMarker = xmlDoc.documentElement.getElementsByTagName("marker");
		if (parseInt(xmlMarker.length) > 0) {
			$Alert.remove();
			for (var i = 0; i < xmlMarker.length; i++) {
				var lat = parseFloat(xmlMarker[i].getAttribute("lat"));
				var lng = parseFloat(xmlMarker[i].getAttribute("lng"));
				if(!isNaN(lat) && !isNaN(lng)){
					var point = new GLatLng(lat, lng);
					bounds.extend(point);
					var html = GXml.value(xmlMarker[i].getElementsByTagName("infowindow")[0]);
					var label = xmlMarker[i].getAttribute("label");
					var marker = createMarker(point, label, html);
					markers.push(marker)
				}
			}
			map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
			refreshMap()
		}else{
			debug("try")
			$Alert.html("<div class='msg'>Din søgning gav desværre ikke nogen resultater.<br />Prøv at søge på et andet postnummer eller en anden by i nærheden.</div>")
			map.setCenter(new GLatLng(56.19165655, 11.6265821), 7);
		}
	});

	function createMarker(point, name, html) {
		var markerOptions = {
			icon: myIcon,
			draggable: false
		};
		var marker = new GMarker(point, markerOptions);
		GEvent.addListener(marker, "click", function () {
			marker.openInfoWindowHtml(html);
		});
		return marker;
	}
	function refreshMap() {
		if (markerClusterer != null) {
			markerClusterer.clearMarkers();
		}
		markerClusterer = new MarkerClusterer(map, markers, {maxZoom: 12, gridSize: 50, styles: style});
	}
	$(window).unload(GUnload);
}


function sortFooterList(){
	var $Uls = $("#footerListContainer ul");
	var $Lis = $("#footerListContainer li");
	var totalHeight = 0;
	var margin = 18;
	$Lis.each(function(index){
		var thisH = $(this).height();
		if($(this).is(".listHeading")) {
				thisH += margin
		}
		totalHeight += thisH
	});
	var colHeight = Math.ceil(totalHeight/4) + margin;
	
	var $Column_arr = [$('<ul class="Column" />'),$('<ul class="Column" />'),$('<ul class="Column" />'),$('<ul class="Column" />')]
	for (var i=0; i<4; i++){
		$("#footerListContainer").append($Column_arr[i])
	}
	var cIndex = 0;
	$Lis.each(function(index){
		var colH = $Column_arr[cIndex].height();
		var thisH = $(this).height();
		if($(this).is(".listHeading")) {
				thisH += margin
		}
		if( colH+thisH > colHeight && cIndex < 3) {
			cIndex++;
		}
		$Column_arr[cIndex].append($(this))
	});
	
	$("#footerListContainer li:first-child").map(function(){
		if(!$(this).is(".listHeading")) {
				$(this).css("margin","18px 0 0 0")
		}
	});	
	$("#footerListContainer ul").not(".Column").remove();
}
//-------------------------------------
// debug
//-------------------------------------
function debug(msg) {
	if (window.console && window.console.log) window.console.log(msg);
}
//-------------------------------------
// isLocal || pathPrefix
//-------------------------------------
var isLocal = (window.location.href.indexOf("file:") > -1 || window.location.href.indexOf("in2media") > -1)
var pathPrefix = (isLocal) ? "" : "/Style%20Library/";
//-------------------------------------
// Init sIFR must run last!!
//-------------------------------------
sifrSetup();
//-------------------------------------
// On ready events
//-------------------------------------
$(document).ready(function() {
	preloadImages();
	adminRemoveShadows();
	swfObjectXInit();
	swfObjectInit();
	fixIE6PNG();	
	initGMap();
	sortFooterList();
	styleFormFields();
	initTabs();	
	DocumentReady = true;
});


