var employeeWindow;
var companyWindow;
var registrationWindow;
var eventWindow;
function poptastic(url,cmd,scrollbars,width,height)
{
	if(cmd.toLowerCase() == "employee")
	{
		resizable = "yes";
		scrollbars = "no";
		statusbar = "yes";
		width = "510";
		height = "410";
		employeeWindow=window.open(url,'employee','resizable=' + resizable + ',status=' + statusbar + ',scrollbars=' + scrollbars + ',width=' + width + ',height=' + height + ',top=' + screen.height/4 + ',left=' + screen.width/4 + 'screenX=0,screenY=100,bringtofront=yes');
		if (parent.focus) {employeeWindow.focus()}
	}
	if(cmd.toLowerCase() == "company")
	{
		resizable = "yes";
		scrollbars = "no";
		statusbar = "yes";
		width = "680";
		height = "700";
		companyWindow=window.open(url,'company','resizable=' + resizable + ',status=' + statusbar + ',scrollbars=' + scrollbars + ',width=' + width + ',height=' + height + ',top=' + screen.height/4 + ',left=' + screen.width/4 + 'screenX=0,screenY=100,bringtofront=yes');
		if (parent.focus) {companyWindow.focus()}
	}
	if(cmd.toLowerCase() == "registration")
	{
		resizable = "yes";
		scrollbars = "no";
		statusbar = "no";
		width = "520";
		height = "550";
		registrationWindow=window.open(url,'registration','resizable=' + resizable + ',status=' + statusbar + ',scrollbars=' + scrollbars + ',width=' + width + ',height=' + height + ',top=' + screen.height/4 + ',left=' + screen.width/4 + 'screenX=0,screenY=100,bringtofront=yes');
		if (parent.focus) {registrationWindow.focus()}
	}
	if(cmd.toLowerCase() == "event")
	{
		resizable = "yes";
		scrollbars = "no";
		statusbar = "no";
		width = "500";
		height = "500";
		eventWindow=window.open(url,'event','resizable=' + resizable + ',status=' + statusbar + ',scrollbars=' + scrollbars + ',width=' + width + ',height=' + height + ',top=' + screen.height/4 + ',left=' + screen.width/4 + 'screenX=0,screenY=100,bringtofront=yes');
		if (parent.focus) {eventWindow.focus()}
	}
	
}											

function trim(s) 
{
	return Trim(s);
}

function varToWords(mytext)
{
	newDesc = "";
	fullDesc = "";
	
	for (xx=0;xx < mytext.length;xx++)
	{
		newDesc = mytext.substr(xx,1);
		newDescUpper = newDesc.toUpperCase();
		if (newDesc == newDescUpper)
			fullDesc += " " + newDesc;
		else
		{
			if (xx == 0)
				fullDesc += newDescUpper;
			else
				fullDesc += newDesc;
		}
	}	
	return fullDesc;
}

//This code automatically converts the first letter of words to upper case and any other letters to lower case. 
//We have included upper casing after full stops and hyphens and also the ability to deal with names such as McCavity. 
function PCase(STRING)
{
	var strReturn_Value = "";
	var iTemp = STRING.length;
	if(iTemp==0)
		return "";

	var UcaseNext = false;
	strReturn_Value += STRING.charAt(0).toUpperCase();
	for(var iCounter=1;iCounter < iTemp;iCounter++)
	{
		if(UcaseNext == true)
			strReturn_Value += STRING.charAt(iCounter).toUpperCase();
		else
			strReturn_Value += STRING.charAt(iCounter).toLowerCase();

		var iChar = STRING.charCodeAt(iCounter);
		if(iChar == 32 || iChar == 45 || iChar == 46)
			UcaseNext = true;
		else
			UcaseNext = false;
			
		if(iChar == 99 || iChar == 67)
			if(STRING.charCodeAt(iCounter-1)==77 || STRING.charCodeAt(iCounter-1)==109)
				UcaseNext = true;
	} //End For
	return strReturn_Value;
} //End Function

function Trim(s) 
{
	//Remove leading spaces and carriage returns
	while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
	s = s.substring(1,s.length);

	// Remove trailing spaces and carriage returns
	while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
	s = s.substring(0,s.length-1);
	return s;
}

function padChars(str, chars, padpos)
{
	if(padpos == undefined)
		padpos == "right";
	if(str != "")
	{
		pad = "";
		padCnt = chars.length - str.length;
		if(padpos == "right")
			return str + chars.substr(str.length);
		else
			return chars.substr(str.length) + str;
		
	}
	return str;
}

