var incidentArray = new Array();
var PDArray = new Array();
var PIArray = new Array();
var FAArray = new Array();
var iPD = 0;
var iPI = 0;
var iFA = 0;

(function(jQuery) {
	jQuery.fn.checkboxTree = function(settings) {
		settings = jQuery.extend({
			collapsedarrow: "img-arrow-collapsed.gif",
			expandedarrow: "img-arrow-expanded.gif",
			blankarrow: "img-arrow-blank.gif",
			checkchildren: false
		}, settings);
		var $group = this;
		jQuery(":checkbox + label",$group).click(function(){
			jQuery(this).prev().attr({checked: !jQuery(this).prev().attr("checked")}).end().toggleClass("checked");	
				
			var nodevalsplit = jQuery(this).prev().attr("value").split("-");
			var nodeval = nodevalsplit[1]; 
			var preval = nodevalsplit[0];		
			//alert(preval + " " + nodeval);

			if(jQuery(this).prev().attr("checked"))
			{	
				
				if(preval == "PD")
				{
					if(nodeval == "root")
					{
						PDArray = new Array("9400","9440","9441","9445","9450","9451","9462","9470","ACMV","ACDR","ACHR","DTCH");	
						iPD = PDArray.length;
					}
					else
					{
						PDArray[iPD] = nodeval;									
						iPD = iPD + 1;
					}	

				}	
				//alert(preval + " " + nodeval + " " + iPI);
				if(preval == "PI")
				{
					if(nodeval == "root")
					{
						PIArray = new Array("ACUN","9420","9421","9425","9430","9431");	
						iPI = PIArray.length;
					}
					else
					{
						PIArray[iPI] = nodeval;									
						iPI = iPI + 1;
					}	

				}		
				if(preval == "FA")
				{
					if(nodeval == "root")
					{
						FAArray = new Array("9410","9411","ACFA");	
						iFA = FAArray.length;
					}
					else
					{
						FAArray[iFA] = nodeval;									
						iFA = iFA + 1;
					}	

				}						
				
			}
			else
			{	
				if(preval == "PD")	
				{
					if(nodeval == "root")
					{
						PDArray = [];
						iPD = 0;	
					}
					else
					{
						iPD  = PDArray.length - 1;	
					}		
						
							
					for(j=0;j < PDArray.length;j++)
					{
						if(PDArray[j] == nodeval)
						{
							PDArray.splice(j,1);
						}
					}
				 }
				 if(preval == "PI")	
				 {
					if(nodeval == "root")
					{
						PIArray = [];
						iPI = 0;	
					}		
					else
					{
						iPI  = PIArray.length - 1;
					}			
						
					for(j=0;j < PIArray.length;j++)
					{
						if(PIArray[j] == nodeval)
						{
							PIArray.splice(j,1);
						}
					}
				 }
				 if(preval == "FA")	
				 {
					if(nodeval == "root")
					{
						FAArray = [];
						iFA = 0;	
					}		
					else
					{
						iFA  = FAArray.length - 1;
					}			
						
					for(j=0;j < FAArray.length;j++)
					{
						if(FAArray[j] == nodeval)
						{
							FAArray.splice(j,1);
						}
					}
				 }

	
			}
					
			
		}).each( function(){
			if (jQuery(this).prev()[0].checked )
				jQuery(this).addClass("checked");						
		}).hover( 
			function() { jQuery(this).addClass("over"); },
			function() { jQuery(this).removeClass("over"); }
		).prev().hide();
		if(settings.checkchildren==true){
			jQuery(":checkbox + label",$group).click(function(){
				var $currclick = jQuery(this);
				var $currrow = jQuery(this).parents("li:first")
				$currrow.find(":checkbox + label").prev().attr({checked: $currclick.prev().attr("checked")?"checked":""})
				.next().addClass($currclick.hasClass("checked")?"checked":"").removeClass($currclick.hasClass("checked")?"":"checked")
				

			})
		}
		jQuery("li",$group).each(function(){
			var $currentLi = jQuery(this);
			if($currentLi.is(":has(ul)")){
				//check the parent boxes if a child is selected
				if((!$currentLi.children("input:checkbox:first").is(":checked")) && (jQuery("ul li input:checked",$currentLi).length>0)){
					$currentLi.find("label:first").trigger("click");
					
				}
				$currentLi.children("ul").hide();
				var $collapseImage = jQuery('<img src="' + settings.collapsedarrow + '" / >')
				$collapseImage.toggle(function(){
					$currentLi.children("ul").show();
					$currentLi.children("img").attr("src",settings.expandedarrow);
					
				},function(){
					$currentLi.children("ul").hide();
					$currentLi.children("img").attr("src",settings.collapsedarrow);
				})
				jQuery("ul li input:checkbox",$currentLi).next().click(function(){
					if((!$currentLi.children("input:checkbox:first").is(":checked")) && (jQuery("ul li input:checked",$currentLi).length>0)){
						$currentLi.find("label:first").addClass("checked").prev().attr("checked","checked")
						

					}
				});
				jQuery("input:checkbox",$currentLi).next().click(function(){
					if(jQuery("ul li input:checked",jQuery(this).parent("li")).length>0){
						jQuery(this).addClass("checked").prev().attr("checked","checked");
						
					}
				});
				$currentLi.prepend($collapseImage);
			}else{
				var $collapseImage = jQuery('<img src="' + settings.blankarrow + '" / >')
				$currentLi.prepend($collapseImage);
			}

			
		})
		
		return $group;
	};
})(jQuery);


