
// Returns true if the checkbox has at least one selected value.
function isCheckboxSelected(checkbox) {
	if (checkbox == null) {
		return false;
	}
	if (checkbox.length == undefined) {
		if (checkbox.checked == true) {
			return true;
		}
	} else {
		for (var i = 0; i < checkbox.length; i++) {
			if (checkbox[i].checked == true) {
				return true;
			}
		}
	}
	return false;
}

// Returns true if the textfield has a non-whitespace value.
function isTextEntered(textfield) { 
	return (!isWhitespace(textfield.value));
}

// Check whether string s is empty.
function isEmpty(s) { 
	return ((s == null) || (s.length == 0));
}

// Returns true if string s is empty or whitespace characters only.
function isWhitespace (s) {
	var whitespace = " \t\n\r";
   	var i;

    	// Is s empty?
    	if (isEmpty(s)) return true;

    	// Search through string's characters one by one
    	// until we find a non-whitespace character.
    	// When we do, return false; if we don't, return true.
    	for (i = 0; i < s.length; i++) {   
        	// Check that current character isn't whitespace.
        	var c = s.charAt(i);
        	if (whitespace.indexOf(c) == -1) return false;
    	}

    	// All characters are whitespace.
    	return true;
}

// This function calls verifyDate(). It seperates the date mm/dd/yyyy into 
// it's individual date components and then re-calls verifyDate() with the 
// three date parameters.

function isDateString(dateString) {
	var retVal = 0;
  	var slash1 = 0;     //character index of 1st slash
  	var slash2 = 0;     //character index of 2nd slash
  	var numSlashes = 0; //make sure there are two slashes
   
  	for (slash1; slash1 < dateString.length && numSlashes == 0; slash1++) {
     		if (dateString.charAt(slash1) == '/' || dateString.charAt(slash1) == '-') 
        		numSlashes++;
  	}
   
  	for (slash2 = slash1; slash2 < dateString.length && numSlashes == 1; slash2++) {
     		if (dateString.charAt(slash2) == '/' || dateString.charAt(slash2) == '-')
       		numSlashes++;
  	}
   
  	if (numSlashes == 2) {
    		//theDay = eval(dateString.substring(0, slash1 - 1));
    		//theMonth = eval(dateString.substring(slash1, slash2 - 1));
			theMonth = eval(dateString.substring(0, slash1 - 1));
    		theDay = eval(dateString.substring(slash1, slash2 - 1));
    		theYear = eval(dateString.substring(slash2, dateString.length));
    		retVal = isValidDate(theDay, theMonth, theYear);
  	} else 
    		return false;
	return retVal;
}

// 
// validates date parameters
// 
function isValidDate(day, month, year) {
	d = new Date(""+month+"/"+day+"/"+year);
            
      if (isNaN(d))
         return false;
      else {  
         	if ( (d.getDate() != (day)) || (d.getMonth() != (month-1)))
            	return false;
      }
      return true;
}
function validateInputField(actionName) 
	{
		var form = document.forms[actionName];
		var oldName = "";
		var newName = "";
		var strLength = 0;
		var isFormValid = false;
		var isFolderValid = false;
		
		if(actionName == 'rename')
			{
				if(formId != '') 
					{
						oldName = form.formName.value;
						strLength = oldName.length;
						isFormValid = true;
					} 
							
				if(folderId != '')
					{
						oldName = form.folderName.value;
						strLength = oldName.length;
						isFolderValid = true;
					}
			}	

		if(actionName == 'create_folder')
			{
				oldName = form.folderName.value;
				strLength = oldName.length;
				isFolderValid = true;
			}

		var i;
		for(i=0; i<strLength; i++) 
			{
				if((oldName.charAt(i) == '\'') || (oldName.charAt(i) == '\"') ||
					(oldName.charAt(i) == '#'))
					{
						newName = newName + "";
					} 
				else if(oldName.charAt(i) == '&')
					{ 
						newName = newName + "AND";
					}
				else
					{
						newName = newName + oldName.charAt(i);
					}
			}
				
		if(isFormValid)
			{
				form.formName.value = newName;
			}
				
		if(isFolderValid)
			{
				form.folderName.value = newName;
			}
	}