function formatNumbers(obj,cnt)
{
	if(obj.value != "")
	{
		zeros = ""
		padCnt = cnt - obj.value.length;
		for(i=0; i<padCnt; i++)	zeros = zeros + "0"
		obj.value = zeros + obj.value 
	}
}

function limitChars(obj,e,maxLen)
{
	var key;
	var keychar;
	if (window.event)
		key = window.event.keyCode;
	else if (e)
		key = e.which;
	else
		return true;
		
	//alert(obj.value.length + "  " + maxLen);
	 if (obj.value.length == maxLen)
		 return false;
	 else
		 return true;
}

function numbersonly(myfield, e, dec)
{
	var key;
	var keychar;
	if (window.event)
		key = window.event.keyCode;
	else if (e)
	 	key = e.which;
	else
	 	return true;
	 	
	keychar = String.fromCharCode(key);
	// control keys
	if ((key==null) || (key==0) || (key==8) || 
	 (key==9) || (key==13) || (key==27) )
	 return true;

	// numbers
	else if ((("0123456789").indexOf(keychar) > -1))
	 return true;

	// decimal point jump
	else if (dec && (keychar == "."))
	 {
	 myfield.form.elements[dec].focus();
	 return false;
	 }
	else
	 return false;
}

function getkey(e)
{
	if (window.event)
		return window.event.keyCode;
	else if (e)
		return e.which;
	else
		return null;
}


function goodchars(e, goods)
{
	var key, keychar;
	key = getkey(e);
	if (key == null) return true;

	// get character
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();
	goods = goods.toLowerCase();

	// check goodkeys
	if (goods.indexOf(keychar) != -1)
		return true;

	// control keys
	if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
		return true;

	// else return false
	return false;
}

function validateField(obj, validtn, msg)
{
	obj.value = trim(obj.value);
	if(obj.value != "")
	{
		if(msg == undefined || msg == "")
			msg = "Please enter a valid value";
		for(i=0; i<obj.value.length; i++)
		{
			if(validtn.indexOf(obj.value.substr(i,1)) == -1)
			{
				alert(msg);
				obj.value = "";
				obj.focus();
				return false;
			}
		}
	}
	return true;
}


function DollarFormat(obj)
{
	if (obj.value.charAt(0)=="$")
		return wd="w"
	var tempnum=obj.value
	for (i=0;i<tempnum.length;i++)
	{
		if (tempnum.charAt(i)==".")
		{
			wd="d"
			break
		}
	}
	if (wd=="w") 
		obj.value=prefix+tempnum+".00"
	else
	{
		if (tempnum.charAt(tempnum.length-2)==".")
		{
			obj.value=prefix+tempnum+"0"
		}
		else
		{
			tempnum=Math.round(tempnum*100)/100
			obj.value=prefix+tempnum
		}
	}
}

function getCheckedItems(obj)
{
	ctr = 0;
	arr = new Array();
	if(obj.length != undefined)	
	{
		for(i=0; i<obj.length; i++) 
			if(obj[i].checked==true)
				arr[arr.length]=obj[i].value;
	}
	else
	{
		if(obj.checked==true)
			arr[arr.length]=obj.value;
	}
	return arr;
}

function returnType(obj)
{
	return typeof obj;
}

function getForm(objname)
{
	s="";
	for(i=0; i<document.forms.length; i++)
	{
		s = s + "name="+document.forms[i].name + "\n";
		for(j=0; j<document.forms[i].elements.length; j++)
			if(document.forms[i].elements[j].name == objname)
				return document.forms[i];
		//s = s + "\telement="+document.forms[i].elements[j].name + "\n";
	}
}

function setFormFields(frm, fieldList, property, val)
{
	fldList = new Array();
	if(fieldList.toLowerCase() == "all")
	{
		for(i=0; i<frm.length; i++)
		{
			objProp = eval("document." + frm.name + "." + frm.elements[i].name + "." + property);
			if(objProp)
			{
				objProp = val;
				alert(objProp);
				fldList[fldList.length] =  frm.elements[i].name;
			}
		}
	}
	else
	{
		arr = fieldList.split("'");
		alert(arr);
		for(i=0; i<arr.length; i++)
		{
			objProp = eval("document." + frm.name + "." + arr[i] + "." + property);
			if(objProp)
			{
				objProp = val;
				fldList[fldList.length] =  arr[i];
			}
		}
	}
	alert(fldList.join(","));
}

