function attachMultiboxDefaultSelectorEvent() {
	for(var j=0;j<getElementsByName("dynamicLimiterFieldAll").length;j++)
	 {
        var divAll = getElementsByName("dynamicLimiterFieldAll")[j];
        
        var chkBoxAll = divAll.getElementsByTagName("INPUT")[0];
        var queryId = getElementById("defaultFlag");
       
        var checkDivsElements = getElementsByName("dynamicLimiterFields")[j];
        if (isValidObject(checkDivsElements)) {  
        var checkBoxElements = checkDivsElements.getElementsByTagName("INPUT");
        var falseCount = 0;
        var totalCount = 0;
         for(var i = 0; i < checkBoxElements.length; i++) {
             var element = checkBoxElements[i];
             if (element.id.match("_dynamicLimiterField")) {
                  totalCount = totalCount + 1;
                 if (!element.checked) {
                    falseCount = falseCount + 1;
                 }              
              }
          }
          if(falseCount == totalCount && queryId.value == "true") {
        	  for (var i = 0; i < checkBoxElements.length; i++) {
        	       if(checkBoxElements[i].id.match("_dynamicLimiterField"))
        	 	 		checkBoxElements[i].checked = true
           	   }
    	    	        chkBoxAll.checked = true;    	    	       
   	       }
	   }
   } 
}

function checkOrUncheckMultiBoxes(chkBox_All) {
	for(var j=0;j<getElementsByName("dynamicLimiterFieldAll").length;j++)
	 {
	 	var divAll = getElementsByName("dynamicLimiterFieldAll")[j];
	 	 var chkBoxAll = divAll.getElementsByTagName("INPUT")[0];
	 	  if(chkBox_All==chkBoxAll)
	 	   {
          var check_Divs_Elements = getElementsByName("dynamicLimiterFields")[j];
          if (isValidObject(check_Divs_Elements)) { 
    		var checkBox_Elements = check_Divs_Elements.getElementsByTagName("INPUT");

		    if (chkBoxAll.checked == true) {
		        for (var i = 0; i < checkBox_Elements.length; i++) {
		            checkBox_Elements[i].checked = true;
		        }
		    } else {
		        for (var i = 0; i < checkBox_Elements.length; i++) {
		            checkBox_Elements[i].checked = false;
		        }
          }
        }
     } 
   }
}
//for multi select check box in omni lit products.

function markPageMultiBox() {
    checkOrUncheckMultiBoxes(this);
}

function updateMultiBoxes() {
    
    for(var j=0;j<getElementsByName("dynamicLimiterFieldAll").length;j++)
	 {
	 	var isMarked = true;
    var div_All = getElementsByName("dynamicLimiterFieldAll")[j];
    
        var chkBox_All = div_All.getElementsByTagName("INPUT")[0];
        var check_Divs_Elements = getElementsByName("dynamicLimiterFields")[j];
         if (isValidObject(check_Divs_Elements)) {    
        var checkBox_Elements = check_Divs_Elements.getElementsByTagName("INPUT");
        for (var i = 0; i < checkBox_Elements.length; i++) {
            var element = checkBox_Elements[i];
            if (element.id.match("_dynamicLimiterField")) {
                if (element.checked == false) {
                    isMarked = false;
                    break;
                }
            
        }
        
        
    }
        
    chkBox_All.checked = isMarked;
         }  
}
}
function attachEventsForMultiBox() {
	for(var j=0;j<getElementsByName("dynamicLimiterFieldAll").length;j++)
	 {
    var div_All = getElementsByName("dynamicLimiterFieldAll")[j];
    if (isValidObject(div_All)) {
        var chkBox_All = div_All.getElementsByTagName("INPUT")[0];
        if (chkBox_All != null) {
            chkBox_All.onclick = markPageMultiBox;
        }
    }
    updateMultiBoxes();
    attachMultiboxDefaultSelectorEvent();
}
}

function attachEventsForMultiCheckBox() {
	
	for(var j=0;j<getElementsByName("dynamicLimiterFields").length;j++)
	{
    var check_Divs_Elements =getElementsByName("dynamicLimiterFields")[j];
    if (isValidObject(check_Divs_Elements)) {
        var checkBox_Elements = check_Divs_Elements.getElementsByTagName("INPUT");
        for (var i = 0; i < checkBox_Elements.length; i++) {
            var element = checkBox_Elements[i];
            if (element != null)
                element.onclick = updateMultiBoxes;
        }
     }
   }
}

addWindowLoadEvent(attachEventsForMultiCheckBox);
addWindowLoadEvent(attachEventsForMultiBox);
