var global_provinceSelectBoxId = null;
var global_provinceAbbrevBoxId = null;
var global_provincesObjArray = new Array();	// there are two province select boxes
//
//
// Restrict key input to numbers and dashes
//
function restrict_input( obj, validSet )
{
	var phone = "+-0123456789";
	var alpha = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var digit = "0123456789";

	var txt = "";
	for (i=0; i < obj.value.length; i++) {
		var c = obj.value.charAt(i);
		if ( eval(validSet).indexOf( c, 0 ) != -1 ) {
			txt += c;
		}
	}
	obj.value = txt;
}
function filtered_input( evt, validSet )
{
	var phone = "+-0123456789";

	var keynum;
	var keychar;
	var numcheck;

	if ( window.event ) { // IE
		keynum = evt.keyCode;
	}
	else {
		keynum = evt.which;
	}

	if ( evt.ctrlKey || evt.altKey ) {
		return true;
	}
	else if ( keynum == 8 || keynum == 9 || keynum == 0 ) {
		return true;
	}

	keychar = String.fromCharCode(keynum);

	return eval(validSet).indexOf( keychar, 0 ) != -1;
}

//
// Create AJAX request object; if using xmlObj, only one call to it can be
// made at a time.
//
var xmlObj = GetXMLHttpRequest();
var xmlObj2 = GetXMLHttpRequest();

function GetXMLHttpRequest() 
{
	var object = null;

	if (window.XMLHttpRequest) {
	// non-IE browsers
		object = new XMLHttpRequest();
	} 
	else if (window.ActiveXObject) {
		try {		// newer MS XML parser
			object = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) {
		}
		if (object == null) {
			try {	// older MS XML parser
				object = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {
			}
		}
	}
	
	if (object == null) {
		alert("Your browser does not support AJAX");
	}
	
	return object;
}

//
// Zero padded numbers
//
function zero_padded( val, len )
{
	n = val.toString();
	l = n.length;
	for (i=l; i<len; i++) {
		n = '0' + n;
	}
	return n;
}

//
// Return value of selected option in a select dropdown box
//
function valueSelected( selectBoxId )
{
	var selObj = document.getElementById( selectBoxId );

	for (i=0; i<selObj.options.length; i++) {
		if ( selObj.options[i].selected ) {
			return selObj.options[i].value;
		}
	}
}

//
// Cookies (src: http://www.quirksmode.org/js/cookies.html)
//
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function checkEmail( email, obj )
{
	var ret = true;
	if ( email.length == 0 ) {
		ret = false;
	}
	else if ( email.indexOf(' ') >= 0 ) {
		alert("email addresses cannot have spaces in them");
		ret = false;
	}
	else if (email.indexOf('@') == -1) {
		alert("a valid email address must have an @ in it");
		ret = false;
	}
	if (! ret && obj != null) {
		obj.focus();
	}
	return ret;
}

function ajaxCheckEmail( id, email )
{
	if (! checkEmail( email, null ) ) {
		return false;
	}
	xmlObj.open('POST','ajax.php/em');
	xmlObj.onreadystatechange = ajaxHandlerCheckEmail;
	xmlObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlObj.send("id="+id+"&email="+email);
}

function ajaxHandlerCheckEmail()
{
	if (xmlObj.readyState == 4 && xmlObj.status == 200) {
		var obj = eval("(" + xmlObj.responseText + ")" );
		var msgObj = document.getElementById( 'warning_email' );
		if ( obj.result == 1 ) {
			msgObj.innerHTML = obj.msg;
			msgObj.style.display = 'block';
			document.getElementById('db_email').focus();
		}
		else {
			msgObj.style.display = 'none';
		}
	}
}

function disable_hotkeys()
{
	window.document.onkeydown = null;
	window.document.onkeyup = null;
}

function enable_hotkeys()
{
	window.document.onkeydown = BodyGetKeyEvents;
	window.document.onkeyup = BodyGetKeyEvents;
}


