plusImg= new Image();
plusImg.src= "/plus.gif";
minusImg= new Image();
minusImg.src= "/minus.gif";

function changeDisplay(id) {
	var ul = document.getElementById('ul' + id);
	var li = document.getElementById('li' + id);
	var myImg = document.getElementById('tgl' + id);
	var chkbox = document.getElementById('ch'+id);
	if ( 'none' == ul.style.display ) {
		if(ul.getAttribute('loaded')!='1'){
		    var xsa = new XS2AJAX();
		    xsa.onready = function(){
		        ul.innerHTML = xsa.responseText;
		        ul.setAttribute('loaded','1');
		        ul.style.display = 'block';
		        myImg.src= minusImg.src;		           
		    }

		    xsa.send({'id':id,'state':chkbox.checked},'/rubricators/get_rubrics');
		}
		else{
		    ul.style.display = 'block';
		    myImg.src= minusImg.src;
	    }
	}
	else {
		ul.style.display = 'none';
		myImg.src= plusImg.src;
	}
}

function partialyCheck(li,f){
    li.style.fontWeight=(f)?"bold":"normal";
    li.style.backgroundPosition="left top";
    li.style.backgroundRepeat="no-repeat";
    li.style.backgroundImage=(f)?"url(/check.gif)":"none";   
}

function Check(id) {
	var chkbox = document.getElementById('ch'+id);
	var i;
	var li = chkbox.parentNode;   
  partialyCheck(li,false);
	
	//идем вниз
  var subul = chkbox.parentNode.getElementsByTagName('ul');
  if(subul.length>0){
      var subboxes=subul[0].getElementsByTagName("input");
      for (i=0; i < subboxes.length; i++) {		
          subboxes[i].checked=chkbox.checked;
      }       
  }
  
  //идем вверх
  var p = chkbox.parentNode.parentNode.parentNode;   
  while(p.tagName.toLowerCase()!='div'){
    chkbox = p.getElementsByTagName('input')[0];      
    
    var subul = chkbox.parentNode.getElementsByTagName('ul');
    if(subul.length>0){
        var subboxes=subul[0].getElementsByTagName("input");
        var hasUnchecked=false;
        var hasChecked=false;
        for (i=0; i < subboxes.length; i++) {		
            if (!subboxes[i].checked) {
                hasUnchecked = true;   
            }
            else{
                hasChecked = true;   
            }
        }       
    }
    chkbox.checked = !hasUnchecked;
    
    li = chkbox.parentNode; 
    partialyCheck(li,(hasUnchecked && hasChecked));  
    p = chkbox.parentNode.parentNode.parentNode; 
  }
}

