
var newWin = null;

function forceReload()
{
	if (document.layers) window.location.reload(true);
}

function empty(str)
{
	return (str == "") ? true : false;
}

function validateArg(arg) // get boolean values for function arguments
{
	if ((arg == null) || (arg == "undefined") || (empty(arg)) || (arg.length < 1)) return false;
	else return true;
}

function validateInt(arg, allowZero)
{
	for (var i = 0; i < arg.length; i++) {
		if (isNaN(arg.charAt(i)) || arg.charAt(i) == " ")
			return false;
	}
	if (!allowZero && (arg == 0)) return false;
	return true;
}

function validateDate(dateFormat, date)
{
	if (dateFormat == "mm/dd/yyyy")
	{
		if (date.charAt(2) != "/" || date.charAt(5) != "/")
		{
			return false;
		}
		
		var mm = date.substr(0, 2);
		var dd = date.substr(3, 2);
		var yyyy = date.substr(6, 4);
		
		if (!validateInt(mm, true) || (mm.toString().length != 2) || (mm > 12))
		{
			return false;
		}
		else if (!validateInt(dd, true) || (dd.toString().length != 2) || (dd > 31))
		{
			return false;
		}
		else if (!validateInt(yyyy, true) || (yyyy.toString().length != 4))
		{
			return false;
		}
		
		else return true;
	}
	else {
		return false;
	}
}

function getQueryString(obj) // get query string from header
{
	var args = new Object();
	var qString = obj.location.search.substring(1);
	var argsArray = qString.split("&");

	for (var i = 0; i < argsArray.length; i++) {
		var pos = argsArray[i].indexOf('=');
		if (pos == -1) continue;
		var argName = argsArray[i].substring(0, pos);
	 	var value = argsArray[i].substring(pos + 1);
		args[argName] = unescape(value);
	}
	return args;
}


function Preload() // preload script
{ 
	this.length = arguments.length;
	for (var i = 0; i < this.length; i++) {
		this[i + 1] = new Image();
		this[i + 1].src = arguments[i];
	}
}

function recurseLayers(obj, name)
{
	var layerObj = null;
	
	for (var i = 0; i < obj.layers.length; i++)
	{
		layerObj = obj.layers[i].document.layers;
		
		for (var j = 0; j < layerObj.length; j++)
		{
			if (layerObj[j].name == name)
			{
				return layerObj[j];
				break;
			}
		}
		recurseLayers(obj.layers[i], name);
	} 
}


function parseLayers(obj, name, type)
{
	var typeObj = null;
	for (var i = 0; i < obj.layers.length; i++)
	{
		if (type == 'images') typeObj = obj.layers[i].document.images;
		else if (type == 'anchors') typeObj = obj.layers[i].document.anchors;
		
		for (var j = 0; j < typeObj.length; j++)
		{
			if (typeObj[j].name == name) {
				return typeObj[j];
				break;
			}
		}
		parseLayers(obj.layers[i], name, type);
	}
}

function swapImg(imgName, imgPath, msg) // rollover script
{
	if (document.images) {
		if ((document.layers) && (!validateArg(document.images[imgName]))) {
			var obj = parseLayers(document, imgName, 'images');
			obj.src = imgPath;
		}
		else {
			if (document.images[imgName]) {
				document.images[imgName].src = imgPath;
			}
		}
		window.status = msg;
	}
}

function returnDhtmlFeature(id)
{
	var feature = null;
	if (document.all) feature = document.all(id).style;  // IE
	else if (document.layers) feature = document.layers[id];  // NN
	else if (document.getElementById) feature = document.getElementById(id).style;  // N6
	return feature;
}

function writeToLayer(id, text)
{
	if (document.all) {
		document.all[id].innerHTML = text;
	}
	else if (document.layers) {
		layerObj = recurseLayers(document, id);
		layerObj.document.open();
		layerObj.document.write(text);
		layerObj.document.close();
	}
	else if (document.getElementById) {
		document.getElementById(id).innerHTML = text;
	}
}

function handleSelectOnChange(selectObj, URL)
{
	var selectOptionValue = selectObj.options[selectObj.selectedIndex].value;
	
	if (selectObj.options[selectObj.selectedIndex].value != 0)
	{
    	var loc = URL + "&" + selectObj.name + "=" + selectOptionValue;
        parent.location = loc;
	}               
    else {
    	selectObj.selectedIndex = 0;
	}
	return false;
}

