var fieldN = new Array();
var fieldV = new Array();
var fieldT = new Array();
var fieldI = new Array();
var fieldC = new Array();
var fieldEQ = new Array();

function checkEmpty(formN){
	var err = "";
	var frmObj = eval("document." + formN);
	
	for(var i=0; i<fieldN.length; i++){

		if(fieldT[i] == "date"){
			var dateSplit = new Array();
			dateSplit = fieldN[i].split(',');
			if(!checkDate(formN, dateSplit[0], dateSplit[1], dateSplit[2])) {
				err += fieldV[i] + "\n";
			}else if(fieldEQ[i]){
				if(!compareDate(formN, fieldEQ[i], dateSplit[0], dateSplit[1], dateSplit[2])) {
					err += fieldV[i] + "(Invalid match!)\n";
				}
			}
		}
		if(fieldT[i] == "editor"){
			var frmName = fieldN[i] + '___Frame';
			editor_frame = document.getElementById(frmName);
			editor_source = editor_frame.contentWindow.document.getElementById('eEditorArea');
			var mContents = editor_source.contentWindow.document.body.innerHTML
			re= /<\S[^>]*>/g; 
			mContents = mContents.replace(re,""); 
			if((mContents == "") || (mContents == " ")) {
				err += fieldV[i] + "\n";
			}

		}
		if(fieldT[i] == "text"){
			var frmElm = eval("frmObj." + fieldN[i]);
			if((frmElm.value == "") || (frmElm.value == " ")) {
				err += fieldV[i] + "\n";
			}else if(fieldC[i]){
				var frmCElm = eval("frmObj." + fieldC[i]);
				if(frmElm.value != frmCElm.value){
					err += fieldV[i] + " mismatch!\n";
				}
			}else if(fieldN[i].indexOf("email") >= 0){
				if(!checkEmail(frmElm.value)) {
					err += fieldV[i] + " (Invalid Email Id)\n";
				}
			}else if(fieldN[i].indexOf("url") >= 0){
				if(!checkUrl(frmElm.value)) {
					err += fieldV[i] + " (Invalid URL)\n";
				}
			}else if(fieldEQ[i]) {
				if(frmElm.value != fieldEQ[i]) {
					err += fieldV[i] + "(Invalid match!)\n";
				}
			}
		}
		if(fieldT[i] == "checkbox"){
			var frmElm = eval("frmObj." + fieldN[i]);
			if(frmElm.checked === false) {
				err += fieldV[i] + "\n";
			}
		}
		if(fieldT[i] == "select"){
			var frmElm = document.getElementById(fieldI[i]);
			var selectedI = false;
			for(var j=0; j< frmElm.length; j++) {
				if(frmElm[j].selected == true) {
					selectedI = true;
				}
			}
			if(selectedI === false) {
				err += fieldV[i] + "\n";
			}
		}
		if(fieldT[i] == "radio"){
			var frmElm = eval("frmObj." + fieldN[i]);
			var checkedI = false;
			for(var j=0; j< frmElm.length; j++) {
				if(frmElm[j].checked == true) {
					checkedI = true;
				}
			}
			if(checkedI === false) {
				err += fieldV[i] + "\n";
			}
		}		
	}
	if(err != "") {
		var errShow = "Following fields are empty or not entered correctly: \n\n";
		errShow += err;
		alert(errShow);
		return false;
	}
	return true;
}

function checkDate(frmname, dd,mm,yy){
	frmobj = eval("document." + frmname);
	var day = parseInt(frmobj.dd.value);
	var month = parseInt(frmobj.mm.value);
	var year = parseInt(frmobj.yy.value);
	var checkLeep = year%4;
	if((checkLeep > 0) && (month == 2) && (day > 28)) {
		return false;
	}
	if((checkLeep == 0) && (month == 2) && (day > 29)) {
		return false;
	}
	if((day > 30) && ( (month == 4) || (month == 6) || (month == 9) || (month == 11))) {
		return false;
	}
	return true;
}
function compareDate(frmname, cmpStr, dd,mm,yy){

	var dateSplit = new Array();
	dateSplit =  cmpStr.split(',');
	var cday = parseInt(dateSplit[0]);
	var cmonth = parseInt(dateSplit[1]);
	var cyear = parseInt(dateSplit[2]);
	var cmpStr = cday + "," + cmonth + "," + cyear;

	frmobj = eval("document." + frmname);
	var day = parseInt(frmobj.dd.value);
	var month = parseInt(frmobj.mm.value);
	var year = parseInt(frmobj.yy.value);
	var curStr = day + "," + month + "," + year;
	if(curStr != cmpStr) {
		return false;
	}
	return true;
}
function checkEmail(fieldValue){
	var chkAt = fieldValue.indexOf("@");
	var chkDot= fieldValue.indexOf(".");
	var chkHack= fieldValue.indexOf("@.");
	var chkHackA= fieldValue.indexOf(".@");

	if((chkAt >= 0) && (chkDot >= 0) && (chkHack == -1) && (chkHackA == -1) ) {
		return true;
	}
	return false;
}

function checkUrl(fieldValue){
	var chkAt = fieldValue.indexOf("@");
	var chkDot= fieldValue.indexOf(".");
	if((fieldValue.substr(0,7) == "http://") ||  (fieldValue.substr(0,8) == "https://")) {
		return true;
	}
	return false;
}


