function SetCategoryPanelVisibility(panelId, value)
{
    var panel = $get(panelId);
    if(panel)
        panel.style.display= value? '':'none';  
}

function btnCancel_Click(panelControlId){
    SetCategoryPanelVisibility(panelControlId, false);
	return false;
}

function TreeNode_Click(treeNode)
{
   if(!treeNode.Expanded)
        treeNode.Expand(); 
   if(treeNode.Nodes.length>0)
   { 
        for(var i=0;i<treeNode.Nodes.length;i++)
        {           
			var node = treeNode.Nodes[i];
           if(node.Enabled)
           {   
                if(treeNode.Checked)            
                    node.Check();                            
                else
                    node.UnCheck();  
           }     
           TreeNode_Click(node);
        } 
   }

	if(!treeNode.Checked) // uncheck "select all"
	{
		if(treeNode.Value == "ZYXWVUNMLKJIHTSRQPO")
			return;
		// only check 2 levels
		var parent = treeNode.Parent;
		if(parent.Value != "ZYXWVUNMLKJIHTSRQPO")
		{
			if(!treeNode.Checked)
				parent.UnCheck();

			parent = parent.Parent;
		}
		parent.UnCheck();
	}
}

function filtersPicker_Click(parentControlId, panelControlId){
    SetCategoryPanelVisibility(panelControlId, true);
    var ctrl = $get(parentControlId); 
    if(ctrl){     
        var point = findPos(ctrl);    
        var panel = $get(panelControlId);
        panel.style.position='absolute';
        panel.style.left = point[0] + 'px';
        panel.style.top = point[1] + 20 + 'px';    
   } 
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}