function appendParameter(thisUrl, param, val)
{
	thisParam =  param + "=";
	paramArray = thisUrl.split("&");
	for(var i=0; i<paramArray.length; i++)
	{
		if(paramArray[i].toLowerCase().indexOf(thisParam) > -1)
		{
			paramArray[i] = param + "=" + val;
			return paramArray.join("&");
		}
	}
	
	if(thisUrl.indexOf("?") > -1)
		return thisUrl + "&" + param + "=" + val;
	else
		return thisUrl + "?" + param + "=" + val;
}

function addUrlParam(url,newParam,newVal)
{
	url = url.split("?");
	if(url.length > 1)
		queryString = url[1];
	else
		queryString = url[0];

	queryString = queryString.split("&");
	for(i=0; i<queryString.length; i++)
	{
		param = queryString[i].split("=")[0];
		paramVal = queryString[i].split("=")[1];
		if(param == newParam)
		{
			queryString[i] = param + "=" + newVal;
			if(url.length > 1)
				return url[0] + "?" + queryString.join("&");
			else
				return queryString.join("&");
		}
	}
	
	if(url.length > 1)
		return url[0] + "?" + queryString.join("&") + "&" + newParam + "=" + newVal;
	else
		return queryString.join("&") + "?" + newParam + "=" + newVal;
}


function getObj(objname)
{
	s="";
	for(i=0; i<document.forms.length; i++)
	{
		s = s + "name="+document.forms[i].name + "\n";
		for(j=0; j<document.forms[i].elements.length; j++)
			if(document.forms[i].elements[j].name == objname)
				return document.forms[i].elements[j];
		return "";
		//s = s + "\telement="+document.forms[i].elements[j].name + "\n";
	}
}

function getObjValue(obj,valType)
{
	s="";
	if(returnType(obj) == "string") obj = getObj(obj);
		
	if("text,password,checkbox,radio,textarea,hidden".indexOf(obj.type) > -1)
	{
		if("checkbox,radio".indexOf(obj.type) > -1)
			return getCheckedItems(obj);
		else
			return obj.value;
	}
	else if(obj.type == "select-one")
	{
		if(valType == undefined) valType = "value";
		if(valType == "value")
			return obj.options[obj.selectedIndex].value;
		else
			return obj.options[obj.selectedIndex].text;				
	}
	else if(obj.type == "select-multiple")
	{
		if(valType == undefined) valType = "value";
		tmpArr = new Array();
		tmpObj = obj;
		for(k=0; k<tmpObj.length; k++)
		{
			if(tmpObj[k].selected)
			{												
				if(valType == "value")
					tmpArr[tmpArr.length] = tmpObj[k].value;
				else
					tmpArr[tmpArr.length] = tmpObj[k].text;
			}
		}
		return tmpArr;
	} // if object type
	//s = s + "\telement="+obj.name + "\n";
} // end function

function setObjValue(obj,val,valType)
{
	s="";
	
	if(returnType(obj) == "string") 
		obj = getObj(obj);
		
	if("text,password,checkbox,radio,textarea,hidden".indexOf(obj.type) > -1)
	{
		if("checkbox,radio".indexOf(obj.type) > -1)
		{
			if(obj.length == undefined)
				if(obj.value == val)
					obj.checked = true;
			else
			{
				for(k=0; k<obj.length; k++)
					if(obj[k].value == val)
						obj[k].checked = true;
			}
		}
		else
			obj.value = val;
	}
	else if(obj.type == "select-one")
	{
		if(valType == undefined) valType = "value";
		
		for(k=0; k<obj.options.length; k++)
		{
			if(valType == "value")
				if(obj.options[k].value == val)
					obj.selectedIndex=k;
			else
				if(obj.options[k].text == val)
					obj.selectedIndex=k;
		}
	}
	else if(obj.type == "select-multiple")
	{
		if(valType == undefined) valType = "value";
		
		for(k=0; k<obj.options.length; k++)
		{
			if(valType == "value")
				if(obj.options[k].value == val)
					obj[k].selected=true;
			else
				if(obj.options[k].text == val)
					obj[k].selected=true;
		}
	} // if object type
	//s = s + "\telement="+obj.name + "\n";
} // end function


