﻿
/* EVENTHANDLER FOR DOMONLOAD
//## ADD FUNCTIONS THAT SHOULD RUN ON DOM LOAD
----------------------------------------------------*/
var onPageLoad = function() {
	//##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##
	setTopAnchor();
	hideElmsWithJavaScript();
	initColumnFix();
	initFlexArea();
	initEmail();
	initImageCaptions();
	initExternalLinks();
	initDCProjectItemLists();
	initThumbnailstrip();
	initModules();
	suggestionBox();
	initlostpwd();
	initImageSlider();
	//TODO: ONLY FOR DEMO - REMOVE WHEN IMPLEMENTED
	if ($ID('other-applications')) addEvent($ID('other-applications'), 'change', DisplayAjaxResult);

	//##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##
};


/* SET TOP ANCHOR IF SCROLLBAR IS VISIBLE
----------------------------------------------------*/
var setTopAnchor = function() {
 
    
    var containerClassName = $ID('container').className;
    if (containerClassName == 'firstpage') return;

    var docHeight = $ID('container').offsetHeight;
    if (docHeight > 700) {
        var centerDiv = $ID('center');
        if (!centerDiv) return;
        var topAnchorP = document.createElement('p');
        var topAnchorPId = document.createAttribute('id');
        topAnchorPId.value = 'topanchor';
        topAnchorP.setAttributeNode(topAnchorPId);
        var topAnchor = document.createElement('a');
        var topAnchorHref = document.createAttribute('href');
        topAnchorHref.value = '#container';

        topAnchor.setAttributeNode(topAnchorHref);
        topAnchorP.appendChild(topAnchor);
        $ID('content').appendChild(topAnchorP);
        //insertAfter(topAnchorP, centerDiv);
    }
}

/* HIDE ELMS WITH JAVASCRIPT
----------------------------------------------------*/
var hideElmsWithJavaScript=function(){

	Elm.Hide($ID('searchresults'));

	// HIDE BUTTONS
	var buttons = getElementsByAttribute($ID('content'), 'INPUT', 'type', 'submit');
	for(var x=0, nn=buttons.length, button=null; x<nn; x++){
		button=buttons[x];
		if((button.className!=='subscribe') && (button.value!=='Subscribe') && (button.value!=='Order') && (button.className !== 'searchbtn')){
			button.style.position='absolute';
			button.style.left='-9999em';
			button.style.width='10px';
		}
	}

};

/* FIXES PROPER COLUMNLAYOUT
----------------------------------------------------*/
var initColumnFix=function(){

	// UNSPECIFIED
	var threeColumns=getElementsByClassName($ID('main'),'DIV','columns');
	for(var i=0, threeColumn=null, columns=null, n=threeColumns.length; i<n; i++){
		threeColumn=threeColumns[i];
		columns=threeColumn.getElementsByTagName('DIV');
		for(var x=0, y=1, column=null, nn=columns.length; x<nn; x++){
			column=columns[x];
			if(column.className.indexOf('column')!= -1){
				y++;
				column.style.width='216px';
				column.style.cssFloat='left';
				column.style.styleFloat='left';
				if(y % 3 == 1){
					column.style.marginRight='0';
					var foo=document.createElement('BR');
					insertAfter(foo,column);
				}
			}
		}
	};

	// TWO COLUMNS
	var twoColumns=getElementsByClassName($ID('main'),'DIV','columns-2');
	for(var i=0, twoColumn=null, columns=null, n=twoColumns.length; i<n; i++){
		twoColumn=twoColumns[i];
		columns=twoColumn.getElementsByTagName('DIV');
		for(var x=0, y=1, column=null, nn=columns.length; x<nn; x++){
			column=columns[x];
			if(column.className=='column'){
				y++;
				column.style.width='310px';
				column.style.cssFloat='left';
				column.style.styleFloat='left';
				if(y % 2 == 0){
					column.style.clear='both';
				}
				if(y % 2 == 1){
					column.style.marginRight='0';
					var foo=document.createElement('BR');
					insertAfter(foo,column);
					
				}
			}
			if(column.className=='contact-card'){
				column.style.cssFloat='left';
				column.style.styleFloat='left';
			}
		}
	};

	// THREE COLUMNS
	var threeColumns=getElementsByClassName($ID('main'),'DIV','columns-3');
	for(var i=0, threeColumn=null, columns=null, n=threeColumns.length; i<n; i++){
		threeColumn=threeColumns[i];
		columns=threeColumn.getElementsByTagName('DIV');
		for(var x=0, y=1, column=null, nn=columns.length; x<nn; x++){
			column=columns[x];
			if(column.className.indexOf('column')!= -1){
				y++;
				column.style.width='216px';
				column.style.cssFloat='left';
				column.style.styleFloat='left';
				if(y % 3 == 1){
					column.style.marginRight='0';
					var foo=document.createElement('BR');
					insertAfter(foo,column);
				}
			}
		}
	};
	
	
};

/* INIT FLEXAREA
----------------------------------------------------*/
var initFlexArea=function(){
	var flexAreas=getElementsByClassName($ID('main'),'DIV','flex');
	var newFlexAreaHeight=112;
	for(var i=0, flexArea=null, n=flexAreas.length; i<n; i++){
		flexArea=flexAreas[i];
		if(flexArea.offsetHeight > newFlexAreaHeight){
			flexArea.style.height=newFlexAreaHeight+'px';
			flexArea.style.position='relative';
			flexArea.style.overflow='hidden';
			flexArea.style.paddingBottom='30px';
			var toggler=document.createElement('DIV');
			toggler.className='flex-toggle';
			var link=document.createElement('A');
			link.className='more';
			link.innerHTML='Expand';
			link.href='javascript:void(0);';
			addEvent(link, 'click', flexThisArea);
			toggler.appendChild(link);
			flexArea.appendChild(toggler);
		}
	}
};
var flexThisArea=function(){
	if(this.className=='more'){
		this.parentNode.parentNode.style.height='auto';
		this.className='less';
		this.innerHTML='Collapse';
	}else{
		this.parentNode.parentNode.style.height='112px';
		this.className='more';
		this.innerHTML='Expand';
	}
};


