function checkEmpty(aField){
	if (aField.value.length == ""){
		alert("The " + aField.name + " field may not be empty.");
		aField.focus();
		return false;
	}
	return true;
}

function StringReplace(originalString, findText, replaceText){
	var pos = 0;
	var len = findText.length;
	if (originalString != null){
		pos = originalString.indexOf(findText);
		while (pos != -1){
			originalString = originalString.substring(0, pos) + replaceText + originalString.substring(pos+len, originalString.length);
			pos = originalString.indexOf(findText)
		}
	}
	return originalString;
}
			
function stripNonNumbers(item){
	var temp = "";
	var i = 0;
		
	for(i=0;i<item.value.length;i++){
		//alert(item.value.charAt(i));	
		if (isNumeric(item.value.charAt(i))){
			temp += item.value.charAt(i);
		}	
	}
	item.value = temp;
}

function isNumeric(sItem){

	for(i=0;i<sItem.length;i++){
		var sTemp = parseInt(sItem.charAt(i));
		if (isNaN(sTemp)){
			return false;
		}	
	}
	return true;
}

function uCase(item){
	item.value = item.value.toUpperCase();
}

function Format(aField, sFormat){
	var aFrm = document.forms[0];
	var sChar;
	var sTemp;
	var sStr = aField.value;
	
	if (sFormat.length > 0){
	
		if (sFormat.length != sStr.length){
			return false;
		}
	
		for(i=0;i<sFormat.length;i++){
			sChar = sFormat.charAt(i);			
			
			if (sChar == "#"){
				//check for numeric
				sTemp = parseInt(sStr.charAt(i));
				
				if (isNaN(sTemp)){
					return false;
				}
			}
			else if (sChar == "@"){
				//check for alpha
				sTemp = parseInt(sStr.charAt(i));
				if (sTemp >= 0){
					return false;
				}
			}
			else if (sChar != sStr.charAt(i)){
				return false;
			}
		}
	}
	return true;
}

function findObject(ObjectName){
	var i;
	var thisForm = document.forms[0];
	//alert(ObjectName)
	for (i=0; i<thisForm.elements.length; i++){
		//alert(thisForm.elements[i].name);
		if(thisForm.elements[i].name == ObjectName){
			//alert("Here");
			return thisForm.elements[i];
		}
	}
	return null;
}

function textCounter(field, maxlimit) 
{
	if (field.value.length > maxlimit) // if too long...trim it!
	{
		field.value = field.value.substring(0, maxlimit);
	}
}

function checkSame(aBox){
	var aForm = document.forms[0];
	
	if (aBox.value == "on"){
		aForm.address1_2.value = aForm.address1_1.value;
		aForm.address2_2.value = aForm.address2_1.value;
		aForm.city_2.value = aForm.city_1.value;
		aForm.state_2.value = aForm.state_1.value;
		aForm.zip_2.value = aForm.zip_1.value;
	}
	else{
		aForm.address1_2.value = "";
		aForm.address2_2.value = "";
		aForm.city_2.value = "";
		aForm.state_2.value = "";
		aForm.zip_2.value = "";
	}
}

function confirmPassword(){
	var aForm = document.forms[0];
	
	aPwd = aForm.password;
	aCon = aForm.confirm;
	
	if (aPwd.value.length != 8){
		alert("A passowrd must be 8 characters long.");
		aPwd.focus();
		return false;
	}
	
	if (! numAndChar(aPwd.value)){
		alert("A password must consist of both letters and numbers.");
		aPwd.focus();
		return false;
	}
	
	if (!(aPwd.value == aCon.value)){
		alert("The Password and Confirmation do not match. Please try again.");
		aPwd.focus();
		return false;
	}
}

