//some variables
var vboard_window = null; //pinyin table window
var feedback_window = null; //pinyin table window

function go(form_name, parameter, value){
  var f;
  if (parameter == "limit")
    f = document.forms[form_name].limit;
  else 
    f = document.forms[form_name].search_mode;
  if ((typeof VirtualKeyboard != 'undefined') &&
       (VirtualKeyboard.curr_lang != "")) {
    document.forms[form_name].vk_layout.value = VirtualKeyboard.curr_lang;
    //alert(VirtualKeyboard.curr_lang);
  }
  f.value = value;
  document.forms[form_name].submit();
}


function popup(obj, url, name, features){
    if (obj)
        obj.close();
    obj = window.open(url, name, features);
    obj.moveTo(30,350);
    return obj;

}

function setvisible_Ex(obj, show, block, block_value){
    if (arguments.length == 2){
        block = true;
				block_value = "block";
    }else if (arguments.length == 3){
			block_value = "block";
		}
    if (!show){
        obj.style.visibility = "hidden";
        if (block)
            obj.style.display = "none";
    }else{
        obj.style.visibility = "visible";
        if (block)
            obj.style.display = block_value;
    }
}

function setvisible(id, value, block){
      //alert(value);
      if (arguments.length == 2){
        block = true;
      }
      var obj = document.getElementById(id);
      setvisible_Ex(obj, value, block);
}

  function watch_event(obj, event, func){
    if (obj.addEventListener)
      obj.addEventListener(event, func, false); //true or false?
    else{
      obj.attachEvent('on' + event, func);
      }
  }

  function unwatch_event(obj, event, func){
    if (obj.removeEventListener)
      obj.removeEventListener(event, func, false); //true or false?
    else
      obj.detachEvent('on' + event, func);
  }


function get_options(lang, state){
    for(i=0; i<categories.length; i++){
        if (lang == categories[i].lang){
            for(j=0; j<categories[i].nodes.length; j++){
                if (state == categories[i].nodes[j].node){
                    return categories[i].nodes[j].steps;
                }
            }
        }
    }

    return new Array(); //not found
}

function create_options(id, lang, state){

    var steps = get_options(lang, state);
    if (steps.length == 0) return null;
    
    var obj = document.getElementById(id);
    if (!obj)
        obj = document.createElement("select");
    obj.id = id;
    obj.options.length = 0;
    obj.options[0] = new Option('', '');
    for(var i=0;i<steps.length; i++){
        obj.options[i+1] = new Option(steps[i].ui_what, steps[i].what + ":" + steps[i].to);
        //if (langs[i] == def_language)
          //obj.selectedIndex = i;
    }

    return obj;
}

function show_options(parent, id, lang, state_info){
	var info = state_info.split(":");
    var state = info.length > 1 ? info[1] : info[0]; 
    //alert(state + " 1:" + state[0]);
    if (state.length > 0 && state.charAt(0) == 'f'){
        document.getElementById('generate_button').disabled = false;
    }else
        document.getElementById('generate_button').disabled = true;
    var obj = create_options(id, lang, state); 
    var t = id.match(/\d+/);
    var next_counter = parseInt(t[0]) + 1;
    var next_id = 'sel_' + next_counter;

    //refresh input
    var input = document.getElementById('ginput');
    var text = input.value;
    var i = text.indexOf("[");
    if (next_counter != 2 && i != -1 ) text = text.substring(0,i);
    
    var p_obj = document.getElementById(parent);
    var o;
    i = 1;
    
    while(o = document.getElementById('sel_' + i)){
	//remove unnecessary selects
	if (i >= next_counter){
		p_obj.removeChild(o);
	}else{
		var t = (o.options[o.selectedIndex].value).split(":")[0];
		if (t != '') text += "[" + t + "]";
	}
	i++;
    }
    input.value = text;

    if (!obj) return;
	p_obj.appendChild(obj);    
	watch_event(obj, 'change', function(){show_options(parent, next_id, lang, obj.options[obj.selectedIndex].value)});
    
}

function copyForm(){
    var i = document.getElementById('analyse_result');
    var text = document.getElementById('ana').innerHTML;
    //text = text.replace(/ class=([^ ]+)/g, ' class="$1"');
    //text = text.replace(/<BR>/g, '<br>');
    //text = text.replace(/<(\/?)TD>/g, '<$1td>');
    //text = text.replace(/<(\/?)TR>/g, '<$1tr>');
    //text = text.replace(/<(\/?)TBODY>/g, '<$1tbody>');
    //text = text.replace(/<(\/?)TABLE>/g, '<$1table>');
    //text = text.replace(/<(\/?)SPAN>/g, '<$1span>');
    //text = text.replace(/\r\n/g, ' ');
        
    i.value = text; //value
}

function sendForm(task, f){
    var i = document.getElementById('analyse_result');
    var text = document.getElementById('ana').innerHTML;
    text = text.replace(/&apos;/g, '&#39;'); // IE can't handle apos
    
    i.value = text;
    //var o = document.getElementById('spec_type');
    f.spec_type.value = task;
    f.submit();
}

