
//-----------------
function isEmailAddr(email) {
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0) {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}
function validEmailId(formField,fieldLabel) {
	var result = true;
	
	if(formField.value=="")
  {
    alert("Enter your email id");
	formField.focus();
    result=false;
  }
   else 
  {
if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(formField.value))) 
  {
    alert("The email you entered is not a valid email address.");
	formField.focus();
	formField.select();
     result= false;
  }
}
	return result;
}


function fieldEmpty(formField) {
	var result = true;
	
	if (formField.value == ""){
		result = false;
	}	
	return result;
}

function validSelection(formField,fieldLabel){
	var result = true;
	
	if (formField.options[0].selected) {
		alert('Please select a value for the "' + fieldLabel +'" field.');
		result = false;
	}	
	return result;
}

function validCheckbox(formField,fieldLabel) {
	var result = true;
	
	if (! formField.checked) {
		alert('Please select the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}	
	return result;
}

//also work for list of radiobuttons look that at least one should be selected.
function validRequired(formField,fieldLabel){
	var result = true;
	
	if (formField.value == "") {
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}	
	return result;
}

function allDigits(str) {
	return inValidCharSet(str,"0123456789");
}

function allFloat(str) {
	return inValidCharSet(str,"0123456789.");
}

function inValidCharSet(str,charset){
	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)	{
			result = false;
			break;
		}
	
	return result;
}

function validEmail(formField,fieldLabel,required) {
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (required)	{
		if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )	{
			alert("Please enter a complete email address in the form: yourname@yourdomain.com");
			formField.focus();
			result = false;
		}
	}
   
  return result;
}

function validNum(formField,fieldLabel,required) {
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result)	{
 		if (!allDigits(formField.value)) {
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();
			formField.select();		
			result = false;
		}
	} 
	return result;
}


function validInt(formField,fieldLabel,required) {
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)	{
 		var num = parseInt(formField.value);
 		if (isNaN(num))	{
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.select();
			formField.focus();		
			result = false;
		}
	} 
	return result;
}


function validDate(formField,fieldLabel,required) {
	var result = true;
	if (required && !validRequired(formField,fieldLabel)) 
		result = false;

	if (result)	{
 		if (formField.value){
			var elems = formField.value.split("/");
 		
 			result = (elems.length == 3); // should be three components
 		
 			if (result)	{
 				var day = parseInt(elems[0]);
  			var month = parseInt(elems[1]);
 				var year = parseInt(elems[2]);
				result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && (day > 0) && (day < 32) &&
					 allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
 			}
		}

  	if (!result) {
 			alert('Please enter a date in the format DD/MM/YYYY for the "' + fieldLabel +'" field.');
			formField.focus();		
		}
	} 
	return result;
}

function validRadioSelected(formField,fieldLabel) {
	var radio_choice = false;
	for (counter = 0; counter < formField.length; counter++) {
		if (formField[counter].checked)
			radio_choice = true; 
	}

	if (!radio_choice) {
		alert('Please select a option for "' + fieldLabel + '" field.');
	} 
	return radio_choice;
}