//TODO: DEMO!
var DEMO_ShowResult=function(){
	Elm.Hide($ID('searchresults'));
	window.setTimeout('Elm.Show($ID("searchresults"));',200);
};

/* ELEMENT VISIBILITY
----------------------------------------------------*/
var Elm={
	Hide:function(a){if(a)a.style.display='none'},
	Show:function(a){if(a)a.style.display='block'}
};

/* SHOW ELEMENT
----------------------------------------------------*/
Object.prototype.Show = function() { this.style.display = 'block' };

/*Init external links
---------------------------------------------------*/
var initExternalLinks = function() {
    var externalLinks = getElementsByAttribute(document, 'A', 'rel', 'external');
    for (var i = 0, n = externalLinks.length, link = null; i < n; i++) {
        link = externalLinks[i];
        link.target = "_blank";
        //addEvent(link, 'click', window.open);
    }
}


/* DISPLAYAJAXRESULT
----------------------------------------------------*/
var DisplayAjaxResult=function(Topic,Ouput,Trigger){
	
	//TODO: ONLY FOR DEMO - REMOVE WHEN IMPLEMENTED
	Topic = 'This is the topic';
	Ouput = '<ul><li><a href="#">Lorem ipsum</a></li><li><a href="#">Sit amet</a></li><li><a href="#">Consectetuer adipiscing</a></li><li><a href="#">Aenean commodo</a></li><li><a href="#">Ligula eget dolor</a></li></ul>';
	Trigger = this;

	if(!Trigger || !Ouput) return;

	var parent=null;
	var strOuput='<h2>'+ Topic +'</h2><div class="close"><a href="javascript:void(0);" onclick="this.parentNode.parentNode.style.display=\'none\'">Close</a></div>'+ Ouput;

	if(typeof Trigger !== 'object'){
		parent = $ID(trigger);
	}else{
		parent = Trigger;
	}
	if(!parent) return;

	var currAjaxPlacement=$ID('ajaxplacement');
	if(currAjaxPlacement) parent.parentNode.removeChild(currAjaxPlacement);

	var ajaxPlacement=document.createElement('DIV');
	ajaxPlacement.id='ajaxplacement'
	parent.parentNode.insertBefore(ajaxPlacement, parent)

	var ajaxContainer=document.createElement('DIV');
	ajaxContainer.className='ajax-result';
	ajaxContainer.innerHTML=strOuput;
	ajaxPlacement.appendChild(ajaxContainer);
};

/* SET FLASH HEIGHT
----------------------------------------------------*/
var setFlashHeight = function(height) {
	if (height == 260) {
		document.getElementById("flash-wrapper").style.height = "270px";
		if (typeof document.body.style.maxHeight == 'undefined') getElementsByClassName($ID('right'), 'SELECT', 'proddrop')[0].style.visibility = 'hidden';
	} else if (height == 140) {
		document.getElementById("flash-wrapper").style.height = "157px";
		if (typeof document.body.style.maxHeight == 'undefined') getElementsByClassName($ID('right'), 'SELECT', 'proddrop')[0].style.visibility = 'visible';
	}
}

/* SHORTCUT FOR GET ELEMENY BY ID
----------------------------------------------------*/
var $ID=function(elm){return document.getElementById(elm)}

/* GET ELEMENTS BY CLASS NAME
/* EX: getElementsByClassName(Parent,Tag,Class)
----------------------------------------------------*/
var getElementsByClassName=function(a,b,c){var d=(b=='*'&&a.all)?a.all:a.getElementsByTagName(b),arrReturnElements=new Array();c=c.replace(/\-/g,'\\-');var e=new RegExp('(^|\\s)'+c+'(\\s|$)'),oElement=null;for(var i=0,n=d.length;i<n;i++){oElement=d[i];if(e.test(oElement.className))arrReturnElements.push(oElement)};return(arrReturnElements)};

/* GET ELEMENTS BY ATTRIBUTE
/* EX: getElementsByAttribute(Parent, TagName, AttributeName, AttributeValue)
----------------------------------------------------*/
function getElementsByAttribute(a,b,c,d){var e=(b=='*'&&a.all)?a.all:a.getElementsByTagName(b);var f=new Array(),g=(typeof d!='undefined')?new RegExp("(^|\\s)"+d+"(\\s|$)"):null,h,j;for(var i=0,n=e.length;i<n;i++){h=e[i];j=h.getAttribute&&h.getAttribute(c);if(typeof j=='string'&&j.length>0){if(typeof d=='undefined'||(g&&g.test(j))){f.push(h)}}}return f}

/* EVENTHANDLER FOR ADDING EVENTS TO OBJECTS
----------------------------------------------------*/
var addEvent=function(obj,type,fn){if(obj.addEventListener){obj.addEventListener(type,fn,false);EventCache.add(obj,type,fn)}else if(obj.attachEvent){obj['e'+type+fn]=fn;obj[type+fn]=function(){obj['e'+type+fn](window.event)};obj.attachEvent('on'+type,obj[type+fn]);EventCache.add(obj,type,fn);}else{obj['on'+type]=obj['e'+type+fn]}}
var EventCache=function(){var listEvents=[];return{listEvents: listEvents,add: function(node,sEventName,fHandler){listEvents.push(arguments)},flush: function(){var i,item;for(i=listEvents.length - 1; i >= 0; i=i - 1){item=listEvents[i];if(item[0].removeEventListener){item[0].removeEventListener(item[1],item[2],item[3])}if(item[1].substring(0,2) != 'on'){item[1]='on'+item[1]};if(item[0].detachEvent){item[0].detachEvent(item[1],item[2])};item[0][item[1]]=null}}}}();
var removeEvent=function(obj,type,fn){if(obj.removeEventListener){obj.removeEventListener(type,fn,false)}else if(obj.detachEvent){obj.detachEvent('on'+type,obj[type+fn]);obj[type+fn]=null;obj['e'+type+fn]=null}}
addEvent(window,'unload',EventCache.flush);

