ch=[]
ch0=[]

function enable_disabled(form){
  var i
  for(i=0;i<form.elements.length;i++){
    if(!form.elements[i].getAttribute("truedisabled")){
      form.elements[i].disabled=false;
    }
  }
}

function recount(last_clicked){

  var checked_additional=[]
  // кэшируем массив чекбоксов...
  if(ch0.length==0){
    ch0=document.getElementsByTagName('input');
    j=0;
    for(i in ch0){
      if(ch0[i].className=="works"){
        ch[j++]=ch0[i];
      }
    }
  }

  var i
  var sum=0
  var sum_time=0
  var label_id;
  var number

  //обрабатываем кликнутый сначала

  // вдруг его низя снимать? десаблить!

  if(last_clicked && last_clicked.id && last_clicked.checked /*&& true*/){
    number=last_clicked.id.replace("works","")*1;
    in_packet=false;
    if(depend[number]){
      for(i=0;i<depend[number].length;i++){
        inp=document.getElementById('works'+depend[number][i])

        if(inp.getAttribute('packet')) in_packet=true
        
        if(depend[number][i]!=number){
          inp.disabled=false
          inp.checked=false
        }
      }
    }
    if(requirements[number]){
      for(i=0;i<requirements[number].length;i++){
        inp=document.getElementById('works'+requirements[number][i])

        if(requirements[number][i]!=number){
          if(!inp.checked){
            inp.click()
          }
        }
      }
    }
    if(in_packet) last_clicked.disabled=true
  }
  if(last_clicked && last_clicked.id && !last_clicked.checked /*&& true*/){
    number=last_clicked.id.replace("works","")*1;
    if(required_by[number]){
      for(i=0;i<required_by[number].length;i++){
        inp=document.getElementById('works'+required_by[number][i])

        if(required_by[number][i]!=number){
          if(inp.checked){
            inp.click()
          }
        }
      }
    }
  }
	var label = '<ul>';
  for(i in ch){
    if(ch[i].className=="works"){
      number=ch[i].id.replace("works","")*1;
      works_id=ch[i].id
      label_id='label'+number
      price_id='price'+number
      time_id='time'+number
      tr_id='price_row'+number
	  

      if(ch[i].checked){
        if(depend[number]){
          for(j=0;j<depend[number].length;j++){
            if(number*1!=depend[number][j]*1){
//              document.getElementById('works'+depend[number][j]).disabled=true // болшы не дисаблим
            }
          }
        }

        time = ch[i].value.split(" ")[0].replace(",",".");
        price = ch[i].value.split(" ")[1].replace(",",".");
		
		label = label + '<li>' + document.getElementById('label'+number).innerHTML + '</li>' + '\n';
		
        if(!ch[i].getAttribute('packet')){
          sum += 1 * price;
          sum_time += 1 * time;
          checked_additional[checked_additional.length]=number;
        }

        tr=document.getElementById(tr_id);
        tr2=document.getElementById(tr_id+'_prim');
        if(tr && tr.className.indexOf('tr_current')==-1){
          tr.className=tr.className+' tr_current'
          if(tr2) tr2.className=tr2.className+' tr_current'
        }
      }else{
        tr=document.getElementById(tr_id);
        tr2=document.getElementById(tr_id+'_prim');

        if(tr && tr.className.indexOf('tr_current')!=-1){
          tr.className=tr.className.replace(' tr_current','')
          if(tr2) tr2.className=tr2.className.replace(' tr_current','')
        }


        if(ch[i].type=='checkbox'){
          xxx=ch[i].value.split(" ")
          time = xxx[0]
          time = (''+time).replace(",",".");
          price = xxx[1]
          price = (''+price).replace(",",".");

          if(ch[i].getAttribute('packet')){
            sum -= 1 * price;
            sum_time -= 1 * time;
          }
        }


        if(depend[number]){
          already_checked=0
          for(j=0;j<depend[number].length;j++){
            // а сколько прочекано?
            if(document.getElementById('works'+depend[number][j]).checked) already_checked++
          }

          for(j=0;j<depend[number].length;j++){
            inp=document.getElementById('works'+depend[number][j])
            if(already_checked==0){
              if(inp != last_clicked && last_clicked){
//                inp.checked=false
                inp.disabled=false
              }
            }
          }
        }
      }
    }
    if(document.getElementById('link_to_selection') && window.calcpath)
      if(checked_additional.length){
        document.getElementById('link_to_selection').href=calcpath+checked_additional.join(",")+'/';//+(checked_additional.length==1?",":"")
        //document.getElementById('link_to_selection').href="./?checked="+checked_additional.join(",")
      }else{
        //document.getElementById('link_to_selection').href="./"
        document.getElementById('link_to_selection').href=calcpath
      }
    }
	
	label = label + '</ul>';
	
    if(document.getElementById('result_price_span')) document.getElementById('result_price_span').innerHTML=1*sum;
    if(document.getElementById('result_price')) document.getElementById('result_price').value=1*sum;
	
    if(document.getElementById('result_time_span')) document.getElementById('result_time_span').innerHTML=sum_time;
    if(document.getElementById('result_time')) document.getElementById('result_time').value=sum_time;
	
    if(document.getElementById('result_span')) document.getElementById('result_span').innerHTML=label;
    if(document.getElementById('result_order')) document.getElementById('result_order').value=label;
	
	//alert(sum);
	//alert(label);
	
}
//interval = setInterval("recount(0)", 500);