/********************************************************************
*
*	Berusad.org
*
*	Global functions
*
/********************************************************************


/*
*	Main init-function
*/
function berusad_init()
{
	document.onclick = dropdown_hideall;
}

/*
*	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;
}


/*
*	Disables selection of tag and childnodes
*	ie-specific
*/
function disable_select( obj )
{
	if( typeof obj.tagName != 'undefined' )
	{
		if( obj.hasChildNodes() )
		{
			for( var i=0; i<obj.childNodes.length; i++ )
			{
				disable_select( obj.childNodes[i] );
			}
			
			obj.unselectable = 'on';
		}
	}
}


/*
*	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;
}


/*
*	Opens the radio-popup
*/
function radio(progid, mode)
{
	if(!mode) mode=null;
	var winl = (screen.width-260)/2;
	var wint = (screen.height-100)/2;
	var settings ='height='+110+',';
	settings +='width='+270+',';
   	settings +='top='+wint+',';
   	settings +='left='+winl+',';
   	settings +='scrollbars='+scroll+',';
   	settings +='resizable=yes';
   	win=window.open('radio.php?id='+progid+'&mode='+mode,'Webbradio',settings);

   	if(parseInt(navigator.appVersion) >= 4)
   	{
  		win.window.focus();
   	}
}

/*
*	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;
}

/*
*	Dummy-function for links with onclick-attribute
*/
function donothing()
{

}

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

/*
*	bbCode-variables
*/

var bbTextColors = new Array(
['6b0000', '6b0042', '00006b', '00636b', '006b00', '636b00', '6b2900', '000000'],
['a50000', 'a5006b', '0000a5', '00a5a5', '00a500', 'a5a500', 'a54200', '525252'],
['c60000', 'c6007b', '0000c6', '00bdc6', '00c600', 'bdc600', 'c64a00', '636363'],
['ff0000', 'ff00a5', '2525ef', '00ffff', '00ff00', 'ffff00', 'ff6300', '848484'],
['ff3939', 'ff39bd', '3939ff', '39ffff', '39ff39', 'ffff39', 'ff8c39', '9c9c9c'],
['ff5a5a', 'ff5ac6', '5a5aff', '5affff', '5aff5a', 'ffff5a', 'ff9c5a', 'adadad'],
['ff9494', 'ff94de', '9494ff', '94ffff', '94ff94', 'ffff94', 'ffc694', 'ffffff']
);

var bbFontSizes = new Array(
7, 9, 12, 18, 24
);

var bbSmileys = new Array(
['happy.gif',':-)'],
['d.gif',':D'],
['wink.gif',';-)'],
['sad.gif',':-('],
['sad2.gif',':sad:'],
['p.gif',':P'],
['heart.gif','<3'],
['thumbup.gif',':thumbup:'],
['thumbdown.gif',':thumbdown:'],
['hihi.gif',':hihi:'],
['haakan.gif',':haakan:'],
['drum.gif',':drum:'],
['myne.gif',':myne:'],
['butt.gif',':butt:'],
['butt2.gif',':butt2:'],
['spank.gif',':spank:'],
['butt3.gif',':butt3:'],
['shout.gif',':shout:'],
['beer.gif',':beer:'],
['beer2.gif',':beer2:'],
['beerchug.gif',':beerchug:'],
['fuck.gif',':fuck:'],
['cow.gif',':cow:'],
['henuheta.gif',':henuheta:'],
['rage.gif',':rage:'],
['dodt.gif',':dodt:'],
['crash.gif',':crash:'],
['crazy.gif',':crazy:'],
['crazy2.gif',':crazy2:'],
['drink.gif',':drink:'],
['drink2.gif',':drink2:'],
['drink3.gif',':drink3:'],
['drink4.gif',':drink4:'],
['drunk.gif',':drunk:'],
['drunk2.gif',':drunk2:'],
['drunk3.gif',':drunk3:'],
['huh.gif',':huh:'],
['facepalm.gif',':facepalm:'],
['kiss.gif',':kiss:'],
['metal.gif',':metal:'],
['metal2.gif',':metal2:'],
['puke.gif',':puke:'],
['puke2.gif',':puke2:'],
['puke3.gif',':puke3:'],
['scream.gif',':scream:'],
['slam.gif',':slam:'],
['guns.gif',':guns:'],
['wc.gif',':wc:'],
['sniper.gif',':sniper:'],
['whine.gif',':whine:'],
['callme.gif',':callme:'],
['fucking.gif',':fucking:'],
['kissass.gif',':kissass:'],
['bowdown.gif',':bow:'],
['mario.gif',':mario:'],
['skada.gif',':skada:'],
['grinevil.gif',':evil:'],
['music.gif',':music:'],
['boiling.gif',':boiling:'],
['catfight.gif',':catfight:'],
['rocking.gif',':rocking:'],
['yawn.gif',':yawn:'],
['kakka.gif',':kakka:'],
['sick.gif',':sick:'],
['smack.gif',':smack:']
);

/*
*	Ajax
*/
function ajax_refresh(url, obj)
{
	var robj;
	try { robj = new XMLHttpRequest(); }
	catch (error)
	{
 		try { robj = new ActiveXObject("Microsoft.XMLHTTP"); }
		catch (error) { return false; }
	}
   
   _(obj).innerHTML = '<div class="loading">Laddar...</div>';


	robj.open('get', 'includes/ajax/' + url);
	robj.onreadystatechange = function()
	{
		if( robj.readyState == 4 )
		{
			_(obj).innerHTML = robj.responseText;
		}
	};
	
	robj.send(null);
	
	if( obj == "kolla" )
	{
		setTimeout("ajax_refresh('checknew.php', 'kolla');", 60000);
	}
}

function submitPollVote()
{
	var pollAlts = _('pollform').v;
	var no_of_alts = pollAlts.length;
	var alt_selected = false;
	
	for( var i=0; i<no_of_alts; i++ )
	{
		if( pollAlts[i].checked )
		{
			alt_selected = i+1;
		}
	}
	
	if( !alt_selected )
	{
		alert("Du måste välja ett alternativ");
		return false;
	}
	else
	{
		ajax_refresh('polldata.php?vote='+alt_selected, 'poll');
	}
}

function ajax_update_ortlist(id,selectedid)
{
	var theurl = 'ortlist.php?groupid='+id+'&selectedid='+selectedid;
	ajax_refresh(theurl, 'user_ortlist_div')
}

function createRequestObject()
{
	var ro;
	try { ro = new XMLHttpRequest(); }
	catch (error)
	{
 		try { ro = new ActiveXObject("Microsoft.XMLHTTP"); }
		catch (error) { return false; }
	}
	return ro;
}