/* INSERT CONTENT DIRECTLY AFTER GIVEN ELEMENT
----------------------------------------------------*/
function insertAfter(newElement,targetElement){var parent=targetElement.parentNode;if(parent.lastchild==targetElement){parent.appendChild(newElement)}else{parent.insertBefore(newElement,targetElement.nextSibling)}};

/* GET ELEMENT POSITION
----------------------------------------------------*/
var getElmPosition={
	GetX : function(obj){var xy=0;if(obj.offsetParent){while(1){xy+= obj.offsetLeft;if(!obj.offsetParent) break;obj=obj.offsetParent}}else if(obj.x){xy+= obj.x} return xy},
	GetY : function(obj){var xy=0;if(obj.offsetParent){while(1){xy+= obj.offsetTop;if(!obj.offsetParent) break;obj=obj.offsetParent}}else if(obj.y){xy+= obj.y}return xy}
};

/* GET SCREEN VIEWPORT
----------------------------------------------------*/
var getViewport = {
	Height: function() { if (typeof window.innerHeight != 'undefined') { return window.innerHeight } else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientHeight != 'undefined' && document.documentElement.clientHeight) { return document.documentElement.clientHeight } else { return 0; } },
	Width: function() { if (typeof window.innerWidth != 'undefined') { return window.innerWidth } else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth) { return document.documentElement.clientWidth } else { return 0; } }
};

/* DOM LOAD
----------------------------------------------------*/
var onDOMload=function(){if(arguments.callee.done) return;arguments.callee.done=true;if(_timer) clearInterval(_timer);onPageLoad()};
/*@cc_on
@if(@_win32 || @_win64) if(document.getElementById){document.write("<script id=\"ieScriptLoad\" defer src=\"//:\"><\/script>");document.getElementById("ieScriptLoad").onreadystatechange=function(){if(this.readyState=="complete"){onDOMload()}}} @end @*/
if(document.addEventListener){document.addEventListener('DOMContentLoaded',onDOMload,false)};if(/KHTML|WebKit|iCab/i.test(navigator.userAgent)){var _timer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){onDOMload()}},10)}window.onload=onDOMload;

/* INIT EMAIL
----------------------------------------------------*/
var END_OF_INPUT=-1;
var reverseBase64Chars=new Array();
var base64Str;
var base64Count;
var initEmail=function(){
	var links=getElementsByClassName(document,'a','email');if(!links) return;
	var base64Chars=new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/');
	for(var i=0, n=base64Chars.length; i<n; i++){reverseBase64Chars[base64Chars[i]]=i};
	for(var i=0, n=links.length; i<n; i++){
		var link=links[i];
		if(link){
			email=decodeBase64(link.title);
			email2=email.replace(/ /g,'');
			link.href='mailto:'+email2;
			link.title=email2;
			link.innerHTML=email;
		}
	}
}
function setBase64Str(str){base64Str=str;base64Count=0}
function readReverseBase64(){   
	if(!base64Str) return END_OF_INPUT;
	while(true){      
		if(base64Count >= base64Str.length) return END_OF_INPUT;
		var nextCharacter=base64Str.charAt(base64Count);
		base64Count++;
		if(reverseBase64Chars[nextCharacter]) return reverseBase64Chars[nextCharacter];
		if(nextCharacter=='A') return 0;
	}
	return END_OF_INPUT;
}
function ntos(n){
	n=n^9;
	n=n.toString(16);
	if(n.length==1) n='0'+n;
	n='%'+n;
	return unescape(n);
}
function decodeBase64(str){
	setBase64Str(str);
	var result='',inBuffer=new Array(4),done=false;
	while(!done && (inBuffer[0]=readReverseBase64()) != END_OF_INPUT && (inBuffer[1]=readReverseBase64()) != END_OF_INPUT){
		inBuffer[2]=readReverseBase64();
		inBuffer[3]=readReverseBase64();
		result+= ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
		if(inBuffer[2] != END_OF_INPUT){
			result+=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
			if(inBuffer[3] != END_OF_INPUT){result+=  ntos((((inBuffer[2] << 6) & 0xff) | inBuffer[3]))}
			else{done=true}
		}else{
			done=true;
		}
	}
	return result;
};

/* INIT IMAGE CAPTIONS
----------------------------------------------------*/
var initImageCaptions = function() {
    var elms = getElementsByClassName($ID('main'), 'SPAN', 'image-with-caption-left');
    for (var i = 0, n = elms.length, elm = null; i < n; i++) { elm = elms[i]; if (elm) { var image = elm.getElementsByTagName('IMG')[0]; if (image) { var imageWidth = image.clientWidth; if (imageWidth || imageWidth > 0) elm.style.width = imageWidth + 'px' } } }
    var elms = getElementsByClassName($ID('main'), 'SPAN', 'image-with-caption-right');
    for (var i = 0, n = elms.length, elm = null; i < n; i++) { elm = elms[i]; if (elm) { var image = elm.getElementsByTagName('IMG')[0]; if (image) { var imageWidth = image.clientWidth; if (imageWidth || imageWidth > 0) elm.style.width = imageWidth + 'px' } } }
    var elms = getElementsByClassName($ID('main'), 'SPAN', 'image-with-caption-left-top');
    for (var i = 0, n = elms.length, elm = null; i < n; i++) { elm = elms[i]; if (elm) { var image = elm.getElementsByTagName('IMG')[0]; if (image) { var imageWidth = image.clientWidth; if (imageWidth || imageWidth > 0) elm.style.width = imageWidth + 'px' } } }
    var elms = getElementsByClassName($ID('main'), 'SPAN', 'image-with-caption-right-top');
    for (var i = 0, n = elms.length, elm = null; i < n; i++) { elm = elms[i]; if (elm) { var image = elm.getElementsByTagName('IMG')[0]; if (image) { var imageWidth = image.clientWidth; if (imageWidth || imageWidth > 0) elm.style.width = imageWidth + 'px' } } }
};

