function RequiredField(id)
{
      obj = document.getElementById(id);
	  
      spErr = document.getElementById("spError_" + id);
      
      if(obj != null)
      {
            if(obj.value == "")
            {
                  if(spErr == null)
                        obj.parentNode.innerHTML += "&nbsp;<span id=\"spError_" + id + "\" style=\"color:Red\">Required field</span>";
                    else
                        spErr.style.display = "inline";
                        
                  obj.focus();
                        
                  return false;
            }
            else
            {
              if(spErr != null)
                  spErr.style.display = "none";
                  
              return true;
            }
      }
}

function RequiredSameValue(id1, id2)
{
      obj1 = document.getElementById(id1);
      obj2 = document.getElementById(id2);
      
      spErr1 = document.getElementById("spError_" + id1 + "_" + id2);
      
      if(obj1 != null && obj2 != null)
      {
            if(obj1.value != obj2.value)
            {
                  if(spErr1 == null)
                        obj1.parentNode.innerHTML += "&nbsp;<span id=\"spError_" + id1 + "_" + id2 + "\" style=\"color:Red\">Passwords must match</span>";
                    else
                        spErr1.style.display = "inline";
                  
                  obj1.focus();
                  
                  return false;
            }
            else
            {
              if(spErr1 != null)
                  spErr1.style.display = "none";
                  
              return true;
            }
      }
}


function Redirect() 
{
    setTimeout("location.href='index.php'", 8000);
}

function RequiredEmail(id)
{
      eobj = document.getElementById(id);
      spErr2 = document.getElementById("spEmailError_" + id);
      
      if(eobj != null)
      {
            if(eobj.value.indexOf(".") < 0 ||  eobj.value.indexOf("@") < 0)
            {
                  if(spErr2 == null)
                        eobj.parentNode.innerHTML += "&nbsp;<span id=\"spEmailError_" + id + "\" style=\"color:Red\">Enter a valid email</span>";
                    else
                        spErr2.style.display = "inline";
                        
                  eobj.focus();
                        
                  return false;
            }
            else
            {
              if(spErr2 != null)
                  spErr2.style.display = "none";
                  
              return true;
            }
      }
}


function isLengthBetween(str, min, max)
{
  return (str.length >= min)&&(str.length <= max);
}


function RequireListSelection(id, excludeValue)
{
      obj = document.getElementById(id);
      spErr = document.getElementById("spError_" + id);
	  bSelected = false;
      
    if(obj != null)
    {
		for (nIndex=0; nIndex < obj.options.length; nIndex++)
		{
			if (obj.options[nIndex].value != excludeValue)
			{
				if (obj.options[nIndex].selected)
				{
					bSelected = true;
					break;
				}
			}
		}
	}
			
	if (!bSelected)
	{
		  if(spErr == null)
				obj.parentNode.innerHTML += "&nbsp;<span id=\"spError_" + id + "\" style=\"color:Red\">Required field</span>";
			else
				spErr.style.display = "inline";
				
		  //obj.focus();
				
		  return false;
	}
	else
	{
	  if(spErr != null)
		  spErr.style.display = "none";
		  
	  return true;
	}

}

function SetSelfFormAction(frm)
{
      var loc = new String(document.location.href);
      frm.action = loc;
}

function IsValidTime(timeStr)
{
	// Checks if time is in HH:MM:SS AM/PM format.
	// The seconds and AM/PM are optional.
	var timePat = /^(\d{1,2}).(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;
	
	var matchArray = timeStr.match(timePat);
	if (matchArray == null) 
	{
		/*alert("Time is not in a valid format.");*/
		return false;
	}
	
	hour = matchArray[1];
	minute = matchArray[2];
	second = matchArray[4];
	ampm = matchArray[6];
	
	if (second=="") { second = null; }
	if (ampm=="") { ampm = null }
	
	if (hour < 0  || hour > 23) 
	{
		/*alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");*/
		return false;
	}
	
	if (minute<0 || minute > 59) 
	{
		//alert ("Minute must be between 0 and 59.");*/
		return false;
	}
	
	if (second != null && (second < 0 || second > 59)) 
	{
		//alert ("Second must be between 0 and 59.");
		return false;
	}
	
	return true;
}

function IsValidDate(dateStr)
{
	var datePat = /^(\d{2})\/(\d{2})\/(\d{4})$/;
	var matchArray = dateStr.match(datePat);
	
	if (matchArray == null) 
		return false;
		
	var day = parseInt(matchArray[1], 10);
	var month = parseInt(matchArray[2], 10);
	var year = parseInt(matchArray[3], 10);
	
	//var days = new Array();
	var days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	
	
	if (month < 1 || month > 12)
		return false;
	
	if (month == 2 && IsLeapYear(year))
	{
		if (day > days[month-1] + 1)
			return false;
	}
	else
	{
		if (day > days[month-1])
			return false;
	}
	
	return true;
}

function IsLeapYear(year)
{
	if ( (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0) )
		return true;
	else
		return false;
}

function isEmail(str)
{
   var regex = /^[-_.a-z0-9]+@(([-_a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;

	return regex.test(str);
}

function IsNumeric(str)
{
   // var regex = /^\d+$/;
   var regex = /^\d*\.?\d+$/;
   return regex.test(str);
}

function isInteger(str)
{
	var regex = /^-?\d+$/;
	return regex.test(str);
}

function IsAlphaNumeric(str)
{
   var regex = /^\w+$/;
   return regex.test(str);
}

function IsHyperlink(str)
{
	var regex = /^(https?:\/\/)?(\w+\.\w+)?(\.\w{2,3})?(\.\w{2,3}\.\w{2})?$/;
	return regex.test(str);
}
