
function trim(str) {
	return str.replace(/^\s+|\s+$/g, '')
};

function isNumeric(str) {
	var validChars = "0123456789.";
	var isNumber=true;
	var cchar;
 
	for (i=0; i<str.length; i++) { 
		cchar = str.charAt(i); 
		if (validChars.indexOf(cchar) == -1) {
         isNumber = false;
			break;
		}
	}

	return(isNumber);
}
   
function isEmail(s) {
	var i = 1;
	var sLength = s.length;

	// look for @
	while ((i < sLength) && (s.charAt(i) != "@")) { 
		i++; 
	}

	if ((i >= sLength) || (s.charAt(i) != "@")) {
		return false;
	} else {
		i += 2;
	}

	// look for .
	while ((i < sLength) && (s.charAt(i) != ".")) { 
		i++; 
	}

	// there must be at least one character after the .
	if ((i >= sLength - 1) || (s.charAt(i) != ".")) {
		return false;
	} else {
		return true;
	}
}

function hasValue(val) {
    if (val == null) {
        return(false);
    }

    var s = trim(val);

    if (s == "") {
        return(false);
    }

    return(true);

}

function isBlank(val) {
	return(!hasValue(val));
}

function siteSearch(form) {
	//alert("Search");
	form.submit();
}

// Returns a random positive integer > 0 <= upperBound
function randomInt(upperBound) {
	return( Math.round((Math.random()*upperBound) + 0.5) );
}

function popup(link) {
	win = window.open(link, "popup")
}

function setColour(id,ON){
	var el = document.getElementById(id);
	if(ON){
		el.style.backgroundColor='#C6CFDC';
	} else {
		el.style.backgroundColor='transparent';
	}
}

function setCookie (name, value) { 

	var argv = setCookie.arguments; 
	var argc = setCookie.arguments.length; 
	var expires = (argc > 2) ? argv[2] : null; 
	var path = (argc > 3) ? argv[3] : null; 
	var domain = (argc > 4) ? argv[4] : null; 
	var secure = (argc > 5) ? argv[5] : false; 
	
	document.cookie = name + "=" + escape (value) + 
			((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
			((path == null) ? "" : ("; path=" + path)) + 
			((domain == null) ? "" : ("; domain=" + domain)) + 
			((secure == true) ? "; secure" : "");
}

function getHTTPRequest() {
        var rqObject;

        if(navigator.appName == "Microsoft Internet Explorer") {
                rqObject = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
                rqObject = new XMLHttpRequest();
        }

        return(rqObject);
}

function populateElement(elemId, source) {
	var elem = document.getElementById(elemId);
	if (elem == null) {
		return;
	}

        var rqo = getHTTPRequest();
	var dest = source;

        rqo.onreadystatechange=function() {
                if(rqo.readyState == 4) {
                        if (rqo.status == 200) {
				elem.innerHTML = rqo.responseText;
                        }
                }
        };

	rqo.open("GET", dest);
        rqo.send(null);
}

function createMailto(to, domain) {
	var address = to + "@" + domain;
	return("<a href='mailto:" + address + "'>" + address + "</a>");
}

function reminder(form) {

        var login = form.email.value;

        if (isBlank(login)) {
                alert("Please enter your email address.");
                form.email.focus();
                return;
        }

        if (!isEmail(login)) {
                alert("Your email address appears to be invalid, please re-enter it.");
                form.email.focus();
                return;
        }

        target = "/resetPassword.php?login="+login;
        win = window.open(target, "ResetPassword", "toolbar=no,scrollbars=yes,width=380,height=300,resizable")
}