function numAndChar(sStr){
	
	var bNumber = false;
	var bChar = false;
	
	for(i=0;i<sStr.length;i++){
		sChar = parseInt(sStr.charAt(i));
		if (isNaN(sChar)){
			bNumber = true;
		}
		else{
			bChar = true;
		}
	}
	if (bChar && bNumber){
		return true;
	}
	else{
		return false;
	}
}

function validateSecurity(){
	aForm = document.forms[0];
	
	if (aForm.username.value == ""){
		alert("Please enter an username.");
		aForm.username.focus();
		return false;
	}
	if (aForm.password.value == ""){
		alert("Please enter an password.");
		aForm.password.focus();
		return false;
	}
	if (aForm.confirm.value == ""){
		alert("Please enter an password confirmation.");
		aForm.username.focus();
		return false;
	}
	return true;
}

function validateRegistration(){
	aForm = document.forms[0];

	if (aForm.email.value == ""){
		alert("Please enter an email address.");
		aForm.email.focus();
		return false;
	}
	if (aForm.last4.value == ""){
		alert("Please enter the first digits of your SSN.");
		aForm.last4.focus();
		return false;
	}
	if (aForm.fname.value == ""){
		alert("Please enter a first name.");
		aForm.fname.focus();
		return false;
	}
	if (aForm.lastname.value == ""){
		alert("Please enter a last name.");
		aForm.lastname.focus();
		return false;
	}
	if (aForm.address1.value == ""){
		alert("Please enter an address.");
		aForm.address1.focus();
		return false;
	}
	if (aForm.city.value == ""){
		alert("Please enter a city.");
		aForm.city.focus();
		return false;
	}
	if (findObject('country'))
	{
		if (aForm.country[aForm.country.selectedIndex].value == 1)
		{
			if (aForm.state.value == "")
			{
				alert("Please enter a state.");
				aForm.state.focus();
				return false;
			}
		}
	}
	if (aForm.zip.value == ""){
		alert("Please enter a zip code.");
		aForm.zip.focus();
		return false;
	}
	if (aForm.BusinessPhone_number.value == ""){
		alert("Please enter a business phone number.");
		aForm.BusinessPhone_number.focus();
		return false;
	}
	return true;
}

function validateBuyer(){
	aForm = document.forms[0];
	
	if (aForm.fname.value == ""){
		alert("Please enter a first name.");
		aForm.firstname.focus();
		return false;
	}
	if (aForm.lastname.value == ""){
		alert("Please enter a last name.");
		aForm.lastname.focus();
		return false;
	}
	if (aForm.address1.value == ""){
		alert("Please enter an address.");
		aForm.address1.focus();
		return false;
	}
	if (aForm.city.value == ""){
		alert("Please enter a city.");
		aForm.city.focus();
		return false;
	}
	if (findObject('country'))
	{
		if (aForm.country[aForm.country.selectedIndex].value == 1)
		{
			if (aForm.state.value == ""){
				alert("Please enter a state.");
				aForm.state.focus();
				return false;
			}
		}
	}
	if (aForm.zip.value == ""){
		alert("Please enter a zip code.");
		aForm.zip.focus();
		return false;
	}
	if (aForm.BusinessPhone_number.value == ""){
		alert("Please enter a business phone number.");
		aForm.BusinessPhone_number.focus();
		return false;
	}
	return true;
}

function validateEmployee(){
	aForm = document.forms[0];
	
	if (aForm.email.value == ""){
		alert("Please enter an email address.");
		aForm.email.focus();
		return false;
	}
	if (aForm.fname.value == ""){
		alert("Please enter a first name.");
		aForm.fname.focus();
		return false;
	}
	if (aForm.lastname.value == ""){
		alert("Please enter a last name.");
		aForm.lastname.focus();
		return false;
	}
	if (aForm.address1.value == ""){
		alert("Please enter an address.");
		aForm.address1.focus();
		return false;
	}
	if (aForm.city.value == ""){
		alert("Please enter a city.");
		aForm.city.focus();
		return false;
	}
	if (findObject('country'))
	{
		if (aForm.country[aForm.country.selectedIndex].value == 1)
		{
			if (aForm.state.value == ""){
				alert("Please enter a state.");
				aForm.state.focus();
				return false;
			}
		}
	}
	if (aForm.zip.value == ""){
		alert("Please enter a zip code.");
		aForm.zip.focus();
		return false;
	}
	if (aForm.BusinessPhone_number.value == ""){
		alert("Please enter a business phone number.");
		aForm.BusinessPhone_number.focus();
		return false;
	}
	return true;
}

