
 
function CheckForm(mf)
{
	var reqditems = mf.ReqdFields.value;
	var result = reqditems.split(",");
	var alertMsg = "Required fields are not filled in.    ";
	var alertEmailMsg = "Email Address required or not in correct format.    ";
	var blnFlag = true;
	var strfields = ""
	var rootFieldName = "";
	var alertMessage = ""; 
	var tmpFormID = mf.tmpFormID.value;
	var objFirstElement = "";

	for(i=0;i<mf.length - 5; ++i)
	{	
		if(mf.elements[i].name != rootFieldName)
		{
			strfields += i + ",";
			rootFieldName = mf.elements[i].name;
		}
	}

	var arrElements = strfields.split(",");


	for(i=0;i<result.length; ++i)
	{

		var indexItem = result[i];
		var strLabel = "";
		objElement = mf.elements[arrElements[indexItem.replace("*","").replace("^","")]];
		strLabel = objElement.id.replace(/_/gi," ");
		//alert(strLabel);

		if(indexItem.indexOf("*")>=0 || indexItem.indexOf("^")>=0)
		{	
			if(indexItem.indexOf("*")>=0)
			{
				if(objElement.value == "")
				{
				    if(blnFlag == true)
				    {   objFirstElement = objElement;
	    			    blnFlag = false;
	    			}
					alertMessage += strLabel + " required.   \n";
				}
				else
				{	if(!isValidEmailReqd(objElement.value, true))
					{
	    			    if(blnFlag == true)
    				    {   objFirstElement = objElement;
    	    			    blnFlag = false;
    				    }
						alertMessage += "Valid " + strLabel + " required.   \n";
					}
				}
			}
			else
			{	
				if(!isValidEmailReqd(objElement.value, false))
				{
				    if(blnFlag == true)
				    {   objFirstElement = objElement;
   	    			    blnFlag = false;
	    			}
					alertMessage += "Valid " + strLabel + " required.   \n";
				}
			}
		}
		else
		{
			if(objElement.type == "checkbox" || objElement.type == "radio")
			{
				//alert(objElement.id);
				var formItem = document.getElementsByName(objElement.name)
				var blnChk = false;
				for(j=0; j<formItem.length; ++j)
				{	if(formItem[j].checked == true)
					{ blnChk = true; }
				}
				if(blnChk == false)
				{
				    if(blnFlag == true)
				    {   objFirstElement = objElement;
	    			    blnFlag = false;
	    			}
					alertMessage += strLabel + " required.   \n";
				}
			}
			else
			{	if(objElement.value == "")
				{
				    if(blnFlag == true)
				    {   objFirstElement = objElement;
	    			    blnFlag = false;
	    			}
					alertMessage += strLabel + " required.   \n";
				}
			}
		}
	}
	if(!blnFlag)
	{
	    objFirstElement.focus();
		alert(alertMessage);
		return false;
	}
	
}

function UpdateForm(mf,elementID)
{
	var val = mf.Reqd.value + "," + elementID;
	mf.Reqd.value = val;
	return;
}


function isValidEmailReqd(emailid, blnFlag ) {
if (emailid == "" && !blnFlag){
	return true; // because  it is not optional 
}
else{
		var eid=emailid;

		if (eid.indexOf(' ')!= -1){
			return false ; // no spaces
		} 
		if (eid.length < 6 ){
			return false ; // at least j.a@in
		}
		at=eid.indexOf('@', 0); //check from first position ---- 
		if ( at == -1 || at == 0){ //should not be at first place
			return false ;
		}else{
				var at1=eid.indexOf('@', (at + 1)); //looking for another at one place ahead
				if ( at1 == -1 ) // ie only one at is there
				{
					var dot=eid.indexOf('.',(at + 1));//looking for just next value
					if(dot == (at + 1)|| dot== -1){ //if dot is not there or in the next place
						return false ;	
						}
					else{
						 if ( (dot + 2 ) < eid.length )
							return true ;
						 else{
							return false ;
						}
					}
				}
				else // two @ are there
				{
					return false;
				}
			}
	alert("Email not in correct format  ");
	return false ;
	}		
}



/*
		if(objElement.type == "radio")
		{	var formItem = document.getElementsByName(objElement.name)
			var blnChk = false;
			for(j=0; j<formItem.length; ++j)
			{	if(formItem[j].checked == true)
				{ blnChk = true; }
			}
			if(blnChk == false)
			{	blnFlag = false;
				objElement.focus();
				alert(alertMsg);
				return false;
			}
		}
*/