// Creation date: 12-May-02
// Programmer: Imran Sikander

function ErrorReport(MsgArea,SpMsg,Msg){
	if(SpMsg==""){
		if(MsgArea==""){ 
			alert(Msg);}
		else{
			document.getElementById(MsgArea).innerHTML=Msg;}
	}
	else{
		if(MsgArea==""){ 
			alert(SpMsg);}
		else{
			document.getElementById(MsgArea).innerHTML=SpMsg;}
	}
}

function MV(FormName,InputType,Name,Desc,ValidationType,SpMsg,MsgArea){
	var spaces = new RegExp(" ");	//0
	var beg_spaces = new RegExp("^ ");	//1
	var htmltags=new RegExp("<(.|\n)*>");	//2
	var emailPattern=new RegExp("(.+)(\@)(.+)");	//3
	var digit=new RegExp("\d");	//4
	var charPattern=new RegExp("[a-zA-Z]");	//5
	var datePattern=new RegExp("[0-9]+[/-]+[0-9]+[/-]+[0-9][0-9][0-9]?[0-9]?$");	//6
	
	switch (InputType){
		case "Text" :
			for(i=0;i<ValidationType.length;i++){
				Code=ValidationType.substr(i,1);
				switch (Code){
					case "0":// No Spaces
						if (spaces.test(eval("document."+FormName+".elements[\""+Name+"\"].value"))==true) {ErrorReport(MsgArea,SpMsg,"You have not entered anything for the required field \"" + Desc + "\""); return 1;}else{ErrorReport(MsgArea,"","&nbsp;");}
						break;
					case "1":// No Space in begining
						if (beg_spaces.test(eval("document."+FormName+".elements[\""+Name+"\"].value"))==true) {ErrorReport(MsgArea,SpMsg,"You cannot enter any spaces in the begining of  \"" + Desc + "\""); return 1;}else{ErrorReport(MsgArea,"","&nbsp;");}
						break;
					case "2":// No HTML
						if (htmltags.test(eval("document."+FormName+".elements[\""+Name+"\"].value"))==true) {ErrorReport(MsgArea,SpMsg,"You cannot enter any HTML tags in the \"" + Desc + "\""); return 1;}else{ErrorReport(MsgArea,"","&nbsp;");}
						break;
					case "4"://NoDigit
						if (digit.test(eval("document."+FormName+".elements[\""+Name+"\"].value"))==true) {ErrorReport(MsgArea,SpMsg,Desc + " field can only contain alphabets."); return 1;}else{ErrorReport(MsgArea,"","&nbsp;");}
						break;
					case "3":// EMAIL Only
						if (emailPattern.test(eval("document."+FormName+".elements[\""+Name+"\"].value"))==false) {ErrorReport(MsgArea,SpMsg,"Please Enter a valid Email in the  \"" + Desc + "\""); return 1;}else{ErrorReport(MsgArea,"","&nbsp;");}
						break;
					case "5":// No Characters
						if (charPattern.test(eval("document."+FormName+".elements[\""+Name+"\"].value"))==true) {ErrorReport(MsgArea,SpMsg,Desc + " field can only be numbers."); return 1;}else{ErrorReport(MsgArea,"","&nbsp;");}
						break;
					case "6":// Date Only
						if (datePattern.test(eval("document."+FormName+".elements[\""+Name+"\"].value"))==false) {ErrorReport(MsgArea,SpMsg,Desc + " field contains an invalid date."); return 1;}else{ErrorReport(MsgArea,"","&nbsp;");}
						break;
					case "7":// 0 Length Check
						if (eval("document."+FormName+".elements[\""+Name+"\"].value.length")==0) {ErrorReport(MsgArea,SpMsg,Desc + " field contains no Data."); return 1;}else{ErrorReport(MsgArea,"","&nbsp;");}
						break;
					default:
						ErrorReport(MsgArea,SpMsg,"Error in Code:Unidentified Validation Type");
						return 1;
				}
			}
			break;
		case "Radio":
			var Flag=false;
			for(i=0;i<ValidationType;i++){
				if (eval("document."+FormName+"."+Name+"\["+i+"\].checked"))Flag=true;
			}
			if (!Flag) {
				ErrorReport(MsgArea,SpMsg,"No Selection For "+Desc);return 1;	
			}else{ErrorReport(MsgArea,"","&nbsp;");}
			break;			
		case "Combo":
			if (eval("document."+FormName+"."+Name+".options\["+ValidationType+"\].selected")) {
			ErrorReport(MsgArea,SpMsg,"Please Choose "+Desc);return 1;
			return 1;}else{ErrorReport(MsgArea,"","&nbsp;");}
			break;		
		case "MultiCombo":
			var Flag=false;
			for(i=0;i<ValidationType;i++){
				if (eval("document."+FormName+"."+Name+".options\["+i+"\].selected"))Flag=true;
			}
			if (!Flag) {
				ErrorReport(MsgArea,SpMsg,"Please Choose "+Desc);return 1;
			}else{ErrorReport(MsgArea,"","&nbsp;");}
			break;
		case "Check":
			var Flag=false;
			if (eval("document."+FormName+"."+Name+".checked"))Flag=true;
			if (!Flag) {
				ErrorReport(MsgArea,SpMsg,"Please Select  "+Desc);return 1;
			}else{ErrorReport(MsgArea,"","&nbsp;");}
			break;			
		case "CheckSp":
			var Flag=false;
			for (var i=0;i<ValidationType;i++){
				if (eval("document."+FormName+"."+Name+i+".checked"))Flag=true;
			}		
			if (!Flag) {
				ErrorReport(MsgArea,SpMsg,"Please Select atleast one "+Desc);return 1;
			}else{ErrorReport(MsgArea,"","&nbsp;");}
			break;
		default :
			ErrorReport(MsgArea,SpMsg,"Error in Code:Unidentified Input Type");
			return 1;
	}	
	return 0;
}

