
function fnSubmit(form,url)
{
    var valid = true;
    servletUrl = trimUrl(servletUrl);

    valid = validateForm(form);
    if( valid ) {
        form.action=servletUrl;
        form.submit();
    } else {
        return;
    }
}

// This function validates the values entered for reward specific 
// details. returns true if valid data is entered and if mandatory 
// fields are all filled .

function validateForm(form) {
   
       var j=0;
       var temp = 0;
       var valid = true;
       var allBlank = true;
              
       // loops through the mandatory field array.
       // New Sponsor (Magnet) CR, starts
       // CR 16225 starts here
       for (j=0; j < 2 ; j++ ) {
       temp = "amexSponsorExpen["+j+"]";
       	              
       	              if( !isBlankField(form, temp) ) {
       	   	       allBlank = false;
       	   	       valid = validateField(form, temp);
           	}
            
	   if ( !valid ) return valid;
           }
           
       // CR 16225 ends here
       
       for (j=0; j < loopCounter ; j++ ) {
       // New Sponsor (Magnet) CR, ends

           temp = "sponsorExpen["+j+"]";
	              
	              if( !isBlankField(form, temp) ) {
	   	       allBlank = false;
	   	       valid = validateField(form, temp);
           }
                         
           
       
           if( valid ) {
               
               temp = "sponsorsBonus["+j+"]";
               if( !isBlankField(form, temp) ) {
                   allBlank = false;
                   valid = validateField(form, temp);
               }
           }
           
           if ( !valid ) return valid;
       }
		
       // PRJ_0226 - Usecase ALI02 starts here
	   if("B" != form.siteIndicator.value){
	   
       if( allBlank && ( null != form.elements["EEnergyGasDetails[0]"] ) ) {
           if( form.elements["EEnergyGasDetails[0]"].checked 
               || form.elements["EEnergyElecDetails[0]"].checked ) {
               
               allBlank=false;
           }
       }
       }
       else if ("B" == form.siteIndicator.value){
            if(allBlank && null != form.elements["EEnergyElecDetails[0]"].checked ){
              if(form.elements["EEnergyElecDetails[0]"].checked){
                 allBlank=false;
               }
            }
       }
       // PRJ_0226 - Usecase ALI02 ends here

       if ( allBlank ) {
           
           alert(errorAllBlank);
           temp = "sponsorExpen[0]";
           form.elements[temp].focus();
           return false;
       }
       return valid;
}

function validateField(form, temp) {
    var field = 0;
    var fieldValue = 0;
    field = form.elements[temp];
    fieldValue = fnTrim(field.value);
    
        //checks if the field has invalid characters
        if(!validateNumber(fieldValue)) {
               
            alert(errorInvalid);
            field.focus();
            
            return false;
               
        } else {

            field.value = fieldValue;
            
        }

    return true;
}

function isBlankField(form, temp) {
    var field = 0;
    var fieldValue = 0;
    var isBlank=false;
    field = form.elements[temp];
    
    //the below condition will be true for
    //e-Energy
    if (null == field) return true;
    
    fieldValue = fnTrim(field.value);
    
    if(fieldValue == "" || fieldValue == "0") { 
        isBlank=true;
    } else { 
        var len=0;
        var fieldLength=fieldValue.length;
        var allZero=true;

        for (len=0; len < fieldLength ; len++ ) {
            if( fieldValue.charAt(len) != '0' ) {
                allZero=false;
                break;
            }
        }
        if ( allZero ) isBlank=true;
    }
return isBlank;
}

//This method is to automatically uncheck all the 
//sub-ordinate checkboxes when the 
//main checkbox is not checked
function manageSubChecks(form, headChkBoxName) {
    var length = headChkBoxName.length;
    var whichChkBoxSet = headChkBoxName.substring(0,(length-3));
    
    if(!form.elements[headChkBoxName].checked) {
        form.elements[whichChkBoxSet+"[1]"].checked=false;
        // PRJ_0226 - Usecase ALI02 starts here
        if(null != form.elements[whichChkBoxSet+"[2]"]){
        form.elements[whichChkBoxSet+"[2]"].checked=false;
        }
        // PRJ_0226 - Usecase ALI02 ends here
    }
}



//This method is to automatically check the main checkbox
//when any of the subordinate checkbox is checked
function manageHeadCheck(form, subChkBoxName) {
    var length = subChkBoxName.length;
    var whichChkBoxSet = subChkBoxName.substring(0,(length-3));

    if(form.elements[subChkBoxName].checked) 
        form.elements[whichChkBoxSet+"[0]"].checked=true;
}