function validFloat(formField,fieldLabel, required) {
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result)	{
 		if (!allFloat(formField.value)) {
 			alert('Please enter a number for the "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	return result;
}
//use dropdownlist field here
function isDate(formFieldD,formFieldM,formFieldY)
{
	var yy,mm,dd;
	var im,id,iy;
	var present_date = new Date();
	yy = 1900 + present_date.getYear();
	if (yy > 3000)
	{
		yy = yy - 1900;
	}
	mm = present_date.getMonth();
	dd = present_date.getDate();
	im = formFieldM.selectedIndex;
	id = formFieldD.selectedIndex;
	iy = formFieldY.selectedIndex;
	var entered_month = formFieldM.options[im].value;
	var invalid_month = formFieldM.options[im].value - 1; 
	var entered_day = formFieldD.options[id].value; 
	var entered_year = formFieldY.options[iy].value; 
	if ( (entered_day == 0) || (entered_month == 0) || (entered_year == 0) )
	{
		alert("Please enter your birhtday");
		return false;
	}
	if ( is_greater_date(entered_year,entered_month,entered_day,yy,mm,dd) && is_valid_day(invalid_month,entered_day,entered_year) )
	{
		return true; 
	}
	return false;
}

function is_greater_date(entered_year,entered_month,entered_day,yy,mm,dd)
{
	if (entered_year > yy)
	{
		alert("The birthday field is entered incorrectly. The year entered exceeds the current year.");
		return false;
	}
	if (entered_year == yy)
	{
		if (entered_month > mm)
		{
			alert("The birthday field is entered incorrectly.");
			return false;
		}
		if (entered_month == mm)
		{
			if (entered_day > dd)
			{
				alert("The birthday field is entered incorrectly.");
				return false;
			}
		}
	}
	return true;
}

function is_valid_day(entered_month,entered_day,entered_year)
{
	if ((entered_year % 4) == 0) 
	{ 
		var days_in_month = "312931303130313130313031";
 	}
 	else 
	{ 
		var days_in_month = "312831303130313130313031";
 	} 
	var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	if (entered_month != -1)
	{
		if (entered_day > days_in_month.substring(2*entered_month,2*entered_month+2))
		{
			alert ("The birthday field is entered wrongly (the day field value exceeds the number of days for the month entered).");
			return false;
		}
	}
	return true;
}


// Login Validator
function isName() 
{
	var str = document.forms[0].login.value;

	if (str == "")
	{
		if(document.forms[0].tlogin){
			document.forms[0].login.value = document.forms[0].tlogin.value;
			str = document.forms[0].tlogin.value;
		}
		else{
			alert("\nThe Login Name field is blank .\n\nPlease re-enter your Login Name.")
			document.forms[0].login.focus();
			return false;
		}
	}
	if((str.substring(0,1)<"a" || str.substring(0,1)>"z") && (str.substring(0,1)<"A" || str.substring(0,1)>"Z"))
	{
		alert("The Login Name should begin with an alphabetic character.");
		return false;
	}
	for (var i = 1; i < str.length; i++) 
	{
		var ch = str.substring(i, i + 1);
		if ( ((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && (ch < "0" || "9" < ch) && (ch != '_') && (ch != '.')) 
		{
			alert("\nThe Login Name field  accepts letters,numbers & underscore.\n\nPlease re-enter your Login Name.");
			document.forms[0].login.select();
			document.forms[0].login.focus();
			return false;
		}
	}
	return true;
}
//check description
function isDescription(formField,fieldLabel,fieldLength) 
{

	if(!validRequiredChar(formField,fieldLabel))
		return false;
		
	if(!isLength(formField,fieldLabel))
		return false;
	
	return true;
}
//confirm
function isSame(formField1,formField2,fieldLabel)
{
if(formField1.value!=formField2.value)
{
	alert('"' + fieldLabel +'" does not match with New.');
			formField2.select();
			formField2.focus();
			return false;
	}
return true;
}
//valid required name no digit
function validRequiredChar(formField,fieldLabel)
{
	if(!validRequired(formField,fieldLabel))
		return false;
		
		
	var str = formField.value;
	
	for (var i = 1; i < str.length; i++) 
	{
		var ch = str.substring(i, i + 1);
		if ( (ch > "0" && "9" > ch) ) 
		{
			alert('"' + fieldLabel +'" can not contain Digit.');
			formField.select();
			formField.focus();
			return false;
		}
		if((ch=="@"))
		{
			alert('"' + fieldLabel +'" can not contain E-mail.');
			formField.select();
			formField.focus();
			return false;
		}
	}
	return true;
		
}
//length can not be less than this
function isLength(formField,fieldLabel)
{

	var str = formField.value;

	if(str.length<100)
	{
	alert('"' + fieldLabel +'" should atleast contain 100 characters.');
			formField.select();
			formField.focus();
			return false;
	}
	return true;
}
//to allow to select only either first or multiple items from listbox
//where first is doesn't matter.
		function lbValidation(frmField)
		{
		
		if(frmField.options[frmField.selectedIndex].text=="Doesn't Matter")
		{
		//alert("selected");
		for(var i=1;i<frmField.length;i++)
		{
		frmField.options[i].selected=false;
		}
		}
		else
			frmField.options[0].selected=false;
		
		
		
		}
//age diff limit and reverse items are in to and from nani and moti

	function Max_Diff(frmField1,frmField2,fieldLabel,diff1){

	var diff = parseInt(frmField2.options[frmField2.selectedIndex].text) - parseInt(frmField1.options[frmField1.selectedIndex].text);
	if(diff > diff1) {
		alert('"' + fieldLabel +'" range exceeds "' + diff1 +'" .Change "' + fieldLabel +'" range or use Advanced Search');
				return false;
	}
	else if(parseInt(frmField1.options[frmField1.selectedIndex].text) > parseInt(frmField2.options[frmField2.selectedIndex].text)){
		alert('Invalid From & To "' + fieldLabel +'"');
				return false;
	}
	else {
		return true;
	}

}


//No of max item to select in list.

function Max_lbselect(frmField,fieldLabel,max)
{
		var selected=0;

		for(var i=1;i<frmField.length;i++)
		{
			if(frmField.options[i].selected==true)
				selected=selected+1;
		}
		if(selected > max)
		{
			alert('You can not select more than "' + max +'" items from "' + fieldLabel +'" ')
				return false;
		}
		return true;
	
}
