var endl = "\n";

function ErrorObj (isOk) {

	if (isOk == true) 
	   this.isOk = true;
	else
	   this.isOk = false;

	this.msg = "";
}

function verifyURL (myURL) {

	var re = new RegExp ("^http://.*");
	var re3 = new RegExp("\\.{2,}");
	var re2 = new RegExp ("\\.{1}");
	var whiteSpace = new RegExp("\\s");

	var err = new ErrorObj();

	err.isOk = false;

	myURL = trim(myURL);

	if (myURL != null && myURL != "") {

		if (myURL.search(re) != -1) 
			err.isOk = true;
		else {
			myURL = "http://" + myURL;		
		
			if (myURL.search(re) != -1)
				err.isOk = true;
			else
				err.isOk = false;
		}
	
		if (err.isOk)
			if (myURL.search(whiteSpace) != -1)
				err.isOk = false;

			//  else if (myURL.search(re2) == -1)
			// 	err.isOk = false;

			else if (myURL.search(re3) != -1)
				err.isOk = false;
	} else
		err.isOk = true;

	err.msg = "* \"" + myURL + "\" is not a valid URL format"; 
	return err;
}


function verifyURLNoErr (myURL) {

	var re = new RegExp ("^http://.*");
	var re3 = new RegExp("\\.{2,}");
	var re2 = new RegExp ("\\.{1}");
	var whiteSpace = new RegExp("\\s");
	var isOK = false;

	myURL = trim(myURL);

	if (myURL != null && myURL != "") {

		if (myURL.search(re) != -1) {
			isOk = true;
		}
		else {
		    isOk = false;
		}
	

		if (isOk) {
		    if (myURL.search(whiteSpace) != -1)
			isOk = false;

		    //  else if (myURL.search(re2) == -1)
		    // 	err.isOk = false;

		    else if (myURL.search(re3) != -1)
			isOk = false;
		}
	} else
		isOk = false;

	return isOk;
}



function verifyDateErr (field) {

	var date = field.value;
	var dateArray = date.split("/");
	var err = new ErrorObj(true);
	var theDate = new Date(date);

	var d1 = new String(theDate.getDate());
	var zeros = new RegExp("0");

	var tmp = new String(dateArray[1])
	tmp = tmp.replace(zeros, "");

	var d2 = new RegExp(tmp);
	
	
	if (date != null && date != "") { 

	d1 = d1.replace(zeros, "");
	
	if (d1.search(d2) == -1) {
		err.msg = date + " is not a valid date";
		err.isOk = false;
	}	

	    else if (dateArray.length != 3) {
	       err.msg = "Date format incorrect.\nPlease re-enter your date as MM/DD/YYYY.";
	       err.isOk = false;
	   }
	   else if ((dateArray[0] < 1) || (dateArray[0] > 12)) {
		   err.msg = "You entered a date that does not exist.\nPlease enter a valid date \(MM/DD/YYYY\).";
		 err.isOk = false;
	    }
	   else if ((dateArray[1] < 1) || (dateArray[1] > 31)) {
		   err.msg = "You entered a date that does not exist.\nPlease enter a valid date \(MM/DD/YYYY\).";
	 	   err.isOk = false;
	   }
	   else if (dateArray[2].length != 4)  {
		   err.msg = "You entered a year that is not Y2K compliant.\nPlease enter a 4-digit year \(MM/DD/YYYY\).";
		   err.isOk = false;
	   }
	}
	
	if (!err.isOk) {
		//eval ("document.forms[0]." + field.name + ".value = \"\";");
      eval ("self.document.forms[0]." + field.name + ".focus();");
      eval ("self.document.forms[0]." + field.name + ".select();");
	}
   
  return err;

}


function isMenuSelected (field) {
   
   // Usage: isSelected(field_object)
   // Example:  if (isSelected(document.forms[0].selectField)) . . .

  if (field.selectedIndex == -1)
     return false;   
  else
     return true;
}