function validateClient(){
	aForm = document.forms[0];
	
	if (aForm.fname.value == ""){
		alert("Please enter a first name.");
		aForm.fname.focus();
		return false;
	}
	if (aForm.lastname.value == ""){
		alert("Please enter a last name.");
		aForm.lastname.focus();
		return false;
	}
	if (aForm.address1.value == ""){
		alert("Please enter an address.");
		aForm.address1.focus();
		return false;
	}
	if (aForm.city.value == ""){
		alert("Please enter a city.");
		aForm.city.focus();
		return false;
	}
	if (findObject('country'))
	{
		if (aForm.country[aForm.country.selectedIndex].value == 1)
		{
			if (aForm.state.value == ""){
				alert("Please enter a state.");
				aForm.state.focus();
				return false;
			}
		}
	}
	if (aForm.zip.value == ""){
		alert("Please enter a zip code.");
		aForm.zip.focus();
		return false;
	}
	if (aForm.BusinessPhone_number.value == ""){
		alert("Please enter a business phone number.");
		aForm.BusinessPhone_number.focus();
		return false;
	}
	return true;
}

function formatPhone(aField){
	
	if (aField.value.length < 1){
		return true;
	}
	
	if (aField.value == "(   )"){
		return true;
	}
	
	sNum = aField.value;
		
	if (Format(aField, "(###) ###-####")){
		return true;
	}
	else if (Format(aField, "### ###-####")){
		aField.value = "(" + sNum.substring(0,3) + ") " + sNum.substring(4,12);
		return true;
	}
	else if (Format(aField, "### ### ####")){
		aField.value = "(" + sNum.substring(0,3) + ") " + sNum.substring(4,7) + "-" + sNum.substring(8,12);
		return true;
	}
	else if (Format(aField, "###-###-####")){
		aField.value = "(" + sNum.substring(0,3) + ") " + sNum.substring(4,12);
		return true;
	}  
	else if (Format(aField, "###.###.####")){
		aField.value = "(" + sNum.substring(0,3) + ") " + sNum.substring(4,12);
		return true;
	}  
	else if (Format(aField, "##########")){
		aField.value = "(" + sNum.substring(0,3) + ") " + sNum.substring(3,6) + "-" + sNum.substring(6,10);
		return true;
	}
	else{
		alert("Please enter a valid phone number with areacode.");
		aField.focus();
		return false;
	} 
}

function formatZip(aField){
	
	if (aField.value.length < 1){
		return;
	}
	sZip = aField.value;
	
	if (Format(aField, "#####")){
		return;
	}
	else if (Format(aField, "#########")){
		aField.value = sZip.substring(0,5) + "-" + sZip.substring(5,9);
		return;
	}
	else if (Format(aField, "##### ####")){
		aField.value = sZip.substring(0,5) + "-" + sZip.substring(6,10);
		return;
	}
	else if (Format(aField, "#####-####")){
		return;
	}
	else{
		alert("Please enter a zip or zip+4.");
		aField.focus();
		return;
	}
}

function formatState(aField){
	
	if (aField.value.length < 1){
		return;
	}
	sSt = aField.value;
	
	if (Format(aField, "@@")){
		aField.value = sSt.toUpperCase();
		return;
	}
	else{
		alert("Please enter a valid state abbreviation.");
		aField.focus();
		return;
	}
}