/*  INIT DC PROJECT LIST 
----------------------------------------------------*/
var initDCProjectList = function() {
	var ul = getElementsByClassName($ID('center'), 'ul', 'project-head-list');
	if (!ul) return;
	var lis = ul[0].getElementsByTagName('li');

	for (var j = 0, o = lis.length, hli = null; j < o; j++) {
		hli = lis[j];
		if (hli) {
			hli.style.display = 'block';
		}
	}
};


var toggleProjectListImg = function() {
	if (this.className == 'shown') { this.className = ''; this.style.top = ''; this.style.left = ''; }
	else {
		var offset = this.offsetHeight;
		var span = this.getElementsByTagName('span')[0];
		var relAttrib = this.getAttribute('rel'); var topPos = '385px'; var leftPos = '277px'; // Left diff = 121, Top diff = 86
		var row = parseInt(relAttrib.substring(0, relAttrib.indexOf('_', 0)));
		var column = parseInt(relAttrib.substr(relAttrib.indexOf('_', 0) + 1, relAttrib.length));
		topPos = parseInt('385') + parseInt((row - 1) * 86) + 'px';
		leftPos = parseInt('277') + parseInt((column - 1) * 121) + 'px';
		this.className = 'shown rounder'; this.style.top = topPos; this.style.left = leftPos;
	}
}

function toggleProjectListImg2(ctrl) {
	if (ctrl.className == 'shown') { ctrl.className = ''; ctrl.style.top = ''; ctrl.style.left = ''; }
	else {
		var offset = ctrl.offsetHeight;
		var span = ctrl.getElementsByTagName('span')[0];
		var relAttrib = ctrl.getAttribute('rel'); var topPos = '385px'; var leftPos = '277px'; // Left diff = 121, Top diff = 86
		var row = parseInt(relAttrib.substring(0, relAttrib.indexOf('_', 0)));
		var column = parseInt(relAttrib.substr(relAttrib.indexOf('_', 0) + 1, relAttrib.length));
		topPos = parseInt('385') + parseInt((row - 1) * 86) + 'px';
		leftPos = parseInt('277') + parseInt((column - 1) * 121) + 'px';
		ctrl.className = 'shown'; ctrl.style.top = topPos; ctrl.style.left = leftPos;
	}
}


/**** Project Item Image Previewer ****************************/
var arrTextBoxHolder = new Array();
var currTextBox = 1; // try to get the one clicked on
var boxHeight = 588;
var boxWidth = 704;
var initDCProjectItemLists = function() {
	var lis = getElementsByClassName($ID('main'), 'li', 'project-thumb');
	for (var j = 0, o = lis.length, li = null; j < o; j++) {
		li = lis[j];
		if (li) {
			li.id = j;
			addEvent(li, 'click', startImagePreviewer);
			var lip = li.getElementsByTagName('p')[0];
			var lih = li.getElementsByTagName('h3')[0];
			lip.style.display = 'none';
			lih.style.display = 'none';
			li.style.overflow = 'hidden';
			li.style.height = '80px';
			li.style.width = '80px';
		}
	}

};

var startImagePreviewer = function() {
	initImageThumbPreviewer();
}

