// notEmpty.js  reworked by Sam Oct08,Mar09 

function notEmpty(formobj,DataSet,NotThis) {
	var	alertTop = "The following fields are not yet acceptable:\n";
		alertTop +="Maybe too short, too long, or invalid characters typed.\n";
	var alertMsg ="";
	
	if (DataSet.length == 0)
		return true;
	//alert (DataSet.length+ "+++"+DataSet[0].length+ "..."+DataSet[0][1].length+"..."+DataSet[0][1]);
	for (var i = 0; i < DataSet.length; i++){  
	  //  -   all based on info in [2]: Emm-nnn
	  //  -     E: data type (9=numbers only, A=alpha only, X=alpha numeric, E=email addr, -=dont test,  etc)
	  //  -     mm: 2 char minimum size
	  //  -     nnn: 3 char max size
	  var ty = " ";						// data type
	  var mn = 0;						// min size
	  var mx = 1000;					// max size
	  var gg = DataSet[i][0].length -1;		// length of the id
	  var hh = DataSet[i][0].substr(gg,1);	// the last character of the name
	  
	  var k2 = DataSet[i][1].length;		// length of the mask
	  if (k2>=1)
	    ty = DataSet[i][1].substr(0,1);
	  if (k2>=3)
	    mn = parseInt(DataSet[i][1].substr(1,2),10);
	  if (k2>=5)
	    mx = parseInt(DataSet[i][1].substr(4),10);
	  //alert(DataSet[i][1]+",,,"+k2+"..."+DataSet[i][0].substr(gg,1)+"%");
	  //alert(DataSet[i][1]+",,,"+k2+"-"+ty+"+"+mn+":"+mx+"%");
	  if (hh!="#") {
		alertMsg += thisEmpty(formobj,DataSet[i][0],DataSet[i][2],ty,mn,mx,NotThis);
	  } else {
		var mm=DataSet[i].substr(0,gg);   //  all except the last character
		for (var k = 1 ; k<24; k++) { // for each potential line
			alertMsg += thisEmpty(formobj,mm+k,DataSet[i][2]+" "+k,ty,mn,mx,NotThis);
		}
	  }
	}
	
	if (alertMsg.length == 0){
		return true;
	}else{
		alert(alertTop+alertMsg);
		return false;
	}
} 

function thisEmpty(formobj,Name,Descr,typ,min,max,NotThis) {
	var alertMsg ="";
	var obj = formobj.elements[Name];
	//alert(":");
	//inspect(obj);
	if (obj){
	  //alert("we are here \n"+"/"+Name.length+" - "+obj+" = "+obj.type+"["+obj.value+"]\n"+obj.value.length+"-"+typ+"+"+min+":"+max+"%");
	  //alert("we are here \n"+"/"+Pair[i].length+" - "+obj+" = "+obj.type+"["+obj.value+"]\n"+obj.getAttribute("sitrep"));
	  switch(obj.type){
		case "select-one":
			if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){ 
				alertMsg += " - " + Descr + "\n"; 
			} break; 
		case "select-multiple":
			if (obj.selectedIndex == -1){
				alertMsg += " - " + Descr + "\n"; 
			} break; 
		case "text":
		case "textarea":
		case "select":
		case "file":
			//if (obj.value == "" || obj.value == null || obj.value == NotThis){
			//	alertMsg += " - " + Descr + "\n"; 
			//} break;
			var nbg = 0;
			if ((obj.value.length<min) || (obj.value.length>max) || (obj.value == NotThis))
				nbg++;
			//if (min>0 && (obj.value == "" || obj.value == null))
			//	nbg++;
			//alertMsg +="["+nbg+"]";	
			if (nbg>0)
				alertMsg += " - " + Descr + "\n"; 
			break;
		default:	// case "unknown":
			var blnchecked = false;
			for (var j = 0; j < obj.length; j++){
			  if (obj[j].checked){
				blnchecked = true;
			  }
			}
			if (!blnchecked){
			  alertMsg += " - " + Descr + "\n"; 
			}
			break;
	  }
	  var sitr = obj.sitrep;
	  if(sitr != null && sitr=="nbg") {		// set by dp_date_picker.js
		alertMsg += Descr +" - use a valid date\n";
	  } 
	}
	return (alertMsg);
}

//*end*