function empRole(sEditType, sRole){
	
	var aForm = document.forms[0];
	var anEmp = aForm.employees;
	
	aField = findObject(sRole);
	aIdField = findObject(sRole + "_id");
	
	if (sEditType == "Remove"){
		
		aField.value = "";
		aIdField.value = "";
	}
	else{
		sEmp = anEmp[anEmp.selectedIndex].text;
		iEmp = anEmp[anEmp.selectedIndex].value;
		
		aField.value = sEmp;
		aIdField.value = iEmp;
	}	
}

function editImg(sType){
	aForm = document.forms[0];
	
	if (sType == "Remove"){
		var y = aForm.delimages.length;
		var i = aForm.images.selectedIndex;
	
		aForm.delimages.options[y] = new Option(aForm.images.options[i].text,aForm.images.options[i].value);
		aForm.images.options[i] = null;
	}
	else{
		y = aForm.images.length;
		var numSelected = aForm.delimages.length;
	
		for(i=numSelected-1; i>=0;i--){
			if (aForm.delimages.options[i].selected){
				aForm.images.options[y] = new Option(aForm.delimages.options[i].text,aForm.delimages.options[i].value);
				aForm.delimages.options[i] = null;
			}
		}	
	}
}

function selectDelImgs(){
	aForm = document.forms[0];
	
	//alert('1');
	//var anObj = findObject("delimages");	
	//alert('2');
	var imageList = '';
	//alert('3');
	//if (anObj == null){
	//	X=1;}
	//else{
	var anObj = aForm.delimages;
		for(i=0;i<anObj.length;i++){
			anObj.options[i].selected = true;
			imageList = imageList + ',' + anObj.options[i].value
		}
		aForm.delimageslist.value = imageList;
	//}
}

function editInterest(sType){
	aForm = document.forms[0];

	if (sType == "Remove"){
		var y = aForm.delproperties.length;
		var i = aForm.propertyid.selectedIndex;
	
		aForm.delproperties.options[y] = new Option(aForm.propertyid.options[i].text,aForm.propertyid.options[i].value);
		aForm.propertyid.options[i] = null;
	}
	else{
		y = aForm.propertyid.length;
		var numSelected = aForm.delproperties.length;
	
		for(i=numSelected-1; i>=0;i--){
			if (aForm.delproperties.options[i].selected){
				aForm.propertyid.options[y] = new Option(aForm.delproperties.options[i].text,aForm.delproperties.options[i].value);
				aForm.delproperties.options[i] = null;
			}
		}	
	}
}

function selectDelProps(){
	aForm = document.forms[0];
	
	var anObj = findObject("delproperties");	
	
	if (anObj == null){
		X=1;}
	else{
		for(i=0;i<anObj.length;i++){
			anObj.options[i].selected = true;
		}
	}
}

function checkItOut()
{
	//  Loop through every element on the form
	//  If you see something ending in _chk, snag the
	//  the fron part of it, that check box will
	//  check to see if the non-us checkbox is selected
	//  if it isn't then change the phone number to look
	//  like a us number

	var aLength = 0;
	var aName = "";
	var aExt = "";
	var aValue = "";
	var aBaseName = "";
	var x;
	var allTrue = true;
	var retFormat = true;
	
	for(var i = 1; i < aForm.length; i++)
	{
		aLength = aForm.elements[i].name.length
		aName = aForm.elements[i].name;
		aValue = aForm.elements[i].value;
		aExt = aName.substring(aLength - 4, aLength + 1)
		if (aExt == '_chk')
		{
			if (aForm.elements[i].checked == false)
			{
				aBaseName = aName.substring(0,aLength-4) + "_number";
				if (allTrue == true)
				{
					retFormat = formatPhone(eval('document.forms[0].' + aBaseName));
				}
				if (retFormat == false)
				{
					allTrue = false;
				}
			}
		}
	}
	if (allTrue == false)
	{
		return false;
	}
	else
	{
		return true;
	}
}

