// master.js



var ADMIN_LEVEL = 9;
var RATER_ANALYST_LEVEL = 7;
var RATER_LEVEL = 3;
var PLAYER_LEVEL = 2;
var USER_LEVEL = 1;
var GUEST_LEVEL = 0;

var mDoneWaitingFlag;
var mTimeOutID;

//----------------------------------------------
function AlertError(msg, url, linenumber)
	{
	alert('Error message= '+msg+'\nURL= '+url+'\nLine Number= '+linenumber)
	return true
	}

//---------------------------------------------------------
function GetElemStyleByID(objectId)
	{
    // cross-browser function to get an object's style object given its
    if(document.getElementById && document.getElementById(objectId)) 
		{
		// W3C DOM
		return document.getElementById(objectId).style;
	    } 
	else if (document.all && document.all(objectId)) 
		{
		// MSIE 4 DOM
		return document.all(objectId).style;
		}
	else if (document.layers && document.layers[objectId]) 
		{
		// NN 4 DOM.. note: this won't find nested layers
		return document.layers[objectId];
		}
	return false;
	}

//---------------------------------------------------------
function Wait(millis) 
	{
	mDoneWaitingFlag = false
	mTimeOutID = setTimeout("SetDoneFlag()", millis); 
	do {} while (mDoneWaitingFlag == false);
	} 
//---------------------------------------------------------
function SetDoneFlag()
	{
	mDoneWaitingFlag = 	true;
	clearTimeout(mTimeOutID)
	}

//---------------------------------------------------------
function GetUserLevelText()
	{
	switch (GetElemByID("id_userlevel").value)
		{
		case ADMIN_LEVEL:
			level = "Admin";
			break;

		case RATER_LEVEL:
			level = "Player/Rater";
			break;

		case PLAYER_LEVEL:
			level = "Player";
			break;

		case USER_LEVEL:
			level = "Visitor";
			break;

		case GUEST_LEVEL:
			level = "Guest";
			break;
		default:

			level = "None";
			break;
		}
	return level;
	}
//------------------------------------------------------------------------------------------------------
function GetElemByID(id)
	{
	return document.getElementById(id);
/*
	var elem = document.getElementById(id);
	if (elem == null)
		{
		alert("Got Null Element ID = "+id);
		}
	else	
		{
		return elem;
		}
*/
	}
//------------------------------------------------------------------------------------------------------
function GetElemValue(id)
	{
	return GetElemByID(id).value;
	}

//------------------------------------------------------------------------------------------------------
function SetElemValue(id, value)
	{
	GetElemByID(id).value = value;
	}
//-----------------------------------------------------------------------------------------------------
function SetElemInnerHTML(id, value)
	{
	GetElemByID(id).innerHTML = value;
	}

//-----------------------------------------------------
function GetUsername()
	{
	return GetElemByID("page_username").value;
	}
//-----------------------------------------------------
function GetUserlevel()
	{
	return GetElemByID("page_userlevel").value;
	}
//-----------------------------------------------------
function GetFirstname()
	{
	return GetElemByID("page_firstname").value;
	}
//-----------------------------------------------------
function GetLastname()
	{
	return GetElemByID("page_lastname").value;
	}
//-----------------------------------------------------
function IsAdminLevel()
	{
	return (GetUserlevel() == ADMIN_LEVEL);
	}
//-----------------------------------------------------
function ShowElem(elem)
	{
	elem.style.display = "inline";
	}
//-----------------------------------------------------
function HideElem(elem)
	{
	elem.style.display = "none";
	}
//-----------------------------------------------------
function ShowElemID(id)
	{
	ShowElem(GetElemByID(id));
	}
//-----------------------------------------------------
function HideElemID(id)
	{
	HideElem(GetElemByID(id));
	}

//-----------------------------------------------------
function AlertNoPriv(privTxt)
	{
	alert("Sorry, "+GetUsername()+", but you do not have \""+privTxt+"\" privileges.\n"+
		  	"\n\n"+
			"If you wish to request a change to your,\n"+
			"current privileges go to the \"Home\" page\n"+
			"and select \"Change My Account\".");
	}
//-----------------------------------------------------
function HidePanel(elem)
	{
	HideElemID(elem.id.substr("id_to_hide_is_".length));
	}
		
//-----------------------------------------------------
function ShowPanel(elem)
	{
	ShowElemID(elem.id.substr("id_to_hide_is_".length));
	}
		
//-------------------------------------------
function GetIndexFromValueInSelect(selectElem, val)			// returns -1 if doesn't find
	{
	for (var idx = 0; idx < selectElem.options.length; idx++)
		{
		if (val == selectElem.options[idx].value)
			{
			return idx;
			}
		}
	return -1;
	}
//-------------------------------------------
function IsOptionValueInSelect(selectElem, val)
	{
	var idx = GetIndexFromValueInSelect(selectElem, val);
	return (idx != -1);
	}

//-------------------------------------------
function SetElemDate(elem)
	{
	displayDatePicker(elem.name);
	}
	
//---------------------------------------------------------
function CapFirstLetterOnly(s)
	{
	var rtnStr = "";
	
	if (s.length > 0)
		{
		rtnStr = s.charAt(0).toUpperCase();
		if (s.length > 1)
			{
			rtnStr += s.substr(1).toLowerCase();
			}
		}	
	return rtnStr;
	}
//---------------------------------------------------------
function ValidateFirstName(elem)
	{
	elem.value = CapFirstLetterOnly(elem.value);
	}
//---------------------------------------------------------
function ValidateLastName(elem)
	{
	elem.value = CapFirstLetterOnly(elem.value);
	}
//--------------------------------------------------------
function SetCursor_Waiting() 
	{
//	document.body.style.cursor = 'wait';
	}

//---------------------------------------------------------
function SetCursor_Normal() 
	{
//	document.body.style.cursor = 'default';
	}

//---------------------------------------------------------
function ExtractFileFromPath(path) 
	{
	parts = split(path,"/");
	return parts[parts.length-1];
	}

//---------------------------------------------------------
function GetRandMinMax(min,max)
	{
	return min + Math.floor(Math.random()* ((max-min)+1));
	}
//---------------------------------------------------------
function GetRand() 
	{
	var min;
	var max;
	
	switch(arguments.length)
		{
		case 1:
			min = 0;
			max = arguments[0];
			break;		
		case 2:
			min = arguments[0];
			max = arguments[1];
			break;		
		case 3:
			min = arguments[0];
			max = arguments[1];
			var exclude = arguments[2];
			var rand = exclude;
			while (rand == exclude) rand = GetRandMinMax(min,max);
			return rand;
			break;		
		}
	return GetRandMinMax(min,max);
	}

//---------------------------------------------------------
function RemoveElement(id)
	{
	var elem = document.getElementById(id);
	if (elem) elem.removeChild(elem.childNodes[0]);
	}    



