// JavaScript Document
function loginUser() {
	if (document.login.email.value == "") {
		alert("Please enter your email address.");
		document.login.email.focus();
		return false;
	}
	if (!isValidEmail(document.login.email.value)) {
		alert("Please enter a valid email address.");
		document.login.email.focus();
		return false;
	}
	if (document.login.password.value == "") {
		alert("Please enter your password.");
		document.login.password.focus();
		return false;
	} 
	// document.login.submit();
	return true;
}

    function noOutline() {
        if (document.all) {
        var myLinks = document.all.tags("a");
        if (myLinks.length>0) { for (i=0; i<myLinks.length; i++) { myLinks[i].onfocus =    myLinks[i].blur; } }
        }
    }


function testLength(obj, maxLen) { 
		var text = obj.value;
		if (text.length > maxLen) {
			alert("That's it! This field can only be " + maxLen + " characters long.");
			return;
		} else {
			var div = document.getElementById("charcount");
			div.innerHTML = "Characters left: <b>" + (maxLen - text.length) + "</b>";
		}
	}
	
function showSubset(countryCode) {
	var showUK = false;
	var showUS = false;
	if (countryCode.toLowerCase() == "uk") {
		showUK = true;
	}
	if (countryCode.toLowerCase() == "us") {
		showUS = true;
	}
	if (showUK) {
		// showHideLayers("subset_" + countryCode, "", "show");
		// showHideLayers("subset_text_" + countryCode, "", "show");
		var obj = document.getElementById("subset_uk");
		obj.style.visibility = "visible";
		obj = document.getElementById("subset_text_uk");
		obj.style.visibility = "visible";
	} else {
		showHideLayers("subset_uk", "", "hide");
		showHideLayers("subset_text_uk", "", "hide");
	}
	if (showUS) {
		// showHideLayers("subset_" + countryCode, "", "show");
		// showHideLayers("subset_text_" + countryCode, "", "show");
		var obj = document.getElementById("subset_us");
		obj.style.visibility = "visible";
		obj = document.getElementById("subset_text_us");
		obj.style.visibility = "visible";
	} else {
		showHideLayers("subset_us", "", "hide");
		showHideLayers("subset_text_us", "", "hide");
	}
}


function openPop(sURL,iW,iH) {
	window.open(sURL,'superbrupop','height=' + iH + ',width=' + iW + ',left=50,top=50,scrollbars,resizable=no,status');
	return;
}

function openGallery(s) {
	window.open('photo.asp?coll=' + s,'superbrupop','height=420,width=520,left=50,top=50,scrollbars=no,resizable=no');
	return;
}
// JavaScript Document
// Example: obj = findObj("image1");
function findObj(theObj, theDoc)
{
  var p, i, foundObj;
  
  if(!theDoc) theDoc = document;
  if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)
  {
    theDoc = parent.frames[theObj.substring(p+1)].document;
    theObj = theObj.substring(0,p);
  }
  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
  for (i=0; !foundObj && i < theDoc.forms.length; i++) 
    foundObj = theDoc.forms[i][theObj];
  for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
    foundObj = findObj(theObj,theDoc.layers[i].document);
  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
  
  return foundObj;
}

// * Dependencies * 
// this function requires the following snippets:
// JavaScript/readable_MM_functions/findObj
//
// Accepts a variable number of arguments, in triplets as follows:
// arg 1: simple name of a layer object, such as "Layer1"
// arg 2: ignored (for backward compatibility)
// arg 3: 'hide' or 'show'
// repeat...
//
// Example: showHideLayers(Layer1,'','show',Layer2,'','hide');
function showHideLayers()
{ 
  var i, visStr, obj, args = showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3)
  {
    if ((obj = findObj(args[i])) != null)
    {
      visStr = args[i+2];
      if (obj.style)
      {
        obj = obj.style;
        if(visStr == 'show') visStr = 'visible';
        else if(visStr == 'hide') visStr = 'hidden';
      }
      obj.visibility = visStr;
    }
  }
}

function isValidEmail(s) {
	var sOK, bOK;
	bOK = true;
	sOK = "0123456789abcdefghijklmnopqrstuvwxyz._-'&";
	if (s.indexOf("@") == -1) {
		bOK = false;
	} else {
		var aParts = s.split("@");
		if (aParts.length > 2) {
			bOK = false;
		} else {
			for (j=0;j<aParts.length;j++) {
				var t = aParts[j];
				for (k=0;k<t.length;k++) {
					if (sOK.indexOf(t.substr(k,1).toLowerCase()) == -1) {
						bOK = false;
					}
				}
			}
			if (aParts[1].indexOf(".") == -1) {
				bOK = false;
			}
		}
	}
	return bOK;
}


// functions used in client-side validation

// illegal characters
var sIllegal = '%^*()<>/\|{}[]:;="';