//// Date Functions

function formatTime(aTime){
	
	if (aTime.value.length == 0){
		return;
	}
	
	if ((! Format(aTime, "##:## PM")) && (! Format(aTime, "##:## AM"))){
		alert("Please enter the time in the following format 'hh:mm AM/PM'");
		aTime.focus();
		return;
	}
	sHr = aTime.value.substring(0,2);
	sMn = aTime.value.substring(3,5);
	
	if (eval(sHr) > 12){
		alert("Please enter a valid hour.");
		aTime.focus();
		return;
	}
	else if (eval(sMn) > 60){
		alert("Please enter a valid minute.");
		aTime.focus();
		return;
	}
}

function formatDate(aDate){
	
	if (aDate.value.length == 0){
		return;
	}
	aDate.value = reformatDate(aDate.value);
	
	if (! Format(aDate, "##/##/####")){
		alert("Please enter a valid date in the following format 'mm/dd/yyyy'.");		
		aDate.focus();
		return;
	}
	sMnth = aDate.value.substring(0,2);
	sDay = aDate.value.substring(3,5);
	sYr = aDate.value.substring(6,10);
		
	if (isValidDate(sMnth, sDay, sYr)){
		return;
	}
	else{
		aDate.focus();
	}
}

function reformatDate(sDate){
	var fDel = sDate.indexOf("/");
	var lDel = sDate.lastIndexOf("/");
	
	if (fDel < 0 )
		fDel = sDate.indexOf("-");
	if (fDel < 0)
		return sDate;
	if (lDel < 0 )
		lDel = sDate.lastIndexOf("-");
	if (lDel < 0)
		return sDate;
	
	sMnth = sDate.substring(0,fDel);
	if (sMnth.length == 1)
		sMnth = "0" + sMnth;
	
	sDay = sDate.substring(fDel+1,lDel);
	if (sDay.length == 1)
		sDay = "0" + sDay;
		
	sYr = sDate.substring(lDel+1,sDate.length);
	if (sYr.length == 2){
		if (eval(sYr) > eval("50")){
			sYr = "19" + sYr;}
		if (eval(sYr) <= eval("50")){
			sYr = "20" + sYr;}
	}
	
	return sMnth + "/" + sDay + "/" + sYr
}

function checkMonth(sMonth){
	var myMonth = sMonth;

	if (myMonth.length == 0)
		return false;
	
	if (eval(myMonth) < 1 || eval(myMonth) > 12)
	{
		alert("Please enter a valid month");
		return false;
	}
	return true;
}

function checkDay(sDay){
	var myDay = sDay;

	if (myDay.length == 0)
		return fasle;
	
	if (eval(myDay) < 1 || eval(myDay) > 31){
		alert("Please enter a valid Day");
		return false;
	}
	return true;
}

function checkYear(sYear){
	var myYear = sYear;

	if (myYear.length != 4){
		alert("Please enter a valid 4-digit Year");
		return false;
	}

	if (eval(myYear) < 1970)
	{
		alert("Please enter a valid 4-digit Year");
		return false;
	}
	return true;
}

function isValidDate(m, d, y){
	
	if (!checkMonth(m))
		return false;
	if (!checkDay(d))
		return false;
	if (!checkYear(y))
		return false;

	if (d > getDaysInMonth(m, y)){
		alert(m + "/" + d + "/" + y + " is not a valid date.");
		return false;
	}
	else{
		return true;
	}
}

function getDaysInMonth(month,year){
	var days;
	if (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12) 
		days=31;
	else if (month==4 || month==6 || month==9 || month==11) 
		days=30;
	else if (month==2)  {
		if (isLeapYear(year)){
			days=29;}
		else {
			days=28;}
	}
	return (days);
}


function isLeapYear (Year) {
	if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
		return (true);}
	else {
		return (false);}
}



