/**
 *
 *  Javascript for enforcing that mandatory fields are set
 *
 */

/**
 *   Fields expected in form with id/name = salesforce_leads  
 */
function mandatoryFields() {
 
   var mandatoryElements  	= document.getElementById('mandatory_elements'); 
   var mandatoryFieldsArr 	=   mandatoryElements.value.split(';');
   var atLeastOneOfElements	= document.getElementById('atleastoneof_elements'); 
   var atLeastOneOfArr 		= atLeastOneOfElements.value.split(';');
	
   var deb = "";
   var allSet = true;
   var i      = 0;
   for (i = 0; i < mandatoryFieldsArr.length; i++) {
      var elem = document.getElementById(mandatoryFieldsArr[i]);
      deb = deb + mandatoryFieldsArr[i] + ":" + elem.value + ":" + elem.value.length + ";";
      if (elem.value.length === 0) {
          allSet = false;
      }  
   }
   
   var atLeastOne = false;
   if (allSet) { // check the at least one of also is checked:NB Only applies to checboxes
	   for (i = 0; i < atLeastOneOfArr.length; i++) {
		  var elem = document.getElementById(atLeastOneOfArr[i]);
		  deb = deb + mandatoryFieldsArr[i] + ":" + elem.value + ":" + elem.value.length + ";";
		  if (elem.checked) {
			  atLeastOne = true;
			  break;
		  }  
	   }   		
   }
   
   var submitElem = null;
	try {
		submitElem = document.getElementById('submit');
	}	
	catch(e) {
		try {
			submitElem = document.getElementByName('submit');
		}	
		catch(e) {
			alert("Error: Could not find submit element");
			return;
		}
	}

   if (allSet && atLeastOne) {
      submitElem.disabled = null;
   }
   else {
      submitElem.disabled ='disabled';
   }
    
}


/**
 *	Form.reset does not work properly,so:
 */
function clearFields(form) {
	var elements = form.elements;

	var i = 0;	

  	for(i=0; i<elements.length; i++) {
      
		field_type = elements[i].type.toLowerCase();

		switch(field_type) {

			case "text": 
			case "password": 
			case "textarea":
				elements[i].value = ""; 
				break;

			case "radio":
			case "checkbox":
				if (elements[i].checked) {
					elements[i].checked = false; 
				}
				break;
			case "select-one":
			case "select-multi":
						elements[i].selectedIndex = -1;
				break;
			default: 
				break;
		}
    }
	
	
}