function liteValidation()
{
  sIllegal = '%<>';
}

function heavyValidation()
{
  sIllegal = '!&$%^&*()<>?/\|{}[]:;+="';
}

function dotcheck(s)	{
	// used in email address validation
	var sLen = s.length
	if (s.substr(0,1)=="." || s.substr(sLen-1,1)==".") {
		return false ;
	}
	for ( var i = 0; i < sLen-2; i++ )	{
		if (s.substr(i,2)=="..") {
			return false ;
		}
	}
	return true ;
}


function dotcheck2(s)	{
	// used in email address validation
	var sLen = s.length
	for ( var i = 0; i < sLen-1; i++ )	{
		if (s.substr(i,1)==".") {
			return true ;
		}
	}
	return false ;
}


function isSpace(s) {
	// used in email address validation
	if (s.indexOf(" ") == -1) {
		return false ; 
	}
	else {return true ;}
}

function isEmail (s) {
	// used in email address validation
    	var count = 0;
		var res = 0;
		var retval = "true"
		var str=s
	if (isSpace(s) == true)	{
		return false;
	}	
	res = s.search("@");
	
	if (res > -1) {
		s1 = s.slice(0,res) ;
		s2 = s.slice(res+1) ;
		res = s2.search("@");
		if (res == -1) {
			if (dotcheck(s1) == true && dotcheck(s2) == true && dotcheck2(s2) ==true) {
				retval = "true" ;
			}
			else {retval = "false" ;}
			}
		else {retval = "false" ;}
						
		if (retval == "false") {
			return false ;
		}
		else if (retval == "true") {
			return true ;
		}
		else {return false ;}
	}
	else {return false ;}
}

/*
function isValidEmail(sAddress) {
	if (isBlank(sAddress)) {
		alert("Please fill in your email address.");
		return false;
	} else if (!isEmail(sAddress)) {
		alert("Please fill in a valid email address.");
		return false;
	} else {
		return true;
	}
}
*/

// function to check for alphanumerics
function isAlphaNum(sValue) {
    var iLen = sValue.length;
    var sAlphaNum = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    for (var i=0; i < iLen ; i ++) {
	var sChar = sValue.substr(i,1);
	if (sAlphaNum.indexOf(sChar) == -1) {
	    return false;
	}
    }
    return true;
}
        
// function to check for numerics
function isNumSpace(sValue) {
    var iLen = sValue.length;
    var sAlphaNum = '0123456789 ';
    for (var i=0; i < iLen ; i ++) {
	var sChar = sValue.substr(i,1);
	if (sAlphaNum.indexOf(sChar) == -1) {
	    return false;
	}
    }
    return true;
}		
		
// function to check for illegal characters that will cause trouble in the db
function isLegal(sValue, bLite) {
    var iLen = sValue.length;
    sTIllegal = sIllegal;
    if (bLite) {
	// less rigid validation
	sTIllegal = '%<>\/';
    }
    for (var i=0; i < iLen ; i ++) {
	var sChar = sValue.substr(i,1);
	if (sTIllegal.indexOf(sChar) > -1) {
	    return false;
	}
    }
    return true;
}
		
// function to show an error popup - assumes there's an array called aErrors in the page
function showError(iError, bShow) {
   if (bShow) {
      alert("Please fill in " + aErrors[iError] + ".");
   } else {
      alert(aErrors[iError]);
   }
}

function isBlank(pValue) {
	var sValue = "" + pValue;
	var iLen = sValue.length;
	for (i=0; i<iLen; i++) {
		if (sValue.substr(i,1) != " ") {
			return false;
		}
	}
	return true;
}

function isValid(sValue, sName, bLite) {
    	// bLite if true does much less rigid character checks
	if (isBlank(sValue))
	{
		alert('Please check your ' + sName + ' field.\n\nMake sure that it is filled in.');
		return false;
	}
	else if (!isLegal(sValue, bLite))
	{
		alert('Please check your ' + sName + ' field.\n\nMake sure that it does not contain any\nof the following symbols: ' + sIllegal);
		return false;
	}
	return true;
}

function isValidCountry(sValue) {
	if (sValue=="select") {
		alert('Please select a country')
		return false;
	}
	return true;
}
function changeTeam(teamName) {
		document.location = "team_" + teamName.toLowerCase() + ".asp";
		return;
	}


function isValidPassword(val) {
	var valid = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var test = "";
	var isValid = true;
	for (i=0; i<val.length;i++) {
		test = val.substr(i,1);
		if (valid.indexOf(test) == -1) {
			isValid = false;
		}
	}
	//alert("Your password contains invalid characters.\n\nIt may only contain the numbers 0 to 9 and letters A to Z (in upper or lower case.\n\nPlease enter a different password.");
	return isValid;
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}
 
