﻿var Misc=
{
    Init:function()
    {
    /*
		// force window to specified minimum size (1000 x 800)
		try
		{
			var minSize={x:1000,y:800};
			if(document.documentElement && parseInt(document.documentElement.offsetWidth,10)<minSize.x)
				window.resizeTo(minSize.x,minSize.y);
		}
		catch(e)
		{}
	*/	
		// get rid of those nasty borders around styled input fields when they receive focus..
        for(var i=0,c=document.getElementsByTagName("*");i<c.length;i++)
            if(c[i].className.indexOf("button")>-1)
                c[i].onfocus=new Function("this.blur()");
        
        //NSJ: Removed  windowposition set through stylesheet.       
		//this.FixWindowPosition()
		//this.attachEventHandler(window,"resize",Misc.FixWindowPosition);
		
		// force IE stylesheet re-rendering.
		try
		{
			document.styleSheets[0].addRule("#IDS","margin:0px");
		}
		catch(e){}
		
		try
		{
			Misc.FixLinks();
		}
		catch(e){}
		
		//NSJ: 20060920 Script removed fixed through stylesheets
		if(window.navigator.userAgent.toString().toLowerCase().indexOf("safari")>-1)
		{
		    Misc.FixSafari();
		}
    },
    FixSafari:function()
    {
		// remove unneeded scrollbars
    	var W=Misc.getElementsByClassName("window");
		
		if(W && W.length==1)
		{
			W[0].style.height="1px";
			W[0].style.width="1px";
		}

		// Frontpage specific:
		if(Misc.getElementsByClassName("NFFrontContent").length>0)
		{
			// Make sure that links on frontpage are NOT BLACK
			var links = document.getElementsByTagName("A");
			for(var i=0;i<links.length;i++)
			{
				var L=links[i]
				while(L.parentElement!=null)
				{
					L=L.parentElement;
					
					if(L.className=="contentsection")
					{
						links[i].style.color="#75ebff";
						break;
					}
				}
			}
			
			// Align content starting with "P" tags - incomplete.
			var c=Misc.getElementsByClassName("NFFrontContent");
			for(var i=0;i<c.length;i++)
			{
				if(c[i].parentElement.children.length==1)
				{
					if(c[i].parentElement.parentElement.className=="contentarea")
						c[i].parentElement.parentElement.style.width="200px";
					else if(c[i].parentElement.parentElement.parentElement.className=="contentarea")
						c[i].parentElement.parentElement.parentElement.style.width="200px";
						
					c[i].style.display="none";
				}
			}
		}
		
		// Leftmenu on subpages:
		if(Misc.getElementsByClassName("NFleftbarnavigation").length==1)
		{
			var leftbarLinks=Misc.getElementsByClassName("NFleftbarnavigation")[0].getElementsByTagName("A")
			for(var i=0;i<leftbarLinks.length;i++)
			{
				leftbarLinks[i].style.paddingTop="0px";
				leftbarLinks[i].style.paddingBottom="0px";
				leftbarLinks[i].style.marginTop="4px";
				leftbarLinks[i].style.marginBottom="-11px";
			}
		}
		
		
		// form and button positioning on contact pages
//		var els=Misc.getElementsByClassName("lnkButton");
//			for(var i=0;i<els.length;i++)
//				els[i].style.paddingTop="60px";
//		if(Misc.getElementsByClassName("templatecontact").length>0)
//		{
//			var innCons = Misc.getElementsByClassName("innercontent")
//			if(innCons.length>0)
//			{	
//				var innCon = innCons[0];
//				innCon.getElementsByTagName("div")[1].style.paddingTop="150px";
//			}
//		}
    },
    attachEventHandler:function(oObject,sEvent,vHandler)
    {
        if(sEvent.substr(0,2)=="on")
            sEvent=sEvent.substr(2,sEvent.length-2);
        if(typeof(vHandler)=="string")
            vHandler=new Function("",vHandler);
            
        if(oObject.attachEvent)
            return oObject.attachEvent("on"+sEvent,vHandler);
        if(oObject.addEventListener)
            return oObject.addEventListener(sEvent,vHandler,true);
        else
            oObject["on"+sEvent]=vHandler;
    },
    grp:function(eEl)
    {
		var o="offset",l="Left",t="Top";
        for(var x=eEl.offsetLeft,y=eEl.offsetTop;eEl.offsetParent;x+=eEl.offsetLeft,y+=eEl.offsetTop)
            eEl=eEl.offsetParent;
        return {x:x,y:y};
    },
    
    FixWindowPosition:function()
    {
		// disable scrollbars in mozilla and IE 5.5 when not needed.
		try
		{
			if(window.navigator.userAgent.toLowerCase().indexOf("gecko")>-1 || window.navigator.userAgent.toLowerCase().indexOf("msie 5.5")>-1)
			{
			    
				sOverflowX = "hidden";
				sOverflowY = "hidden";
				if(document.documentElement.offsetWidth<900)
				{
				    sOverflowX = "scroll";
				}
				if(document.documentElement.clientHeight < 638)
				{
				    sOverflowY = "scroll";
				}
				if(document.body.style.overflowX!=sOverflowX)
					document.body.style.overflowX=sOverflowX;
				if(document.body.style.overflowY!=sOverflowY)
					document.body.style.overflowY=sOverflowY;
			}
		}
		catch(e){}
		// unable to find a reasonable css-based solution for centrering the window when the height of the browser area is smaller than the height of the content
		var P,W;
		for(var i=0,c=document.getElementsByTagName("DIV");i<c.length;i++)
			if(c[i].className.indexOf("page")==0||c[i].className.indexOf("smallpage")==0)
			{
				P=c[i];
				break;
			}
		
		for(var i=0,c=document.getElementsByTagName("DIV");i<c.length;i++)
			if(c[i].className.indexOf("window")==0||c[i].className.indexOf("smallwindow")==0)
			{
				W=c[i];
				break;
			}
		
		if(!P||!W)
			return;
		if(P.currentStyle)
		{
			if(W.offsetTop<290)
				P.style.top=-parseInt(W.offsetTop,10)+"px";
			else if(P.currentStyle&&P.currentStyle.top!="-290px")
				P.style.top="-290px";
				
			if(W.offsetLeft<451)
				P.style.left=-parseInt(W.offsetLeft,10)+"px";
			else if(P.currentStyle&&P.currentStyle.left!="-451px")
				P.style.left="-451px";
		}
		else
		{
			if(W.offsetTop<290)
				P.style.top=-parseInt(W.offsetTop,10)+"px";
			else
				P.style.top="-290px";
				
			if(W.offsetLeft<451)
				P.style.left=-parseInt(W.offsetLeft,10)+"px";
			else
				P.style.left="-451px";
		}
    },
    getElementsByClassName:function(sClassName)
    {
		var r=[];
		for(var i=0,c=document.getElementsByTagName("*");i<c.length;i++)
		{
			if(c[i].className==sClassName)
				r[r.length]=c[i];
			else if(c[i].className.indexOf(sClassName+" ")==0)
				r[r.length]=c[i];
			else if(c[i].className.indexOf(" "+sClassName)>0)
				r[r.length]=c[i];
		}
		return r;
    },
    FixMozFlash:function()
	{
		// As mozilla/firefox does not read params under embed tags as parameters.
//		if(window.navigator.userAgent.toLowerCase().indexOf("msie")!=-1)
//			return;
		try
		{
			for(var i=0,Ps=document.getElementsByTagName("param");i<Ps.length;i++)
				if(Ps[i].name=="FlashVars")
				{
					for(var j=0,embs=document.getElementsByTagName("embed");j<embs.length;j++)
						if(embs[j].parentNode==Ps[i].parentNode)
							embs[j].setAttribute("FlashVars",Ps[i].value);
				}
				else if(Ps[i].name.toLowerCase()=="play")
				{
					Ps[i].value="1";
				}
		}
		catch(E){}
	},
	FixSingleBreaks:function()
	{
		var c=Misc.getElementsByClassName("content");
		for(var i=0;i<c.length;i++)
		{
			var d=c[i].getElementsByTagName("br");
			for(var j=0;j<d.length;j++)
				d[j].outerHTML="<hr />";
		}
	},
	// Replace faulty links with links that work.
	// Due to bug in mcms sp2.
	FixLinks:function()
	{
		try
		{
			var c=document.getElementsByTagName("A");
			var h=document.location.host;

			var sites = [["dk","www.egmont.dk"],["com","www.egmont.com"],["com","www.nordiskfilm.com"],["dk","www.nordiskfilm.dk"]];

			for(var i=0;i<sites.length;i++)
				if(h==sites[i][1])
					return false;

			var lang = (h.indexOf("-")>0) ? h.split("-")[2].split(".")[0] : h.split(".")[h.split(".").length-1];
			var revLang = lang=="dk"?"com":"dk";

			var revH = h.replace(lang,revLang);
			
			for(var i=0;i<c.length;i++)
				for(var j=0;j<sites.length;j++)
				{
					if( c[i].href.toLowerCase().indexOf("http://"+sites[j][1])==0 && lang==sites[j][0] )
						c[i].href=c[i].href.replace(sites[j][1],h);
					else if(c[i].href.toLowerCase().indexOf("http://"+sites[j][1])==0 && lang!=sites[j][0])
						c[i].href=c[i].href.replace(sites[j][1],revH);
				}
		}
		catch(e)
		{}
	},
	InitPressReleases:function()
	{
		var s=Misc.PressRelease_getSelectHtml();
		if(typeof(s)!="string")
			return setTimeout("Misc.InitPressReleases()",500);
		document.getElementById("selectcontainer").innerHTML=s;
	},
	PressRelease_getSelectHtml:function()
	{
	// retrieve valid years from content
		var aYears = [];
		var el=Misc.getElementsByClassName("contenttext");
		if(el.length==0)
			return false;
			
		for(var i=0;i<el.length;i++)
		{
			var y = el[i].innerHTML.split(".")[2].substr(0,4);
//			if(parseInt(y,10).toString()==y)
				aYears[aYears.length]=y;
//			else alert("not a year: '"+y+"'")
		}
	
	// build element html
		var contentarea = Misc.getElementsByClassName("content")[0];
		var s='<select onchange="Misc.AlignPressReleasesToYear()" id="fYear" style="position:absolute;top:10px;right:10px;">';
		s+='<option value="-1">'+sSelectYear+'</option>'
		s+='<option value="-1">-------------------</option>'
		var added={};
		for(var i=0;i<aYears.length;i++)
		{
			if(typeof(added[aYears[i]])=="undefined")
			{
				added[aYears[i]]=true;
				s+='<option value="'+aYears[i]+'">'+aYears[i]+'</option>';
			}
		}
		s+='</select>'
		
		return s;
	},
	AlignPressReleasesToYear:function()
	{
		var sYear = null;
		var sel=document.getElementById("fYear");
		if(sel.options[sel.selectedIndex].value!="-1")
				sYear=sel.options[sel.selectedIndex].value;
		
		var el=Misc.getElementsByClassName("contenttext");
		
		for(var i=0;i<el.length;i++)
		{
			var y = el[i].innerHTML.split(".")[2].substr(0,4);
			if(y==sYear || sYear=="-1" || sYear==null)
			{
				el[i].parentNode.style.display="block";
				el[i].style.display="block";
			}
			else
			{
				el[i].parentNode.style.display="none";
				el[i].style.display="none";
			}
		}
	}
}

Misc.attachEventHandler(window,"onload","Misc.Init()");
if(window.navigator.userAgent.toString().toLowerCase().indexOf("safari")>-1)
{
//	document.write('<link rel="stylesheet" href="css/mac.css" />');
	
}