var General = {
	
	imagePath : "/Arla/img/",
	themeListLinkMore : "Visa alla artiklar",
	themeListLinkLess : "Visa f&auml;rre artiklar",
	clientBrowser : navigator.appName,
	
	Init : function (){
		if(document.getElementById){
			TB_init();
			this.ApplyToggleEvt();
			this.ApplyTargetBlank();
			this.ApplyReadmoreRollover();
			this.ApplyToggleList();
		}
	},
	
	ApplyToggleEvt : function (){
		var oSite = document.getElementById("container");		
		if(oSite){
			var oLinks = oSite.getElementsByTagName("a");
			var intElms = oLinks.length;		
			var i = intElms - 1;			
			do
			{
				if(/toggle/i.test(oLinks[i].className)){
					oLinks[i].onclick = this.Toggle;
				}
			}
			while (i--);			
		}	
	},
	
	ApplyTargetBlank : function (){
		var oSite = document.getElementById("container");		
		if(oSite){
			var oLinks = oSite.getElementsByTagName("a");
			var intElms = oLinks.length;		
			var i = intElms - 1;			
			do
			{
				if(/target-blank/i.test(oLinks[i].className)){
					oLinks[i].onclick = this.NewWindow;
				}
			}
			while (i--);			
		}	
	},
	
	ApplyReadmoreRollover : function (){
		var oSite = document.getElementById("container");		
		if(oSite){
			var oLinks = oSite.getElementsByTagName("img");
			var intElms = oLinks.length;		
			var i = intElms - 1;			
			do
			{
				if(/readmore-hover/i.test(oLinks[i].className)){
					oLinks[i].onmouseover = this.RolloverOn;
					oLinks[i].onmouseout = this.RolloverOff
				}
			}
			while (i--);			
		}	
	},
	
	ApplyToggleList : function (){
		var oSite = document.getElementById("container");		
		if(oSite){
			var oLinks = oSite.getElementsByTagName("a");
			var intElms = oLinks.length;		
			var i = intElms - 1;			
			do
			{
				if(/list-toggle/i.test(oLinks[i].className)){
					oLinks[i].onclick = this.ToggleList;
				}
			}
			while (i--);			
		}
	},
	
	addClassName : function (oElm, strClassName){
		var strCurrentClass = oElm.className;
		if(!new RegExp(strClassName, "i").test(strCurrentClass)){
			oElm.className = strCurrentClass + ((strCurrentClass.length > 0)? " " : "") + strClassName;
		}
	},	
	
	removeClassName : function (oElm, strClassName){
		var oClassToRemove = new RegExp((strClassName + "\s?"), "i");
		oElm.className = oElm.className.replace(oClassToRemove, "").replace(/^\s?|\s?$/g, "");
	},	
	
	Toggle : function () {
		var showElmId = this.className.replace(/.*toggle-([\w\d-_]+)(\b|$).*/, "$1");
		var elmToShow = document.getElementById(showElmId);
		if(!/display-block/i.test(elmToShow.className)){
			General.addClassName(elmToShow, "display-block");
		}
		else{
			General.removeClassName(elmToShow, "display-block");
		}
		return false;
		this.blur();		
	},
	
	NewWindow : function () {
		var newWindow = window.open(this.getAttribute('href'), '_blank');
		if (newWindow) {
			if (newWindow.focus) {
				newWindow.focus();
			}
			return false;
		}
		return true;	
	},
	
	RolloverOn : function () {
		var newImg = "readmore-button-hover.gif";
		this.src = General.imagePath + newImg;
	},
	RolloverOff : function () {
		var newImg = "readmore-button.gif";
		this.src = General.imagePath + newImg;
	},	
	
	ToggleList : function (){
		var oParentNode = this.parentNode.parentNode;		
		if(oParentNode){
			var oList = oParentNode.getElementsByTagName("ul");
			var intElms = oList.length;		
			var i = intElms - 1;			
			do
			{
				if(oList){
					var oListItem = oParentNode.getElementsByTagName("li");
					var oListItems = oListItem.length;		
					var j = oListItems - 1;			
					do
					{
						if(!/display-block/i.test(oListItem[j].className)){
							General.addClassName(oListItem[j], "display-block");
						}
						else{
							General.removeClassName(oListItem[j], "display-block");
						}
					}
					while (j--);					
				}
			}
			while (i--);
			if(!/show-less/i.test(this.className)){
				General.addClassName(this, "show-less");
				if(/theme-list/i.test(this.className)){					
					this.innerHTML = General.themeListLinkLess;
					this.title = General.themeListLinkLess;
					General.removeClassName(this, "theme-list");
				}
			}
			else{
				General.removeClassName(this, "show-less");
				if(!/theme-list/i.test(this.className)){
					this.innerHTML = General.themeListLinkMore;
					this.title = General.themeListLinkMore;
					General.addClassName(this, "theme-list");
				}
			}			
		}
		return false;
		this.blur();		
	},	
	
	ViewMovie : function (oElm,strMovieID,strMovieHeader,strMovieText,strMovieFacts,search){
		var shareStory = document.getElementById("share-story");
		var imgContainer = document.getElementById("view-image");
		var movieContainer = document.getElementById("view-movie");
		var elmHeader = document.getElementById("movie-header");
		var elmText = document.getElementById("movie-text");
		var elmFact = document.getElementById("movie-facts");
		
		if(elmHeader && strMovieHeader){
			elmHeader.innerHTML = strMovieHeader;
		}
		if(elmText && strMovieText){
			elmText.innerHTML = strMovieText;
		}
		if(elmFact && strMovieFacts){
			elmFact.innerHTML = strMovieFacts;
		}
		
		if(strMovieID){
			var so = new SWFObject("/CfN/flash/Film.swf", "film", "382", "328", "8", "#ffffff");
	        so.addVariable("filmUrl", strMovieID);
	        so.addVariable("filmSkin", "/CfN/flash/Skin_Movie.swf");
	        so.addParam("wmode", "opaque");
	        so.write("flashcontent");

			General.PositionMovie(oElm,"view-movie");

			if(!/display-block/i.test(movieContainer.className)){
				General.addClassName(movieContainer, "display-block");
				if(shareStory){
					General.removeClassName(shareStory, "display-block");
				}
				if(imgContainer){
					General.removeClassName(imgContainer, "display-block");
				}
			}	
		}
	},
	
	ViewSound : function (oElm,strMovieID,strMovieHeader,strMovieText,strMovieFacts,search){
		var shareStory = document.getElementById("share-story");
		var imgContainer = document.getElementById("view-image");
		var movieContainer = document.getElementById("view-movie");
		var elmHeader = document.getElementById("movie-header");
		var elmText = document.getElementById("movie-text");
		var elmFact = document.getElementById("movie-facts");
		
		if(elmHeader && strMovieHeader){
			elmHeader.innerHTML = strMovieHeader;
		}
		if(elmText && strMovieText){
			elmText.innerHTML = strMovieText;
		}
		if(elmFact && strMovieFacts){
			elmFact.innerHTML = strMovieFacts;
		}
		
		if(strMovieID){
	        var so = new SWFObject("/CfN/flash/Sound.swf", "film", "368", "48", "8", "#ffffff");
	        so.addVariable("urlSound", strMovieID);
	        so.addParam("wmode", "opaque");
	        so.write("flashcontent");
	
			General.PositionMovie(oElm,"view-movie");

			if(!/display-block/i.test(movieContainer.className)){
				General.addClassName(movieContainer, "display-block");
				if(shareStory){
					General.removeClassName(shareStory, "display-block");
				}
				if(imgContainer){
					General.removeClassName(imgContainer, "display-block");
				}
			}	
		}
	},
	
	CloseMovie : function (){
		var movieContainer = document.getElementById("view-movie");
		
		if(!/display-block/i.test(movieContainer.className)){
			General.addClassName(movieContainer, "display-block");
		}else{
			General.removeClassName(movieContainer, "display-block");
			var so = new SWFObject("/CfN/flash/Film.swf", "film", "382", "328", "8", "#ffffff");
	        so.addVariable("filmUrl", "");
			so.write("flashcontent");
		}			
		return false;
	},
	
	FindPosition : function (obj){
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft
			curtop = obj.offsetTop
			while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft
				curtop += obj.offsetTop
			}
		}
		return [curleft,curtop];
	},
	
	PositionMovie : function (obj,lyr){
		var coors = General.FindPosition(obj);
		var elm = document.getElementById(lyr);
		//elm.style.top = parseInt(coors[1] - 1300) + 'px';
		if(General.clientBrowser != "Microsoft Internet Explorer"){
			elm.style.top = parseInt(coors[1] - 200) + 'px';
		}else{
			elm.style.top = parseInt(coors[1] - 220) + 'px';
		}
	},

	End : function (oEvent){
		General = null;
		delete General;
	}
}

function addEvent(oObj, evType, fn, useCapture){
	if (oObj.addEventListener){
		oObj.addEventListener(evType, fn, useCapture);
		return true;
	} else if (oObj.attachEvent){
		var r = oObj.attachEvent("on"+evType, fn);
		return r;
	} else {
		alert("Handler could not be attached");
	}
}

addEvent(window, "load",function(){General.Init();})
addEvent(window, "unload", function(){General.End();}, false);