/* GET THE CURRENT SCREEN VIEWPORT
----------------------------------------------------*/
var initImageThumbPreviewer = function(clicker) {
	addEvent(window, 'scroll', updateBox);
	addEvent(window, 'resize', updateBox);
	if (!$ID('project-thumb-content')) return;
	if ($ID('content-box')) { ShowThumbPreview(); return; };

	var currViewport = getViewports();
	var viewportHeight = currViewport.height;
	var viewportHeightPlus = viewportHeight + 500;
	var viewportWidth = currViewport.width;

	//## CREATE BACKGROUND SHADE
	var BackgroundShade = document.createElement('div');
	BackgroundShade.id = 'bgshade';
	BackgroundShade.style.position = 'absolute';
	BackgroundShade.style.top = '0';
	BackgroundShade.style.left = '0';
	BackgroundShade.style.width = '100%';

	BackgroundShade.style.height = viewportHeightPlus + 'px';
	BackgroundShade.zIndex = '10';
	BackgroundShade.style.backgroundColor = '#000';

	BackgroundShade.innerHTML = '<img src="/skins/core/gfx/spacer.gif" height="' + viewportHeightPlus + '" width="100%">';
	addEvent(BackgroundShade, 'click', CloseThumbPreview);
	setOpacity(BackgroundShade, 80);
	document.getElementsByTagName('BODY')[0].appendChild(BackgroundShade);

	//## CREATE CONTENTBOX
	var ContentBox = document.createElement('div');
	ContentBox.id = 'content-box';
	ContentBox.style.position = 'absolute';
	ContentBox.style.top = parseInt(viewportHeight / 2 - (boxHeight / 2)) + 'px'
	ContentBox.style.left = parseInt(viewportWidth / 2 - (boxWidth / 2)) + 'px';
	ContentBox.style.width = boxWidth + 'px';
	ContentBox.style.height = boxHeight + 'px';
	ContentBox.className = "rounder";
	ContentBox.zIndex = '20';
	if (typeof document.body.style.maxHeight != 'undefined') {
		ContentBox.style.background = 'white';
	} else {
		ContentBox.style.background = 'white';
	}
	document.getElementsByTagName('BODY')[0].appendChild(ContentBox);

	//## CREATE INNER CONTENTBOX
	var innerbox = document.createElement('div');
	innerbox.id = 'inner-content-box';
	innerbox.style.position = 'relative';
	innerbox.style.width = boxWidth + 'px';
	innerbox.style.height = boxHeight + 'px';
	ContentBox.appendChild(innerbox);

	//## CREATE CLOSE BUTTON
	var btn = document.createElement('a');
	btn.href = 'javascript:void(0);';
	btn.id = 'btn-close';
	btn.tabIndex = 3;
	var btntext = document.createElement('span');
	btntext.innerHTML = 'stäng';
	addEvent(btn, 'click', CloseThumbPreview);
	btn.appendChild(btntext);
	innerbox.appendChild(btn);

	//## CREATE NEXT BUTTON
	var btnwrap = document.createElement('div');
	btnwrap.id = 'btn-wrap';

	var btn = document.createElement('a');
	btn.href = 'javascript:void(0);';
	btn.id = 'btn-next';
	btn.tabIndex = 1;
	var btntext = document.createElement('span');
	btntext.innerHTML = 'Nästa';
	addEvent(btn, 'click', goNext);
	btnwrap.appendChild(btntext);
	btnwrap.appendChild(btn);

	//## CREATE BACK BUTTON
	var btn = document.createElement('a');
	btn.href = 'javascript:void(0);';
	btn.id = 'btn-back';
	btn.tabIndex = 2;
	var btntext = document.createElement('span');
	btntext.innerHTML = 'Bakåt';
	addEvent(btn, 'click', goBack);
	btnwrap.appendChild(btntext);
	btnwrap.appendChild(btn);

	innerbox.appendChild(btnwrap);




	//## CREATE TEXTBOXES
	var content = $ID('project-thumb-content').getElementsByTagName('li'), x = 0, wrap = '';
	while (wrap = content[x++]) {

		var container = document.createElement('div');
		container.id = 'text' + wrap.id;

		var textbox = document.createElement('div');
		textbox.className = 'text';
		textbox.innerHTML = wrap.getElementsByTagName('p')[0].innerHTML;

		container.appendChild(textbox);

		var headlinewrap = document.createElement('div');
		headlinewrap.className = 'headline';
		var headline = document.createElement('h3');
		headline.innerHTML = wrap.getElementsByTagName('h3')[0].innerHTML;
		headlinewrap.appendChild(headline);
		container.appendChild(headlinewrap);

		var imagebox = document.createElement('div');
		imagebox.className = 'image';

		var image = document.createElement('img');
		var imageSrc = wrap.getElementsByTagName('img')[0].getAttribute('rel');

		if (typeof document.body.style.maxHeight == 'undefined') {
			//## IE6
			image.src = imageSrc; //'/skins/core/gfx/spacer.gif';
			image.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imageSrc + "',sizingMethod='scale')";
		} else {
			//## OTHERS
			image.src = imageSrc;
		}

		imagebox.appendChild(image);

		container.appendChild(imagebox);
		container.style.display = 'none';
		innerbox.appendChild(container);
		arrTextBoxHolder[x] = container;
		//## HIDE ORIGINAL TEXT
		wrap.style.display = 'none';
	}
	//## Paging boxes
	var pageboxes = document.createElement('div');
	pageboxes.id = 'page-number-box';

	var pageboxlist = document.createElement('ul');
	pageboxlist.id = 'page-number-box-list';
	for (var j = 1, o = arrTextBoxHolder.length, pageboxitem = null; j < o; j++) {
		pageboxitem = document.createElement('li');
		pageboxitem.id = 'box' + (j);
		pageboxitem.innerHTML = j;
		pageboxlist.appendChild(pageboxitem);
		addEvent(pageboxitem, 'click', goToImg);
	}
	pageboxes.appendChild(pageboxlist);
	innerbox.appendChild(pageboxes);


	//## ENABLE THE FIRST TEXTBOX
	// Enable the Text box that was Clicked --> taken from LI.ID
	arrTextBoxHolder[currTextBox].style.display = 'block';
	$ID('box' + (currTextBox)).className = 'selected';
	//## DISABLE BACKBUTTON
	LockNavButton('btn-back');

};

function setClassOnBoxId(boxidorigin, boxiddestination) {
	try{$ID('box' + (boxidorigin)).className = '';
	$ID('box' + (boxiddestination)).className = 'selected';
	}
	catch(e){}
}


var faderopacity = 20;
var goToImg = function() {
	if (!arrTextBoxHolder) return;
	if (arrTextBoxHolder.length < parseInt(this.innerHTML)) return;
	Fade.Out(arrTextBoxHolder[currTextBox], faderopacity);
	setClassOnBoxId(currTextBox, parseInt(this.innerHTML));
	currTextBox = parseInt(this.innerHTML);
	Fade.In(arrTextBoxHolder[currTextBox], faderopacity);
	arrTextBoxHolder[currTextBox].style.display = 'block';

	if (arrTextBoxHolder.length > currTextBox + 1) unLockNavButton('btn-next');
	else { unLockNavButton('btn-next'); LockNavButton('btn-next') };
	if (currTextBox > 1) { unLockNavButton('btn-back'); }
	else { LockNavButton('btn-back'); }
}

/* GO NEXT
----------------------------------------------------*/
var goNext = function() {
	unLockNavButton('btn-back');
	arrTextBoxHolder[currTextBox].style.display = 'none';
	setClassOnBoxId(currTextBox, (currTextBox + 1));
	if (arrTextBoxHolder.length > currTextBox + 1) currTextBox++;
	if (arrTextBoxHolder[currTextBox + 1]) {
		arrTextBoxHolder[currTextBox].style.display = 'block';
		Fade.Out(arrTextBoxHolder[currTextBox - 1], faderopacity);
		Fade.In(arrTextBoxHolder[currTextBox], faderopacity);
	} else {
		//## LAST
		arrTextBoxHolder[currTextBox].style.display = 'block';
		Fade.Out(arrTextBoxHolder[currTextBox - 1], faderopacity);
		Fade.In(arrTextBoxHolder[currTextBox], faderopacity);
		LockNavButton('btn-next');
		if (typeof document.body.style.maxHeight == 'undefined') {
			var LastImage = $ID('textpage9').getElementsByTagName('DIV')[0].getElementsByTagName('IMG')[0];
			if (LastImage) {
				Fade.Out(arrTextBoxHolder[currTextBox - 1], faderopacity);
				Fade.In(arrTextBoxHolder[currTextBox], faderopacity);
				LastImage.src = 'gfx/spacer.gif';
				LastImage.style.height = '355px';
				LastImage.style.width = '324px';
				LastImage.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='gfx/sca_logo.gif',sizingMethod='scale')";
			}
		}
	}
};


