
var t=null;

function scroll(theelement, distance) {
  if (!t) {                                             //  1
    var element=document.getElementById(theelement);    //  2
    var startheight=element.scrollTop;                  //  3
    var endheight=element.scrollTop+distance;           //  4
    if (endheight < 0) endheight=0;                     //  5
    scroller(theelement, startheight, endheight, 42, 3);//  6
  }
}

function scroller(theelement, startheight, endheight,
  maxspeed, softness) {
  var el=document.getElementById(theelement);         // 1    
  if (el.scrollTop != endheight) {                    // 2
    var distanceend=Math.abs((endheight -             // 3
      el.scrollTop) / softness);
    var distancestart=Math.abs((startheight           // 4
      - el.scrollTop) / softness);                    
    var distance=Math.min(distancestart, distanceend);// 5
    var multiplier;
    if (distance<1) multiplier=Math.abs(distance-1)+1;// 6
    else multiplier=1;
    distance=Math.ceil(distance);                     // 7
    if (distance==0) distance=1;                      // 8
    if (distance>maxspeed) distance=maxspeed;         // 9
    if (startheight > endheight) distance=-distance;  //10
    var tempscrolltop=el.scrollTop;                   //11
    el.scrollTop+=distance;                           //12
    if (tempscrolltop+distance==el.scrollTop)         //13
      t=setTimeout('scroller(\''+theelement+'\','+    //14
      startheight+','+endheight+','+maxspeed+','+
      softness+')',Math.round(20 * multiplier));
    else
      t=null;                                         //15
  } else t=null;                                      //16
}

function findPos(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];
}

