function $()
{
    var elements = new Array();

    for (var i = 0; i < arguments.length; i++)
    {
      var element = arguments[i];
      if (typeof element == 'string') element = document.getElementById(element);
      if (arguments.length == 1) return element;
      elements.push(element);
    }

    return elements;
}

function chatWidth(px)
{
	$('chat').style.width = parseInt(px) + "px";
	$('cqChat').width = px;
}

function test(msg)
{
	//alert(msg);
}

function wheel(event)
{
    var delta = 0;

    if (!event) event = window.event;
    if (event.wheelDelta)
    {
        delta = event.wheelDelta/120;
        if (window.opera) delta = -delta;
    } else if (event.detail)
    {
        delta = -event.detail;
    }

    if(delta)
    {
	    if(window['cqMap']) if(window['cqMap'].mouseWiel) window['cqMap'].mouseWiel(delta);
	    if(document['cqMap']) if(document['cqMap'].mouseWiel) document['cqMap'].mouseWiel(delta);
    }
	//document.getElementById('cqMap').mouseWiel(delta);

    if (event.preventDefault) event.preventDefault();
    event.returnValue = false;
}

function mapMouseEnter(b) //called from mapflash on mouseover
{
    if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false);
    window.onmousewheel = document.onmousewheel = wheel;
}

function mapMouseLeave(b) //called from mapflash on mouseout
{
    if (window.removeEventListener) window.removeEventListener('DOMMouseScroll', wheel, false);
    window.onmousewheel = document.onmousewheel = '';
}

function setMapState(state, state_id)
{
    window.location = "#map";
    if (document.getElementById('cqMap').PercentLoaded()<100)
    {
        setTimeout('setMapState('+ "'" + state + "'," +state_id + ');',250);
    }
    else
	    document.getElementById('cqMap').setState(state,state_id);
}

function flyTo(xcor, ycor, level)
{
    window.location = "#map";
    if (document.getElementById('cqMap').PercentLoaded()<100)
    {
        setTimeout('flyTo('+xcor+','+ycor+','+level+');',250);
    }
    else
        document.getElementById('cqMap').flyTo(xcor, ycor, level);
}

function setAvatarProperties(color, face, hair)
{
    document.getElementById('form_climatecolor').value = color;
    document.getElementById('form_climateface').value = face;
    document.getElementById('form_climatehair').value = hair;
}

function requestChat(type, id)
{
	document.getElementById("cqChat").requestChat(type,id);
}

function mapClick(longitude, latitude)
{
    document.getElementById('longitudespan').innerHTML = longitude;
    document.getElementById('answerlong').style.display = 'block';

    document.getElementById('latitudespan').innerHTML = latitude;
    document.getElementById('answerlat').style.display = 'block';
}

function navigateToUser(userid)
{
    window.location = "/page/viewUser.php?userid=" + userid;
}

function navigateToGuild(guildid)
{
    window.location = "/page/viewGroup.php?groupid=" + guildid;
}

function navigateToQuest(questid)
{
    window.location = "/page/viewQuest.php?questid=" + questid;
}

function AjaxKeepAlive(html)
{

}

function refreshTabs()
{
	var container = document.getElementById('infopanels');
	if(container)
	{
		var result = container.getElementsByTagName('li');
		var tabs = new Array()
		for(var i = 0; i < result.length; i++)
		{
			if(result[i].id.substring(0,13) == 'tabs_menuitem')
			{
				tabs[tabs.length] = result[i];
			}
			else if(result[i].id == 'tabs_newline')
			{
				result.parentNode.removeChild(result[i]);
			}
		}
		var limit = container.offsetWidth;
		var currentSize = 0;

		for(var i = tabs.length-1; i >= 0; i--)
		{
			removeClass(tabs[i].id,'clear');
			if((currentSize + tabs[i].offsetWidth) > limit)
			{
				//alert(currentSize);

				addClass(tabs[i+1].id,'newline');
				//tabs[i+1].style.clear = "left";
				var li = document.createElement('li');
				li.id = 'tabs_newline';
				li.className = 'clear';
				li.innerHTML = "&nbsp; ";
				li.style.width = (limit - currentSize)*2.6 + "px";
				tabs[i+1].parentNode.insertBefore(li,tabs[i+1]);
				limit = currentSize;
				currentSize = 0;
			} else
			{
				currentSize = currentSize + tabs[i].offsetWidth;
			}
		}

		var result = container.getElementsByTagName('li');
		for(var i = 0; i < result.length; i++)
		{
			//alert(result[i].id);
		}
	}
}

function decimalToSexagesimal(decimal)
{
	var result = new Array();
	result['degrees'] = Math.floor(decimal);
	result['minutes'] = Math.floor((decimal-result['degrees'])*60);
	result['seconds'] = Math.floor((decimal-(result['degrees'] + (result['minutes'] / 60))) * 3600);
	return result;
}
function sexagesimalToDecimal(degree,minute,second)
{
	return degree + (minute/60) + (second/3600);
}
function latitudeToString(latitude)
{
	var array = decimalToSexagesimal(latitude);
	return array['degrees'] + '\u2022 ' + array['minutes'] + '\'\' ' + array['seconds'] + '\'';
}
function longitudeToString(longitude)
{
	var array = decimalToSexagesimal(longitude);
	return array['degrees'] + '\u2022 ' + array['minutes'] + '\'\' ' + array['seconds'] + '\'';
}
function ie6fix()
{
	var chat = document.getElementById('chat');

    if (!chat)
        setTimeout('ie6fix();',250);
    else
    {
		chat.style.position = 'absolute';
		chat.style.left = 0 + 'px';

		window.onscroll = function()
		{
			var result = 0;
			var element = document.body
			while(element.parentNode)
			{
				result += element.scrollTop;
				element = element.parentNode;
			}
			chat.style.top = result + 'px';
		}
	}
}
function hideChildren(id)
{
	var container = document.getElementById(id);
	var children = container.childNodes;
	for(var i = 0; i < children.length; i++)
	{
		if(children[i].nodeType == 1)
		{
			children[i].style.display = 'none';
		}
	}
}