/* GO BACK
----------------------------------------------------*/
var goBack = function() {
	unLockNavButton('btn-next');
	arrTextBoxHolder[currTextBox].style.display = 'none';
	setClassOnBoxId(currTextBox, (currTextBox - 1)); 
	if (currTextBox > 1) currTextBox--;
	if (arrTextBoxHolder[currTextBox - 1]) {
		arrTextBoxHolder[currTextBox].style.display = 'block';
		Fade.Out(arrTextBoxHolder[currTextBox + 1], faderopacity);
		Fade.In(arrTextBoxHolder[currTextBox], faderopacity);
	} else {
		//## FIRST
		arrTextBoxHolder[currTextBox].style.display = 'block';
		Fade.Out(arrTextBoxHolder[currTextBox + 1], faderopacity);
		Fade.In(arrTextBoxHolder[currTextBox], faderopacity);
		LockNavButton('btn-back');
	}
};

var LockNavButton = function(btn) {
	var Button = $ID(btn); if (!Button) return;
	Button.disabled = true;
	Button.style.cursor = 'default';
	setOpacity(Button, 35);
}

var unLockNavButton = function(btn) {
	var Button = $ID(btn); if (!Button) return;
	Button.disabled = false;
	Button.style.cursor = '';
	setOpacity(Button, 100);
}

/* CLOSE ALL
----------------------------------------------------*/
var CloseThumbPreview = function() {
	$ID('bgshade').style.display = 'none';
	$ID('content-box').style.display = 'none';
	var content = $ID('project-thumb-content').getElementsByTagName('li'), x = 0, wrap = '';
	while (wrap = content[x++]) {
		wrap.style.display = 'block';
	}
};

var ShowThumbPreview = function() {
$ID('bgshade').style.display = 'block';
$ID('content-box').style.display = 'block';
var content = $ID('project-thumb-content').getElementsByTagName('li'), x = 0, wrap = '';
while (wrap == content[x++]) {
	wrap.style.display = 'none';
}

}


/* UPDATE BOX ON SCROLL AND RESIZE
----------------------------------------------------*/
var updateBox = function() {
	var currViewport = getViewports();
	var viewportHeight = currViewport.height;
	var viewportWidth = currViewport.width;
	var viewportTop = currViewport.top;
	var BackgroundShade = $ID('bgshade'); if (!BackgroundShade) return;
	BackgroundShade.style.top = viewportTop + 'px';
	var ContentBox = $ID('content-box'); if (!ContentBox) return;
	$ID('content-box').style.top = parseInt(viewportHeight / 2 - (boxHeight / 2)) + (viewportTop) + 'px'
	$ID('content-box').style.left = parseInt(viewportWidth / 2 - (boxWidth / 2)) + 'px'
};


/* OPACITY FADE
----------------------------------------------------*/
var Fade = {
	In: function(uid, opacity) { if (typeof uid == 'object') { if (uid.id) { uid = uid.id; } else { var newUid = Guid(); DOM.SetAttribute(uid, 'id', newUid); uid = newUid; } } var obj = $ID(uid); if (!obj) return; obj.style.display = 'block'; if (opacity <= 100) { Fade.setOpacity(obj, opacity); opacity += 20; fadeTimer = window.setTimeout('Fade.In("' + uid + '",' + opacity + ')', 40) } else { Fade.setOpacity(obj, 100); obj.style.filter = ''; fadeTimer = null } },
	Out: function(uid, opacity) { if (typeof uid == 'object') { if (uid.id) { uid = uid.id; } else { var newUid = Guid(); DOM.SetAttribute(uid, 'id', newUid); uid = newUid; } } var obj = $ID(uid); if (!obj) return; if (opacity > 0) { Fade.setOpacity(obj, opacity); opacity -= 5; fadeTimer = window.setTimeout('Fade.Out("' + uid + '",' + opacity + ')', 30) } else { obj.style.display = 'none'; Fade.setOpacity(obj, 0); fadeTimer = null; } },
	setOpacity: function(obj, opacity) { if (!obj) return; obj.style.filter = 'alpha(style=0,opacity:' + opacity + ')'; obj.style.KHTMLOpacity = (opacity / 100); obj.style.MozOpacity = (opacity / 100); obj.style.opacity = (opacity / 100) }
};

/* CHANGE OPACITY ON ELEMENTS
----------------------------------------------------*/
var setOpacity = function(obj, opacity) {
	if (!obj) return;
	obj.style.filter = 'alpha(style=0,opacity:' + opacity + ')';
	obj.style.KHTMLOpacity = (opacity / 100);
	obj.style.MozOpacity = (opacity / 100);
	obj.style.opacity = (opacity / 100);
};

/* GET THE CURRENT SCREEN VIEWPORT
----------------------------------------------------*/
function getViewports() {
	var objViewport = { width: 0, height: 0, left: 0, top: 0 };
	if (self.innerHeight) {
		objViewport.width = self.innerWidth;
		objViewport.height = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		objViewport.width = document.documentElement.clientWidth;
		objViewport.height = document.documentElement.clientHeight;
	} else if (document.body) {
		objViewport.width = document.body.clientWidth;
		objViewport.height = document.body.clientHeight;
	}
	if (self.pageYOffset) {
		objViewport.left = self.pageXOffset;
		objViewport.top = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		objViewport.left = document.documentElement.scrollLeft;
		objViewport.top = document.documentElement.scrollTop;
	} else if (document.body) {
		objViewport.left = document.body.scrollLeft;
		objViewport.top = document.body.scrollTop;
	}
	return objViewport;
}

/*** Thumbnail strip ***/
var arrThumbs = new Array();
var slideTimer = new Array();
var widthoflist = 200;

