/* previously in functions.js */

// JavaScript Document
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) {
		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) {
		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 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 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 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+$/,"");
}





/* previously in layers.js */

function makeHttpRequest(url, callback_function, return_xml) 
{ 
   var http_request = false; 

   if (window.XMLHttpRequest) { // Mozilla, Safari,... 
       http_request = new XMLHttpRequest(); 
       if (http_request.overrideMimeType) { 
           http_request.overrideMimeType('text/xml'); 
       } 
   } else if (window.ActiveXObject) { // IE 
       try { 
           http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
       } catch (e) { 
           try { 
               http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
           } catch (e) {} 
       } 
   } 

   if (!http_request) { 
       alert('Unfortunatelly you browser doesn\'t support this feature.'); 
       return false; 
   } 
   http_request.onreadystatechange = function() { 
       if (http_request.readyState == 4) { 
           if (http_request.status == 200) { 
               if (return_xml) { 
                   eval(callback_function + '(http_request.responseXML)'); 
               } else { 
                   eval(callback_function + '(http_request.responseText)'); 
               } 
           } else { 
               alert('There was a problem with the request.(Code: ' + http_request.status + ')'); 
           } 
       } 
   } 
   // insert a random querystring to avoid caching
   var now = new Date();
	url += "&t=" & now.getTime();
   http_request.open('GET', url, true); 
   http_request.send(null); 
}


function ajaxCensor(host, text) {
	makeHttpRequest(host + "ajax_censor.asp?text=" + escape(text), "returnCensor",false);
}







/* previously in googlefix.js */
if(window.attachEvent)
    window.attachEvent("onload",setListeners);

  function setListeners(){
    inputList = document.getElementsByTagName("INPUT");
    for(i=0;i<inputList.length;i++){
      inputList[i].attachEvent("onpropertychange",restoreStyles);
      inputList[i].style.backgroundColor = "";
    }
    selectList = document.getElementsByTagName("SELECT");
    for(i=0;i<selectList.length;i++){
      selectList[i].attachEvent("onpropertychange",restoreStyles);
      selectList[i].style.backgroundColor = "";
    }
  }

  function restoreStyles(){
    if(event.srcElement.style.backgroundColor != "")
      event.srcElement.style.backgroundColor = "";
  }//-->
// JavaScript Document




/* previously in dropdown.js */
// keeps track of displayed menus
var aNavOn 	= new Array();
var sPrefix = "dropmenu";
var bKeepOn;
var iTimeout = 1000;
var aKeepOn = new Array(false, false, false, false, false, false);
setKeepOn(false);

function getLayerStyle(sn) {
	return document.getElementById(sn).style;
}

function findPos(obj,sDim) {
	var curtop = 0;
	var sLoc, sLet;
	if (sDim == "x") {
		sLoc = "Left";
		sLet = "x";
	} else if (sDim == "y") {
		sLoc = "Top";
		sLet = "y";
	}
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += eval("obj.offset" + sLoc)
			obj = obj.offsetParent;
		}
	} else if (eval("obj." + sLet)) {
		curtop += eval("obj." + sLet);
	}
	return parseInt(curtop);
}

function setKeepOn(iLevel, bBool) {
	if (bKeepOn != bBool) {
		if (bBool) {
			for (j=0; j<= iLevel; j++) {
				aKeepOn[j] = bBool;
			}
		} else { 
			aKeepOn[iLevel] = bBool;
		}
	}
}

function hideMenu(iMenu, iLevel) {
	var oMenu = getLayerStyle(sPrefix + iMenu);
	if (oMenu.visibility == "visible") {
		if (aKeepOn[iLevel] == false) {
			oMenu.visibility = "hidden";
		}
	}
}

function hideAllAction() {
	for (i=0;i<aNavOn.length;i++) {
		if (aKeepOn[i] == false) {
			hideMenu(aNavOn[i], i);
		}
	}
}
function overrideHideAll() {
	for (i=0;i<aNavOn.length;i++) {
		hideMenu(aNavOn[i], i);
	}
}

function hideAll() {
	setTimeout("hideAllAction()",iTimeout);
}

function ws() {}
function setHilite2() {}
function clearHilite() {} 

function leaveNav() {
	setKeepOn(0, false);
	setKeepOn(1, false);
	setKeepOn(2, false);
	hideAll();
}

