// JavaScript Document

function trim(str)
{
	var whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
	for (var i = 0; i < str.length; i++) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(i);
			break;
		}
	}
	for (i = str.length - 1; i >= 0; i--) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}

function checkEmail(email)
{
	return (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email));
}

function validateRegForm()
{
	var f = document.frmRegister;
	var msg = '';
	if (trim(f.txtUserName.value) == '')
		msg += "\n- You did not enter a user name! Please choose one.";
	else if (f.txtUserName.value.length < 6)
		msg += "\n- Your user name must consist of at least 6 characters!";
	if (!checkEmail(f.txtEmail1.value) || trim(f.txtEmail1.value) == '')
		msg += "\n- You did not enter a valid email address!";
	else if (f.txtEmail1.value.toLowerCase() != f.txtEmail2.value.toLowerCase())
		msg += "\n- Your email addresses do not match. Please re-check them.";
	if (f.txtPass1.value != f.txtPass2.value)
		msg += "\n- Your passwords do not match. They are case-sensitive!";
	else if (trim(f.txtPass1.value) == '')
		msg += "\n- You did not choose a password!";
	else if (f.txtPass1.value.length < 6)
		msg += "\n- Your password must be at least 6 characters in length!";
	if (msg != '') {
		alert("You have one or more errors on your registration form:\n" + msg);
		return false;
	}
	return true;
}

function validateResetPass()
{
	var f = document.frmReset;
	var msg = '';
	if (f.txtPass1.value != f.txtPass2.value)
		msg += "\n- Your passwords do not match. Remember, they are case-sensitive!";
	else if (trim(f.txtPass1.value) == '')
		msg += "\n- You did not choose a new password!";
	else if (f.txtPass1.value.length < 6)
		msg += "\n- Your new password must be at least 6 characters in length!";
	if (msg != '') {
		alert("You have one or more errors on your password reset form:\n" + msg);
		return false;
	}
	return true;
}

function validateLoginForm()
{
	var f = document.frmLogin;
	var msg = '';
	if (trim(f.txtUserName.value) == '')
		msg += "\n- You did not enter in your user name!";
	if (trim(f.txtPassword.value) == '')
		msg += "\n- You did not enter in your password!";
	if (msg != '') {
		alert("You have one or more errors on your login form:\n" + msg);
		return false;
	}
	return true;
}

function validateEditForm()
{
	if (trim(document.frmEditDL.txtDescription.value) == '') {
		alert("You MUST enter a description for your uploaded file!");
		return false;
	}
	return true;
}

function validateForgotPass()
{
	if (trim(document.frmForgot.txtEmail.value) == '') {
		alert("You MUST enter in an email address in order to confirm your password reset request.");
		return false;
	}
	return true;
}

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 changeCSS(theClass, element, value)
{
	var cssRules;
	if (document.all) {
		cssRules = 'rules';
	}
	else if (document.getElementById) {
		cssRules = 'cssRules';
	}
	var added = false;
	for (var S = 0; S < document.styleSheets.length; S++) {
		for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
			if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
				if (document.styleSheets[S][cssRules][R].style[element]) {
					document.styleSheets[S][cssRules][R].style[element] = value;
					added = true;
					break;
				}
			}
		}
		
		if (!added) {
			if (document.styleSheets[S].insertRule) {
				document.styleSheets[S].insertRule(theClass+' { '+element+': '+value+'; }',document.styleSheets[S][cssRules].length);
			} else if (document.styleSheets[S].addRule) {
				document.styleSheets[S].addRule(theClass,element+': '+value+';');
			}
		}
	}
}

function cancelTheUpload()
{
	swfu.cancelUpload(null, true);
	toggleProgressStatus(false);
}