var initThumbnailstrip = function() {
	var ts = $ID('ts-wrap');
	if (!ts) return;
	// Get buttons
	var lbtn = getElementsByClassName(ts, 'div', 'left-btn')[0];
	var rbtn = getElementsByClassName(ts, 'div', 'right-btn')[0];
	addEvent(lbtn, 'mouseover', push.right);
	addEvent(rbtn, 'mouseover', push.left);
	addEvent(lbtn, 'mouseout', push.stop);
	addEvent(rbtn, 'mouseout', push.stop);



	var lis = getElementsByClassName(ts, 'li', 'ts-list-item');
	var tsl = $ID("tsl");
	widthoflist = lis.length * 90;
	tsl.style.width = widthoflist + 'px';
	for (var j = 0, o = lis.length, li = null; j < o; j++) {
		li = lis[j];
		if (li) {
			li.id = j;
			addEvent(li.getElementsByTagName('img')[0], 'mouseover', magnify.up);
			addEvent(li.getElementsByTagName('img')[0], 'mouseout', magnify.down);

			addEvent(li, 'mouseover', showtext);
			addEvent(li, 'mouseout', hidetext);

		}
	}
}

var showtext = function() {

	var tb = getElementsByClassName($ID('ts-wrap'), 'div', 'text-box')[0];
	tb.innerHTML = this.getElementsByTagName('p')[0].innerHTML;
	tb.style.display = 'block';
	
}
var hidetext = function() {
	var tb = getElementsByClassName($ID('ts-wrap'), 'div', 'text-box')[0];
	tb.style.display = 'none';
}

var imgheight = 85;var imgmaxheight = 115;
var magnify = {
	up: function(obj) {
		if (imgheight == imgmaxheight) {
			slideTimer[this] = null;
			window.clearTimeout(slideTimer);
		}
		else {
			imgheight = imgheight + imgmaxheight;
			//this.style.height = imgheight + 'px';
			this.style.border = "solid";
		}
	},
	down: function() {
		if (imgheight == imgmaxheight) {
			slideTimer[this] = null;
			window.clearTimeout(slideTimer);
		}
		else {
			imgheight = imgheight - imgmaxheight;
			//this.style.height = imgheight + 'px';
		}
	}
}

var tslleft = 0;
var calibrator = 540;
var stopPush = false;
var push = {
	left: function() {
		var tswrapper = $ID('tsl');
		if (!tswrapper) return;
		if (tslleft >= 12) {
			stopPush = false;
			tslleft = 0;
		}

		if (!stopPush && tslleft >= -(widthoflist - calibrator)) {
			tslleft = tslleft - 10;
			tswrapper.style.left = tslleft + 'px';
			slideTimer['tsl'] = window.setTimeout('push.left()', 50);
		}
		else {

			slideTimer['tsl'] = null;
			window.clearTimeout(slideTimer);
			stopPush = false;

		}
	},
	right: function() {
		var tswrapper = $ID('tsl');
		if (!tswrapper) return;
		if (tslleft <= -(widthoflist - calibrator)) {
			stopPush = false;
			tslleft = -(widthoflist - calibrator);
		}

		if (!stopPush && tslleft < 12) {
			tslleft = tslleft + 10;
			tswrapper.style.left = tslleft + 'px';
			slideTimer['tsl'] = window.setTimeout('push.right()', 50);
		}
		else {
			slideTimer['tsl'] = null;
			window.clearTimeout(slideTimer);
			stopPush = false;
		}
	},
	stop: function() {
		stopPush = true;
	}

}


function openotherwebsite(a) {
    a = a.previousSibling;
    while (a && a.tagName != "SELECT") {
        a = a.previousSibling;
    }
    if (a) {
        if (a[a.selectedIndex].value != "")
            window.open(a[a.selectedIndex].value);
    }

}

/**FAQ page
******************************************/
var toggleModules = function() { this.style.cursor = 'pointer'; var a = this.parentNode.parentNode; var b = getElementsByClassName(document, 'div', 'faqbox'); if (!b) return; var c = a.getElementsByTagName('div')[0]; for (var i = 0, n = b.length; i < n; i++) { var d = b[i]; if (!d) return; if (d !== a) { var e = d.getElementsByTagName('h3')[0]; var f = d.getElementsByTagName('div')[0]; e.className = 'folded'; f.className = 'none' } } Slide.Open(c); a.getElementsByTagName('h3')[0].className = '' };
var initModules =
	function() {
		var a = getElementsByClassName(document, 'div', 'faqbox');
		if (!a || a.length == 0)
			return;
		var b = a[0].getElementsByTagName('H2');
		if (!b)
			return;
		for (var i = 0, n = b.length; i < n; i++) {
			b[i].className = "folded";
			addEvent(b[i], 'click', toggleQuestion);

			var c = b[i];
			while (c.nextSibling &&
			c.nextSibling.tagName != 'H2' &&
			c.nextSibling.tagName != 'HR') {
				c = c.nextSibling;
				if (c.style)
					c.style.display = 'none';
			}

		}
	};
function toggleQuestion() {
	c = this;
	if (this.className == "folded") {
		c.className = "unfolded";

		while (c.nextSibling &&
			c.nextSibling.tagName != 'H2'
			&& c.nextSibling.tagName != 'HR') {
			c = c.nextSibling;
			if (c.style) {

				c.style.display = 'block';
			}
		}
	}
	else {

		c.className = "folded";

		while (c.nextSibling &&
			c.nextSibling.tagName != 'H2'
			&& c.nextSibling.tagName != 'HR') {
			c = c.nextSibling;
			if (c.style) {

				c.style.display = 'none';
			}
		}

	}
}

// focus suggestion box text field
var suggestionBox = function() {
	var suggestionTxt = getElementsByClassName(document, 'input', 'searchext')[0];
	if (suggestionTxt) {
		addEvent(suggestionTxt, 'click', function() { suggestionTxt.select() });
		if (suggestionTxt.setAttribute) suggestionTxt.setAttribute('autocomplete', 'off');
	}
}

var initlostpwd = function() {
	var lostpwdgtw = getElementsByClassName(document, 'p', 'lostpwdgtw')[0];
	if (lostpwdgtw) {
		addEvent(lostpwdgtw, 'click', toggleloginlost);
	}
}
var toggleloginlost = function() {
	var lostpwdbox = $ID('lostpwd');
	if (lostpwdbox) {
		if (lostpwdbox.className == 'show') {
			lostpwdbox.className = '';
		}
		else {
			lostpwdbox.className = 'show';
		}
	}
}