function select_radio(radioGroup, defaultValue) {

   var theLength = radioGroup.length;

   if (theLength == null)
      radioGroup.checked = true;
   else {
      for (var i = 0; i < radioGroup.selected.length; i++)
         if (radioGroup.selected[i].value == defaultValue)
            radioGroup.selected[i].checked = true;
   }

}


function getSelectedValue (theField) {
   var retval;
   var myCheckBox = false;
   var numElements = 0;
   var isMulti = false;
   // Usage: if (verifySelected(msg)) . . .
   // Returns boolean

   if (theField == null)
      return false;

   myCheckBox = theField.checked;   

   if (myCheckBox)
      retval = myCheckBox.value;

   else {
   	for (var i = 0; i < theField.length; i++) 

         if (theField[i].checked == true) {
	     retval = theField[i].value;
	     break;
	 }
   }

   return retval;
}


function clearSelect(select) {

	var mySelect;
	eval ("mySelect = theForm." + select);

	for (var i=0; i < mySelect.length; i++)
		mySelect.options[i].selected = false;
}


function trimL(str) {
	var tmp_str = "";
	var blank = true;
	var i = 0; j = 0; 

	while (blank && (i< str.length)) {
		if (str.charAt(i) == " ")
			i++;
		else blank = false;
	}
	
	if (!blank) {
			tmp_str = str.substring(i, str.length);
	}

	return tmp_str; 
}

function trimR(str) {
	var tmp_str = "";
	var blank = true;
	var i = str.length - 1;
	
	while (blank && i >= 0) {
 		if (str.charAt(i) == " ")
			i--;
		else blank = false;
	}
	
	if (!blank) {
			tmp_str = str.substring(0, i+1);
	}
		
	return tmp_str;
}

function trim(str) {
	return(trimR(trimL(str)));
}

function isNumber(field) {

   var re = new RegExp("\\D");
   var myField = field;
   var isOk = true;

   if (myField.search(re) != -1) {
	isOk = false;
	//alert ("isNumber: " + isOk);
   }

   return isOk;
}

function verifyNonBlankField (text) {

	var isOk = true;

	if ((trim(text)).length == 0) {
		isOk = false;
	}
	return isOk;
}

function verifyNonBlankField_withAlert (fieldName, message) {

// fieldName = document.FormName.FieldName
// Message = the error message to be displayed.

	var isOk = true;
	text= fieldName.value;

	if ((trim(text)).length == 0) 
	{
		alert(message);
		fieldName.focus();
 		fieldName.select();
		isOk = false;
	}
	return isOk;
}


function getWindowManager() {

   var theWM = top.windowManager;

   return theWM;

}

function setVar(name, value, to_expire) {
   var today = new Date()
   var expires = new Date()
 
   if (to_expire == null) {
      // Expires one (1) day from now
      expires.setTime(today.getTime() + 1000*60*60*24);
   } else
      expires.setTime(today.getTime() + 1000*60*60*24*to_expire);

   self.setCookie(name, value, expires);
}

function getVar(name) {
  return self.getCookie(name);
}

function getCookie(Name) {
   var search = Name + "="
   if (document.cookie.length > 0) { // if there are any cookies
      offset = document.cookie.indexOf(search) 
      if (offset != -1) { // if cookie exists 
         offset += search.length 
         // set index of beginning of value
         end = document.cookie.indexOf(";", offset) 
         // set index of end of cookie value
         if (end == -1) 
            end = document.cookie.length
         return unescape(document.cookie.substring(offset, end))
      } 
   }
}

function setCookie(name, value, expire) {
   document.cookie = name + "=" + escape(value)
   + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()))
}



// Sets a named field value to 'true' or 'false' based on selection of a checkbox
function setBoolean(checkboxField, namedField) {
	if (checkboxField.checked) {	
		namedField.value = 'true';
	} else {
		namedField.value = 'false';
	}
}


