var isIE = document.all?true:false;
var gLegendTdIdClicked = '';
var gLegendTdCssClicked = '';
var gIsMouseDown = false;
var click_span = '';


function select(e) {
    return false;
}
document.onselectstart  = select;
if (document.layers) document.captureEvents(Event.onselectstart);

function array_indexof(array, value){
  for (var i in array){
    if (array[i]==value){
      return i;
    }    
  }  
  return -1;
}

function highlight_getvalue(output_id)
{
    var v = 0;
    var outputs = document.getElementsByName(output_id);
    for ( idx = 0; idx < outputs.length; idx++ ) 
    {
        if ( outputs[idx].checked )
        {
            v = idx;
            break;
        }
    }
    return v;
}

function highlight_setvalue(output_id,output)
{
    var outputs = document.getElementsByName(output_id);
    outputs[output].checked = true;
}

function find_span_number(span_id){
  var span_number = span_id.substring(span_id.indexOf('_')+1);     
  span_number = span_number.substring(0,span_number.indexOf('_'));
  return parseInt(span_number);
}

function highlight_over(span_id, master_output_id, class_list, click){  
  if (click){
    click_span = span_id;
  }

  if (gIsMouseDown||click){    
    highlighting_reset_items(class_list);
    var span = document.getElementById(span_id);  
    var master_output = document.getElementById(master_output_id);  
    var class_list_array = new Array();  
    class_list_array = class_list.split(',');  
    var stat_line = "";  
    
    var span_list = document.getElementsByTagName('span');  
    var click_span_number = find_span_number(click_span);
    var cur_span_number = find_span_number(span_id);
    stat_line+=cur_span_number+":";
    for (var i = 0; i < span_list.length; i++){
      if (span_list[i].id){
        var loop_span = span_list[i];
        if (loop_span.id.indexOf('_SPAN')!=-1){          
          var loop_span_number =  find_span_number(loop_span.id);         
          
          if (((loop_span_number>=cur_span_number)&&(loop_span_number<=click_span_number))||
              ((loop_span_number<=cur_span_number)&&(loop_span_number>=click_span_number))){
              stat_line+=loop_span_number+",";            
            span_list[i].className = class_list_array[2*master_output.value+1];      
          }
        }
      }
    }
    stat_line+=":"+click_span_number;      
  }
}


var activeMarker = '';

function legend_click(td_id, td_list, master_output_id, class_list){
  var cur_td = document.getElementById(td_id);
  var master_output = document.getElementById(master_output_id);  
  var td_list_array = new Array();
  td_list_array = td_list.split(',');
  var class_list_array = new Array();
  class_list_array = class_list.split(',');
  
  for (var i in td_list_array){
    var curTDName = class_list_array[ 2 * i +1];
  
    var loop_td = document.getElementById(td_list_array[i]);
    loop_td.className = class_list_array[ 2 * i +1];
    
    var curMarker = document.getElementById(curTDName.substring(0,curTDName.lastIndexOf('_')) + '_' + 'MARKER');
    curMarker.style.display = 'none';
  }
  
  var answer_num = td_id.substring(td_id.indexOf('d')+1);
    
  cur_td_class = class_list_array[ ( 2 * answer_num ) + 1];
  cur_td_class = cur_td_class.substring(0,cur_td_class.lastIndexOf('_'))+"_LBOX";  
  
  cur_td.className =   cur_td_class;
  master_output.value = answer_num; 
  
  activeMarker = cur_td_class.substring(0,cur_td_class.lastIndexOf('_')) + '_' + 'MARKER';
  
  var curMarker = document.getElementById(activeMarker);
  curMarker.style.display = 'block';
}

function highlighting_update(class_list){  
  var class_list_array = new Array();
  class_list_array = class_list.split(',');  
  
  var span_list = new Array();
  span_list = document.getElementsByTagName('span');  
  for (var i = 0; i < span_list.length; i++){
    if (span_list[i].id){
      var cur_span = span_list[i];
      if (cur_span.id.indexOf('_SPAN')!=-1){
        var cur_output_id = cur_span.id.substring(0,cur_span.id.indexOf('_SPAN'));
        var cur_class_index = (array_indexof(class_list_array, cur_span.className));
        if (cur_class_index%2){ //highlighted          
          cur_span.className = class_list_array[cur_class_index-1];
          highlight_setvalue(cur_output_id,((cur_class_index-1)/2));
        }                
      }
    }
  }   
}

function highlighting_reset_items(class_list){  
  var class_list_array = new Array();
  class_list_array = class_list.split(',');  
  
  var span_list = new Array();
  span_list = document.getElementsByTagName('span');  
  for (var i = 0; i < span_list.length; i++){
    if (span_list[i].id){
      var cur_span = span_list[i];
      if (cur_span.id.indexOf('_SPAN')!=-1){
        var cur_output_id = cur_span.id.substring(0,cur_span.id.indexOf('_SPAN'));
        var cur_class_index = (array_indexof(class_list_array, cur_span.className));
        if (cur_class_index%2){ //highlighted                    
          var out_val = highlight_getvalue (cur_output_id);
          cur_span.className = class_list_array[2*out_val];
          
        }                
      }
    }
  }   
}