/* BILDSPEL
-----------------------------------------------------------------------*/
var dataUrl;
var GoToPageText = 'G&aring; till sidan';
var MMTitle = '';
var loadFirst = true;
var itemInfo;
var imageHolder;
var title;

//$(document).ready(function() {

var initImageSlider = function() {



    var slide = $('.mediamodule-list');
    itemInfo = $('.iteminfo');
  
    imageHolder = $('.image-holder');
    title = $('.mediamodule-title');

    setupDesign();
    title.append(MMTitle);

    $.ajax({

        type: 'GET',
        url: dataUrl,
        datatype: 'xml',
        contentType: "text/xml; charset=utf-8",
        success: function(xml) {
            //slide.css('display: hidden');
            $(xml).find('object').each(function() {
                var alt = $(this).find('alt').text();
                var thumbnail = $(this).find('thumbnail').text();
                var image = $(this).find('image').text();
                var heading = $(this).find('heading').text();
                var info = $(this).find('info').text();
                var link = $(this).find('link').text();
                var content = $.trim($("content", this).text());
                var item = $('<li class="mediamodule-item"></li>').html('<img src="' + thumbnail + '" width="76" height="51" alt="' + alt + '" />').appendTo(slide);

                if (loadFirst) {
                    imageHolder.empty();
                    itemInfo.empty();
                    imageHolder.append(content); // add the content to the main player window
                    loadContent(heading, info, link); // Add Heading and Metadata
                    loadFirst = false;
                }


                $(item).click(function(e) {
                    imageHolder.empty();
                    itemInfo.empty();
                    imageHolder.append(content); // add the content to the main player window
                    loadContent(heading, info, link); // Add Heading and Metadata
                });
            });
            slide.show();
        },
        complete: function(xhr, status) {
            if (status == 'parsererror') { alert("Kunde inte tolka XMLen, antagligen fel format"); }
            initSlideNavigation();
        }
    });
};

//Global vars
var currentPosition = 0;
var itemCount = 0;
/* Setup structure and design
-----------------------------------------------------------------------*/
var setupDesign = function() {
    if (MMTitle == '') {
        imageHolder.css('top', '18px');
        itemInfo.css('bottom', '112px');
        title.css('display', 'none');
    }
    else {
        imageHolder.css('top', '0px');
        itemInfo.css('bottom', '98px');
        title.css('display', 'block');
    }
}

/* SERVICE ITEM MODAL POPUP
-----------------------------------------------------------------------*/
var loadContent = function(heading, infoText, link) {
    if (heading == '') { itemInfo.css('visibility', 'hidden'); return; }
    itemInfo.css('height', '29px');
    itemInfo.css('visibility', 'visible');
    itemInfo.fadeTo('slow', 0.8);

    $('<h3 class=\"item-info-heading\"></h3>').html(heading).appendTo(itemInfo);
    $('<p></p>').html(infoText).appendTo(itemInfo);
    if (link != '') {
        $('<p></p>').html('<a href="' + link + '">' + GoToPageText + '</a>').appendTo(itemInfo);
    }
    $('.item-info-heading').hover(
		function(over) {
		    $('.item-info-heading').css('color', '#15A9AB');
		},
		function(out) {
		    $('.item-info-heading').css('color', '#000000');
		});
    $('.item-info-heading').click(function(e) {
        if (itemInfo.css('height') == '89px') {
            itemInfo.animate({
                height: '29px'
            }, 500);
        }
        else {
            itemInfo.animate({
                height: '89px'
            }, 500);
        }
    });
}

/* SLIDE NAVIGATION FOR SERVICE ITEMS
-----------------------------------------------------------------------*/
var initSlideNavigation = function() {

    //select all the a tag with name equal to slide
    var id = $('.mediamodule-clip');
    var slide = $('.mediamodule-list');
    var serviceItems = $('.mediamodule-list .mediamodule-item');
    if (!serviceItems || serviceItems.length == 0) { return; }

    //Number of service items with 12px margin
    $(slide).css({ 'width': serviceItems[0].offsetWidth * serviceItems.length + serviceItems.length * 12 });
    $('#mediamodule .mediamodule-wrap .mediamodule-next-horizontal').addClass('mediamodule-next-disabled');
    $('#mediamodule .mediamodule-wrap .mediamodule-prev-horizontal').addClass('mediamodule-prev-disabled');
    //Check if slide contains hissen items. If so, display navigation arrow
    if (slide.width() > $(id).width()) {
        $('#mediamodule .mediamodule-wrap .mediamodule-next-horizontal').removeClass('mediamodule-next-disabled');
    }

    $('a[name=navigation]').click(function(e) {

        //Cancel the link behavior  
        e.preventDefault();

        if (this.className == 'mediamodule-next-horizontal') {
            $(slide).animate({ left: currentPosition - serviceItems[0].offsetWidth - 12 }, 'fast', function() {
                currentPosition = currentPosition - serviceItems[0].offsetWidth - 12;
                if (currentPosition < 0) $('#mediamodule .mediamodule-wrap .mediamodule-prev-horizontal').removeClass('mediamodule-prev-disabled');
                itemCount++;
                if (itemCount + 4 == serviceItems.length) $('#mediamodule .mediamodule-wrap .mediamodule-next-horizontal').addClass('mediamodule-next-disabled');
            });
        }
        else if (this.className == 'mediamodule-prev-horizontal') {

            $(slide).animate({ left: currentPosition + serviceItems[0].offsetWidth + 12 }, 'fast', function() {
                currentPosition = currentPosition + serviceItems[0].offsetWidth + 12;
                if (currentPosition >= 0) $('#mediamodule .mediamodule-wrap .mediamodule-prev-horizontal').addClass('mediamodule-prev-disabled');
                itemCount--;
                if (itemCount + 4 < serviceItems.length) $('#mediamodule .mediamodule-wrap .mediamodule-next-horizontal').removeClass('mediamodule-next-disabled');
            });
        }
    });

}