function StripSpaces(a)
{
   var i = 0;
   var b = "";
   while (i < a.length )
   {
      if(a.charAt(i) != " ")
      {
	 b += a.charAt(i);
      }
      i++;
   }
   return b;
}

function StripLeadingSpaces(a)
{
   var i = 0;
   var b = "";

	while((a.charAt(i) == " ") &&  (i < a.length ))
	{
		i++
	}
	
   while (i < a.length )
   {
	 b += a.charAt(i);
	 i++;
   }
   return b;
}

function RemoveDashes(elmin)
{
   var i = 0;
   var elmout = "";

   while (i < elmin.length )
   {
      if(elmin.charAt(i) != "-")
	      {	elmout += elmin.charAt(i);     }
	  i++;
   }

   return elmout;
   
} /* end of removedashes */

// This function makes sure field contains only alpha and numeric values
function AlphaNumeric(u)
{
	var i = 0;	RC = true;	u = u.toUpperCase();
	while  (RC && (i < u.length))
	{	if ((! (u.charAt(i) >= "A" && u.charAt(i) <= "Z" )) &&
			(! (u.charAt(i) >= "0" &&  u.charAt(i) <= "9")))
		{	RC=false;		}
		i++;
	}
	return RC;
}

function IsValidEmail(emailaddr)
{	
	var i = 0;
	var hasAtSign = 0;
	var ValidAddr = false;
	
	
	if (((emailaddr.value.indexOf("@") != "-1") &&
		(emailaddr.value.indexOf(".") != "-1") &&
		(emailaddr.value.indexOf(" ") == "-1")) == true)
		{ 	ValidAddr = true;	}
	
	if (ValidAddr)
	{	while (i < emailaddr.value.length)
		{	if (emailaddr.value.charAt(i) == "@")
			{	hasAtSign++;	}
			i++;
		}
	}
	
	if (hasAtSign != 1)
		{	ValidAddr = false;	return ValidAddr; }

	eml = StripSpaces(emailaddr.value);
	if ((eml.charAt(eml.length-1) == "@") ||
		(eml.charAt(eml.length-1) == "."))
		{	ValidAddr = false;  return ValidAddr; }


	/* Begin with the coarse pattern to simply break up user@domain into
	different pieces that are easy to analyze. */
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|cc|us|bz|tv|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var matchArray=emailaddr.value.match(emailPat);

	/* Too many/few @'s or something; basically, this address doesn't
	even fit the general mold of a valid e-mail address. */
	if (matchArray==null) 
		{	ValidAddr = false;  return ValidAddr; }
		
	// make sure something is entered after @ sign and on is at least a "."
	var domExten=emailaddr.value.split("@");
	if (domExten[1].length < 2)
		{	ValidAddr = false;  return ValidAddr; }
		
	// checking for a "." this time.
	hasAtSign=0; var i = 0;
	if (ValidAddr)
	{	while (i < domExten[1].length)
		{	if (domExten[1].charAt(i) == ".")
			{	hasAtSign++;	}
			i++;
		}
	}
	// checking for a "." this time. must have at least one "."
	if (hasAtSign == 0)
		{	ValidAddr = false;	return ValidAddr; }
		
	// check for two dots in a row
	var emailtwodots=/\.\./;
	var matchArray=emailaddr.value.match(emailtwodots);
	/* two dots in a row, not valid. */
	if (matchArray!=null) 
		{	ValidAddr = false;  return ValidAddr; }
	
	
	// check for two dots in a row
	emailtwodots=/@\./;
	var matchArray=emailaddr.value.match(emailtwodots);
	/* two dots in a row, not valid. */
	if (matchArray!=null) 
		{	ValidAddr = false;  return ValidAddr; }

	
	
	return ValidAddr;
	
} /* end IsValidEmail */

function IsValidChar(elm) 
{
	var elmstr = elm.value + "";

	for (var i = 0; i < elmstr.length; i++) 
	{
			if (elmstr.charAt(i) == ";" ||
      	    	elmstr.charAt(i) == "&")
					  return false;
	}
	return true;
}