function launchNewWin(URL, windowName, windowWidth, windowHeight, scrollbars)
{
	var xposition = 400; 
	var yposition = 300;
	
    if ((parseInt(navigator.appVersion) >= 4 )) {
        xposition = (screen.width - windowWidth) / 2;
        yposition = (screen.height - windowHeight) / 2;
    }
	
	if (!scrollbars) var scrollbars = 0;
	
    var args = "width=" + windowWidth + ","
	    	+ "height=" + windowHeight + ","
	    	+ "location=0,"
		    + "menubar=0,"
		    + "scrollbars=" + scrollbars + ","
		    + "status=0,"
		    + "titlebar=0,"
		    + "hotkeys=0,"
		    + "screenx=" + xposition + ","  // NN Only
		    + "screeny=" + yposition + ","  // NN Only
		    + "left=" + xposition + ","     // IE Only
		    + "top=" + yposition;           // IE Only
		
	if (newWin != null && !newWin.closed) {
		newWin.close();
	}
	newWin = window.open(URL, windowName, args);
	
	newWin.focus();
}

function handleSelectOnload(formObj, selectName, override)
{
	var queryString = getQueryString(document);
	var value = queryString[selectName];
	var selectObj;
	var optionID;
	
	if (document.forms[formObj])
	{
		selectObj = document.forms[formObj][selectName];
		optionID = (override && !validateArg(value)) ?  override : value;
	}
	else return;
	
	for (var i = 0; i < selectObj.options.length; i++)
	{
		if (selectObj.options[i].value == optionID)
		{
			selectObj.selectedIndex = i;
		}
	}
}

function stripWhitespace(text)
{
	return text.replace(/ /g, "");
}

function validateEmailAddress(email)
{
	var invalidChars = '!#$%^*()+{}[]|/:;"\'\\><?,';
	var email = stripWhitespace(email);
	var at = email.indexOf("@");
	var dot = email.lastIndexOf(".");
	
	if (email.length < 1) {
		return false;
	}
	else if (at < 1 || dot < 3 || dot == email.length -1 || (dot - at) < 2) {
		return false;
	}
	else {
		for (var i = 0; i < email.length; i++) {
			if (invalidChars.indexOf(email.charAt(i)) != -1) {
				return false;
			}
		}
	}
	return true;
}

function setSelect(formName, selectName, arg)
{ 
	var formObj = document.forms[formName];
	var selectObj = formObj[selectName];
	
	for (var i = 0; i < selectObj.options.length; i++)
	{
		if (selectObj.options[i].value == arg)
		{
			selectObj.selectedIndex = i;
		}
	}
}

function containsBadWords(text)
{
	var badWords = new Array("fuck","shit","dick","clit","pussy","asshole","bastard","boner","hard-on","penis","cock","scrotum","testes","testicles","vagina","tits","cum","dildo","facial","cunt","whore","bitch","slut","anal");

	for (var i = 0; i < badWords.length; i++)
	{
		if (text.toLowerCase().indexOf(badWords[i]) != -1)
		{
			return true;
		}
	}
	
	return false;
}

function viewNewsArticle(articleID)
{
	var URL = "http://" + location.hostname + "/php/news.php?articleID=" + articleID;
	
	launchNewWin(URL, 'newWin', 620, 400);
}

function viewFeaturesArticle(featureID)
{
	var URL = "http://" + location.hostname + "/php/features.php?featureID=" + featureID;
	
	launchNewWin(URL, 'newWin', 620, 400);
}

function launchJoinWin(teamID)
{
	var URL = "http://" + location.hostname + "/php/join.php?teamID=" + teamID;
	
	launchNewWin(URL, 'newWin', 620, 400);
}

function validateSearchParams(formObj)
{
	if (!formObj)
	{
		var formObj = document.forms['SearchForm'];
	}
	
	var params = formObj.params.value.toLowerCase();
	var stripped_params = params.replace(/\s/g, "");
	
	if (!validateArg(params) || stripped_params.length < 1)
	{
		alert("Please enter your search words.");
		return false;
	}
	
	return true;
}
