// #############################################
// ETE web GUI. AJAX version  
// Jaime Huerta-Cepas jhuerta@crg.es
//
// #############################################

function showInfo(){
}
function hideInfo(){
}


function set_default_action(act){
    var d_action = document.getElementById("default_action");
    d_action.value=act;
}

function get_global_params(){
  var IP        = document.getElementById("host").value;
  var PORT      = document.getElementById("port").value;
  var UNIQUEID  = document.getElementById("uniqueid").value;
  var IMGNAME    = document.getElementById("imgname").value;
  params = {'host':IP, 'port':PORT, 'session_id':UNIQUEID,  'imgname': IMGNAME};
  return params;
}

function start_viewer(tree_path, imgname){
    var action = "LOAD_TREE "+tree_path+"!CHANGE_STYLE rooted!ALIGN_NAMES!";
    var params = {'action':action, 'imgname':imgname}
    params.action = action;
    ete.execute(params, "ete_main");
}

function execute_cmd(action){
  var params = get_global_params();
  params.action = action;
  ete.execute(params, null);
}

function execute_point(pos){
    var d_action = document.getElementById("default_action").value;
    params = get_global_params();
    params.action = d_action+' '+pos[0]+' '+pos[1]+'!';
    ete.execute(params, null);
}

function change_tree_style(style){
    
    params = get_global_params();
    params.action = 'CHANGE_STYLE '+style;
    ete.execute(params, null);
}

function transpose_profile(){
    params = get_global_params();
    params.action = 'INVERT_PROFILE ';
    ete.execute(params, null);
}

function search(){
    var search = document.getElementById("ete_search_layer");
    params = get_global_params();
    params.action = 'SEARCH '+search.value;
    ete.execute(params, null);
}

function clean_search(){
    params = get_global_params();
    params.action = 'CLEAN_SEARCH '
    ete.execute(params, null);
}


function close_server(){
    params = get_global_params();
    params.action = 'EXIT '
    ete.execute(params,null);
}

function update_main_image(){
  var mainImage   = document.getElementById("mainImage") ;
  var IMAGEURL    = document.getElementById("imageurl").value ;
  mainImage.src   = IMAGEURL+"?"+ Math.random();	    
}

function execute_post_action(response,refresh_img){
  var d_action = document.getElementById("default_action").value;
  if( refresh_img){
    update_main_image();
  }
  else if (d_action == "WRITE_NODE_INFO" && response!= ""){
    show_window("info_window", response,500,500);
  }
}


function new_ajax_connector()
{
    if (typeof XMLHttpRequest != 'undefined') {
        return new XMLHttpRequest();
    }
    try {
	return new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
	try {
	    return new ActiveXObject("Microsoft.XMLHTTP");
	} catch (e) {}
    }
    return false;
}

var ete = {
    execute: function(params, container) {
	ajax = new_ajax_connector();
	ajax.onreadystatechange=function(){
	    if(ajax.readyState==1){
		//what ever you want
	    }
	    // loaded
	    else if(ajax.readyState==2){   }
	    // interactive
	    else if(ajax.readyState==3){   }
	    // complete
	    else if(ajax.readyState==4){
		if (container!=null){
		    var layer = document.getElementById(container);
		    layer.innerHTML = ajax.responseText;
		}else{
		    var cTime = new Date()
		    var image = document.getElementById("mainImage");
		    var image_url = document.getElementById("imageurl").value;
		    image.src= image_url+"?"+String(cTime.getTime());
		}
	    }
	}
	var params_url="?";
	for (var key in params) {
	    params_url+=key+"="+params[key]+"&";
	}
	URL = ETE_PATH+"/ete_server/run_action"+params_url 
	ajax.open("GET",URL,true);
	//	alert(params_url);
	//Send the proper header information along with the request
	//ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	//ajax.setRequestHeader("Content-length", params_url.length);
	//ajax.setRequestHeader("Connection", "close");
	//ajax.send(params_url);
	ajax.send(null);

    }
}