function testValue(obj, validtn, msg)
{
	obj.value = trim(obj.value);
	if(obj.value != "")
	{
		if(msg == undefined)
			msg = "Please enter a valid value";

		valid= true;
		if(validtn.indexOf("date") > -1)
			valid = validateDate(obj.value,"U","A");
		else
		{
			for(i=0; i<=obj.value.length; i++)
			{
				//alert(obj.value.substr(i,1));
				if(validtn.indexOf(obj.value.substr(i,1)) == -1)
				{
					valid = false;
					break;
				}
			}
		}
		
		if(!valid)
		{
			alert(msg);
			obj.value = "";
			obj.focus();
			return false;
		}
	}
	return true;
}

function properDesc(mytext)
{
	newDesc = "";
	fullDesc = "";
	
	for (xx=0;xx < mytext.length;xx++)
	{
		newDesc = mytext.substr(xx,1);
		newDescUpper = newDesc.toUpperCase();
		if (newDesc == newDescUpper)
			fullDesc += " " + newDesc;
		else
		{
			if (xx == 0)
				fullDesc += newDescUpper;
			else
				fullDesc += newDesc;
		}
	}
	return fullDesc;
}

// Date Validation Javascript
// copyright 30th October 2004, by Stephen Chapman
// http://javascript.about.com

// You have permission to copy and use this javascript provided that
// the content of the script is not changed in any way.
// U(MDY), J(DMY), or W(YMD) to indicate the date format

function valDateFmt(datefmt) {myOption = -1;
for (i=0; i<datefmt.length; i++) {if (datefmt[i].checked) {myOption = i;}}
if (myOption == -1) {alert("You must select a date format");return ' ';}
return datefmt[myOption].value;}
function valDateRng(daterng) {myOption = -1;
for (i=0; i<daterng.length; i++) {if (daterng[i].checked) {myOption = i;}}
if (myOption == -1) {alert("You must select a date range");return ' ';}
return daterng[myOption].value;}
function stripBlanks(fld) {var result = "";for (i=0; i<fld.length; i++) {
if (fld.charAt(i) != " " || c > 0) {result += fld.charAt(i);
if (fld.charAt(i) != " ") c = result.length;}}return result.substr(0,c);}
var numb = '0123456789';
function isValid(parm,val) {if (parm == "") return true;
for (i=0; i<parm.length; i++) {if (val.indexOf(parm.charAt(i),0) == -1)
return false;}return true;}
function isNum(parm) {return isValid(parm,numb);}
var mth = new Array('','january','february','march','april','may','june','july','august','september','october','november','december');
var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
function validateDate(fld,fmt,rng) {
var dd, mm, yy;var today = new Date;var t = new Date;fld = stripBlanks(fld);
if (fld == '') return false;var d1 = fld.split('\/');
if (d1.length != 3) d1 = fld.split(' ');
if (d1.length != 3) return false;
if (fmt == 'u' || fmt == 'U') {
  dd = d1[1]; mm = d1[0]; yy = d1[2];}
else if (fmt == 'j' || fmt == 'J') {
  dd = d1[2]; mm = d1[1]; yy = d1[0];}
else if (fmt == 'w' || fmt == 'W'){
  dd = d1[0]; mm = d1[1]; yy = d1[2];}
else return false;
var n = dd.lastIndexOf('st');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('nd');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('rd');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf('th');
if (n > -1) dd = dd.substr(0,n);
n = dd.lastIndexOf(',');
if (n > -1) dd = dd.substr(0,n);
n = mm.lastIndexOf(',');
if (n > -1) mm = mm.substr(0,n);
if (!isNum(dd)) return false;
if (!isNum(yy)) return false;
if (!isNum(mm)) {
  var nn = mm.toLowerCase();
  for (var i=1; i < 13; i++) {
    if (nn == mth[i] ||
        nn == mth[i].substr(0,3)) {mm = i; i = 13;}
  }
}
if (!isNum(mm)) return false;
dd = parseFloat(dd); mm = parseFloat(mm); yy = parseFloat(yy);
if (yy < 100) yy += 2000;
if (yy < 1582 || yy > 4881) return false;
if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0))) day[mm-1]++;
if (mm < 1 || mm > 12) return false;
if (dd < 1 || dd > day[mm-1]) return false;
t.setDate(dd); t.setMonth(mm-1); t.setFullYear(yy);
if (rng == 'p' || rng == 'P') {
if (t > today) return false;
}
else if (rng == 'f' || rng == 'F') {
if (t < today) return false;
}
else if (rng != 'a' && rng != 'A') return false;
return true;
}