function init() {return true;}

    function size_seo()
    {
        Maximize();

        var dim = GetInnerSize ();
        var resize = null;
		
		if ( resize = document.getElementById ( "article_table" ) )
		{
			resize.style.width = dim[0] + "px";
		}
		if ( resize = document.getElementById ( "publications" ) )
			resize.style.height = (dim[1] - 220) + "px";
	    if ( resize = document.getElementById ( "articleframe" ) )
		{
			resize.style.height = (dim[1]) + "px";

			var pos = findPos ( document.getElementById ( "publications" ) );
        	window.scrollTo ( 0, pos[1] );
        }

        return true;
    }

	//- max. bredde = avisens bredde
	//- avisen + annoncørens omr. resizes så det altid er synligt = ingen minimum
    function updateipaper()	 // thanx to http://www.hypergeneric.com/corpus/javascript-inner-viewport-resize/
    {
	    var x,y;

		var size = GetInnerSize ();
		var resize = null;
		x = size[0];
		y = size[1];

		// resize to max:
			if ( x < 675 ) x = 675; // less ruins the bottom bar in the iPaper
			if ( y < 300 ) y = 300;

	    if ( resize = document.getElementById ( "articleframe" ) )
			resize.style.height = (y - 62) + "px";
		if ( resize = document.getElementById ( "publications" ) )
			resize.style.height = (y - 280) + "px";
    }
    
    function Maximize()
    {
		try		// following code is borrowed from iPaper
		{
			top.window.moveTo(0,0);
			
			if (document.all)
			{
				var newWidth = screen.availWidth;
				var newHeight = screen.availHeight;
				top.window.resizeTo(newWidth, newHeight);
				
				shouldRemove = false;
				if(window.screenTop < 0)
				{
					newHeight = screen.availHeight - window.screenTop;
					shouldRemove = true;
				}
				
				if(window.screenLeft < 0)
				{
					newWidth = screen.availWidth - window.screenLeft;
					shouldRemove = true;
				}
					
				if(shouldRemove)
				{
					top.window.resizeTo(newWidth, newHeight);
					top.window.moveTo(0,0)
				}
			}
			else if (document.layers||document.getElementById)
			{
				if (top.window.outerHeight<screen.availHeight||top.window.outerWidth<screen.availWidth){
					top.window.outerHeight = screen.availHeight;
					top.window.outerWidth = screen.availWidth;
				}
			}
		}
		catch (e) {}
    }
	
	function GetInnerSize ()
	{
		var x,y;
		if (self.innerHeight) // all except Explorer
		{
			x = self.innerWidth;
			y = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
		{
			x = document.documentElement.clientWidth;
			y = document.documentElement.clientHeight;
		}
		else if (document.body) // other Explorers
		{
			x = document.body.clientWidth;
			y = document.body.clientHeight;
		}
		return [x,y];
	}

	function openWindow(url)
	{
		winStats='resize=no,toolbar=no,scrollbars=yes,location=no,directories=no,menubar=no,width=500,height=400';

		if (navigator.appName.indexOf('Microsoft')>=0)
			winStats+=',left=10,top=25';
		else
			winStats+=',screenX=10,screenY=25';

		floater = window.open(url,'print',winStats);
	}

	function init()
	{
		initRollUpBox ( );
	}

/* cookie functions */	
	function SetCookie ( name, value, expiredays )
	{
		var exdate=new Date();
		exdate.setDate(exdate.getDate()+expiredays);
		var res = document.cookie=name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
		return res;
	}
	function GetCookie(c_name)
	{
		if (document.cookie.length>0)
		{
			c_start = document.cookie.indexOf(c_name + "=");
			if (c_start!=-1)
			{ 
				c_start=c_start + c_name.length+1; 
				c_end=document.cookie.indexOf(";",c_start);
				if (c_end==-1)
					c_end=document.cookie.length;
				
				return unescape(document.cookie.substring(c_start,c_end)); 
			}
		}
		return false;
	}
/* end: cookie functions */

/* start: Article resizing functions */
	var subpath;
	
	function GetImgSizeX ( page, zoom )
	{
		return mypages[page][zoom][0];
	}
	function GetImgSizeY ( page, zoom )
	{
		return mypages[page][zoom][1];
	}

	function ResizeIndex ( ImgColl, ImgRow )
	{
		var frm = document.getElementById('articleframe');

		if ( frm )
		{
			frm.style.height = ( maxY * ImgRow ) + ( ImgRow * 17 ) + 320;
			frm.style.width = ( maxX * ImgColl ) + ( ImgColl * 4 ) + 5;
		}
		else
			return;
	}

	function ResizeIframeByPage ( page, zoom )
	{
		var frm = document.getElementById('articleframe');

		if ( frm )
		{
			var x = mypages[page][zoom][0];
			var y = mypages[page][zoom][1];

			if ( x==0 ) x=748;	/* if page is missig resize to som nice value */
			if ( y==0 ) y=494;

			frm.style.width = x + 2;
			frm.style.height = y + 170;
		}
		else
			return;
	}
/* End: Article resizing functions */

	
/* Start: Minisite popup box functions */
	var boxwidth = null;
	var rollerbox = null;

	function initRollUpBox ( )
	{
//		showDIV("popup");

		boxwidth = -302;
		rollerbox = document.getElementById("popup");

		if ( rollerbox ) // if minisite popup is available
		{
			setTimeout ( "SizeBox( )", 1000 );
		}
	}
	function SizeBox ( )
	{
		if ( rollerbox )
		{
			rollerbox.style.right = boxwidth + 'px';
			boxwidth += 3;
			if ( boxwidth<60 )
				setTimeout ( "SizeBox()", 10 );
		}
	}
	function popupClose()
	{
		if ( rollerbox )
		{
			rollerbox.style.display = 'none';
			boxwidth = 0;
			rollerbox = 0;
		}
	}
/* End: Minisite popup box functions */

/* General show/hide function */
	function showDIV(objDiv)
	{
		var myElement = document.getElementById(objDiv);
		if (myElement.style.display == "none")
			myElement.style.display = "";
		else
			myElement.style.display = "none";
	}
	

/* /////// check uncheck checkboxes in form ///////
	Custom JavaScript Functions by Shawn Olson
	Copyright 2006
	http://www.shawnolson.net
*/ /////// /////// /////// /////// /////// ///////
function checkUncheckAll(theElement)
{
	var theForm=theElement.form, z=0;
	for ( z=0; z<theForm.length; z++ )
		if ( theForm[z].type=='checkbox' && theForm[z].name!='checkall' )
			theForm[z].checked = theElement.checked;
}

