/******************************************************************
*	file		:		clientscript/global.js
*
*	General methods
*
******************************************************************/

/*
*	Get an object by it's ID
*/
function _(idname)
{
	if( document.getElementById )
	{
		return document.getElementById(idname);
	}
	else if( document.all )
	{
		return document.all[idname];
	}
	else
	{
		return false;
	}
}

/*
*	Fetch tags by tagname from parent object.
*/
function fetch_tags(parent, tagname)
{
	if( parent == null )
	{
		return false;
	}
	else if( typeof parent.getElementsByTagName != 'undefined' )
	{
		return parent.getElementsByTagName(tagname);
	}
	else if( parent.all && parent.all.tags )
	{
		return parent.all.tags(tagname);
	}
	else
	{
		return new Array();
	}
}

/*
*	Stops event bubbling
*/
function do_event(e)
{
	if( !e )
		var e = window.event;
		
	e.cancelBubble = true;
	
	if( e.stopPropagation )
		e.stopPropagation();
	
	return e;
}

/*
*	Returns bottom left position of an object
*/
function findPos(obj)
{
	var curleft = curtop = 0;
	var height = obj.offsetHeight;
	
	if (obj.offsetParent)
	{
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent)
		{
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
		
		curtop += height;
	}
	return [curleft,curtop];
}

/*
*	Returns an object's dimensions
*/
function objectDim( obj )
{
	objw = 0;
	objh = 0;
	
	if( obj.style.width )
		objw = obj.style.width.replace(/px/,'');
	else if( obj.offsetWidth )
		objw = obj.offsetWidth;
	
	if( obj.style.height )
		objh = obj.style.height.replace(/px/,'');
	else if( obj.offsetHeight )
		objh = obj.offsetHeight;	
	
	return [ objw, objh ];
}

/*
*	Returns document dimension
*/
function documentDim()
{
	var dimX = 0
	var dimY = 0;
	
	if( typeof( window.innerWidth ) == 'number' )
	{
		//Non-IE
		dimX = window.innerWidth;
		dimY = window.innerHeight;
	}
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
	{
		//IE 6+ in 'standards compliant mode'
		dimX = document.documentElement.clientWidth;
		dimY = document.documentElement.clientHeight;
	}
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
	{
		//IE 4 compatible
		dimX = document.body.clientWidth;
		dimY = document.body.clientHeight;
	}
	
	return [ dimX, dimY ];
}


/*
*	Returns cursor position
*/
function cursorPos(e)
{
	if(!e) e = window.event;
	
	xpos = 0;
	ypos = 0;
	
	if ( e.pageX && e.pageY )
	{
		xpos = e.pageX;
		ypos = e.pageY;
	}
	else if( e.clientX && e.clientY )
	{
		xpos = e.clientX + ( document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft );
		ypos = e.clientY + ( document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop );
	}

	return [ xpos, ypos ];	
}

/*
*	Stripes table-rows
*/
function stripe(id)
{
	var even = false;
	var table = document.getElementById(id);
	if (! table) { return; }
	var tbodies = table.getElementsByTagName("tbody");
	
	for (var h = 0; h < tbodies.length; h++)
	{
		var trs = tbodies[h].getElementsByTagName("tr");

  	   for (var i = 0; i < trs.length; i++)
  	   {
			var tds = trs[i].getElementsByTagName("td");
			for (var j = 0; j < tds.length; j++)
			{
				var mytd = tds[j];
				if( hasClass(mytd) )
					mytd.className = mytd.className + ' ' + (even ? 'even' : 'odd');
				else
					mytd.className = even ? 'even' : 'odd';
			}
			even =  ! even;
		}
	}
}

function hasClass(obj)
{
	var result = false;
	if (obj.getAttributeNode("class") != null)
	{
		result = obj.getAttributeNode("class").value;
	}
	return result;
}


/*
*	Validates a form, fields are given as arguments
*/
function validateForm( formname )
{
	var a = arguments;
	
	for( i=1; i < a.length; i++ )
	{
		if( formname.elements[a[i]].value == "" )
		{
			alert( "Fyll i alla fält!" );
			formname.elements[a[i]].focus();
			return false;
		}
	}

	return true;
}

/*
*	Intro countdown
*/

function timeLeft()
{
	var countdown_time=Date.UTC(2008,8,09,+10);

	var current=new Date();
	var current_ms=current.valueOf();

	var diff= ( countdown_time - current_ms)
	var secs = Math.floor(diff/1000)
	var s_Left = (Math.floor(secs/1)%60)
	var m_Left = (Math.floor(secs/60)%60)
	var h_Left =  (Math.floor(secs/3600)%24) 
	var d_Left = (Math.floor(secs/86400)%100000)

	if(diff > 0){
		document.getElementById("intro_content_cd").innerHTML = d_Left + ":" + h_Left + ":" + m_Left + ":" + s_Left ;
	} else {
		document.getElementById("intro_content_cd").innerHTML = "0:0:0:0" ;
	}
}



/*
*	Resizes an image after load
*/
function img_resize(image,neww)
{
	w = image.width;
	if( w > neww )
		image.width = neww;
}
