// global variable
var gepas_root_url = '';
var logged = 0;
var lastJobs = "";

//---------------------------------
// UMIndex()
//---------------------------------
function UMIndex()
{
	makeGetRequestPlus("CheckLogged", null, "swapJobsViz");
	makeGetRequest(gepas_root_url + "Jobs", null, "left_zone");
	makeGetRequest(gepas_root_url + "Commands", null, "commands_zone");
  	makeGetRequest(gepas_root_url + "Info", null, "info_zone");
  	makeGetRequest(gepas_root_url + "Counters", null, "counters_zone");

  	autoRefreshUM();
  	setInterval(autoRefreshUM, 4000);
}

//---------------------------------
// autoRefreshUM()
//---------------------------------
var counters = "";
var put_finish = 1;
function autoRefreshUM()
{
	makeGetRequestPlus("CheckLogged", null, "swapJobsViz");
	if ( logged == 1 ) {
    	var params = "?nocaching=" + Math.random();
	var http = getHTTPObject(); // We create the HTTP Object
    	http.open("POST", gepas_root_url + "Counters", true);
    	http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	http.setRequestHeader("Cache-Control", "no-cache");
    	http.onreadystatechange = function() {
      		if (http.readyState == 4) {
        		if (http.status == 200) {
          			if ( logged == 1 ) {
            			//alert("autoRefresh: logged = (" + logged + ")(" + http.responseText + ")");
            			if (http.responseText.indexOf("&nbsp;&nbsp;&nbsp;")!=-1) {
	        			//if ( http.responseText == "&nbsp;&nbsp;&nbsp;" ) {
		      				if ( put_finish == 1 ) {
							put_finish = 0;
							alert("Your session has finished. For registered users, session data is stored in the server for next sessions. However, for anonymous users, session data will be lost.");
						}
	          				logged = 0;
		      				UMIndex();
            			} else {
              				put_finish = 1;
              				//if ( counters != http.responseText ) {
                			//	counters = http.responseText;
				  	makeGetRequest(gepas_root_url + "Jobs", null, "left_zone");
					//makeGetRequestPlus(gepas_root_url + "Jobs", null, "newJob");
              				//}
            			}
				      	document.getElementsByName('counters_zone').item(0).innerHTML = http.responseText; 
          			}
        		}
      		}
    	}
    	http.send(params);
	}
}

function newJob(jobs){
if (jobs!=lastJobs){
	document.getElementById(left_zone).innerHTML = http.responseText;
	lastJobs=jobs;
}else{
 alert("igual");
}
}


//---------------------------------
// handleRegister
//---------------------------------
function handleRegister(form_id) 
{  	//google_tracing();
 
        var params = "";
  	if (form_id) {
    	var mode = document.getElementsByName(form_id).item(0).mode.value;
    	params = "mode=" + mode;
    	//alert('pepe - ' + mode);
    	if ( mode == 'Register' ) {
      		var t1 = document.getElementsByName(form_id).item(0).t1.value;
      		var t2 = document.getElementsByName(form_id).item(0).t2.value; 
      		var t3 = document.getElementsByName(form_id).item(0).t3.value; 
      		if (! t1 ) { alert("Please, enter your 'Username'"); return; }
      		if (! t2 ) { alert("Please, enter your 'Password'"); return; }
      		if (! t3 ) { alert("Please, enter your 'E-mail'"); return; }
      		params += ("&t1=" + t1 + "&t2=" + t2 + "&t3=" + t3);
    	}
    	//alert("params = " + params);
  	} else {
    	params = "mode=regform";
  	}
  
  	//alert("display form");
  	var http = getHTTPObject(); // We create the HTTP Object
	params = "?nocaching=" + Math.random() + "&" + params;
  	http.open("POST", gepas_root_url + "Register", true);
  	http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  	http.setRequestHeader("Cache-Control", "no-cache");
  	http.onreadystatechange = function() {
    	if (http.readyState == 4) {
      		if (http.status == 200) {
	    		var empty = is_empty(http.responseText);
	    		var alert_msg = get_alert(http.responseText);
	    		if (alert_msg) { 
	      			//show_loading_window(alert_msg);
          			//setTimeout(hide_loading_window(),2000);
	      			alert(alert_msg); 
        		}
        		//alert("("+http.responseText+")");
        		if (! empty) {
          			if(http.responseText.indexOf("registered")!=-1){ 
	      			//if ( http.responseText == "registered" ) {
	        			//handleMyProjects(); 
	        			//show_loading_window("Welcome to GEPAS. You will be redirected to your Projects page.");
	        			//alert("Welcome to BABELOMICS. You will be redirected to your Projects page.");
	        			logged = 1;
	        			makeGetRequest(gepas_root_url + "Commands", null, "commands_zone");
	        			makeGetRequest(gepas_root_url + "Info", null, "info_zone");
	        			makeGetRequest(gepas_root_url + "Projects", null, "work_area");
	        			makeGetRequest(gepas_root_url + "Jobs", null, "left_zone");
					//show("left_zone_frame");
          			} else {
            			document.getElementsByName('work_area').item(0).innerHTML = http.responseText; 
          			}
        		}
  	    		//handleUserInfo();
      		}
    	}
  	}
  	http.send(params);
}

//---------------------------------
// handleLogIn
//---------------------------------
function handleLogIn(form_id) 
{
	var params = "";
  	if (form_id) {
    	var t1 = document.getElementsByName(form_id).item(0).t1.value;
    	var t2 = document.getElementsByName(form_id).item(0).t2.value; 
    	var mode = document.getElementsByName(form_id).item(0).mode.value; 
    	if ( mode == "Password") {
        	if (! t1 ) { alert("To send your password to your e-mail box, please, enter your 'Username'"); return; }
        	params = "mode=" + mode + "&t1=" + t1;
    	} else { 
      		//alert(form_id);
      		//alert(document.getElementById(form_id));
     		if (! t1 ) { alert("Please, enter your 'Username'"); return; }
      		if (! t2 ) { alert("Please, enter your 'Password'"); return; }
      		params = "mode=" + mode + "&t1=" + t1 + "&t2=" + t2;
    	}
  	} else {
    	params = "mode=loginform";
  	}
  
  	//alert("display form");
  	var http = getHTTPObject(); // We create the HTTP Object
	params = "?nocaching=" + Math.random() + "&" + params;
  	http.open("POST", gepas_root_url + "Register", true);
  	http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  	http.setRequestHeader("Cache-Control", "no-cache");
  	http.onreadystatechange = function() {
    	if (http.readyState == 4) {
      		if (http.status == 200) {
				var empty = is_empty(http.responseText);
				var alert_msg = get_alert(http.responseText);
				if (alert_msg) { 
	  				//show_loading_window(alert_msg);
	  				//setTimeout(hide_loading_window(),2000);
	  				alert(alert_msg); 
				}
        		if (! empty) { 
				if ( http.responseText == "unknown" ) {
					alert('Unknown user!! check your username and password');
				}else {
					if ( http.responseText == "logged" ) {
					//handleProjects(); 
					//show_loading_window("Welcome to GEPAS. You will be redirected to your Projects page.");
					//alert("Welcome to BABELOMICS. You will be redirected to your Projects page.");
					logged = 1;
					makeGetRequest(gepas_root_url + "Commands", null, "commands_zone");
					makeGetRequest(gepas_root_url + "Info", null, "info_zone");
					makeGetRequest(gepas_root_url + "Projects", null, "work_area");
					makeGetRequest(gepas_root_url + "Jobs", null, "left_zone");
					//show("left_zone_frame");
					} else {
					document.getElementsByName('work_area').item(0).innerHTML = http.responseText;
					document.getElementsByName('t1').item(0).focus();
					}
				}
        		}
  	    		//handleUserInfo();
      		}
    	}
  	}
  	http.send(params);
}

//---------------------------------
// handleLogOut
//---------------------------------
function handleLogOut() 
{
	var params = "mode=logout";
 	var http = getHTTPObject(); // We create the HTTP Object

  	//google_tracing();
	params = "?nocaching=" + Math.random() + "&" + params;
	http.open("POST", gepas_root_url + "Register", true);	
	http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Cache-Control", "no-cache");
	http.onreadystatechange = function() {
    	if (http.readyState == 4) {
      		if (http.status == 200) {
        		logged = 0;
				UMIndex();
  				makeGetRequest("Welcome", null, "work_area");
      		}
   		}
	}
	http.send(params);
        hide(document.getElementsByName("left_zone_frame").item(0));
}

//---------------------------------
// handleProjects
//---------------------------------
function handleProjects(mode, id) 
{
	var http = getHTTPObject(); // We create the HTTP Object
	
	var name, newname;
	
	name = document.getElementsByName('project_name_textbox').item(0).value;
	if ( id ) {
	  newname = document.getElementsByName('rename_project_' + id + '_textbox').item(0).value;
	  //newname = document.getElementById('rename_project_13').value;
	}
	//alert('(mode, id, name, newname) = (' + mode + ', ' + id + ', ' + name + ', ' + newname + ')');
	//google_tracing();

	if (mode == "new") {
		name = name = document.getElementsByName('new_project_name').item(0).value;
		if (name=="") name="untitled";
	}

	var params = 'mode=' + mode + '&id=' + id + '&name=' + name + '&newname=' + newname;

	params = "?nocaching=" + Math.random() + "&" + params;
  	http.open("POST", gepas_root_url + "Projects", true);
	http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Cache-Control", "no-cache");
	http.onreadystatechange = function() {
  		if (http.readyState == 4) {
      		if (http.status == 200) {
			var empty = is_empty(http.responseText);
			var alert_msg = get_alert(http.responseText);
			if (alert_msg) { alert(alert_msg); }
        		if (! empty) { 
				  document.getElementsByName('work_area').item(0).innerHTML = http.responseText; 
		       		  makeGetRequest(gepas_root_url + "Commands", null, "commands_zone");
       				  makeGetRequest(gepas_root_url + "Info", null, "info_zone");
			}
      		}
    	}
  	}
  	http.send(params);
}

//---------------------------------
// handleJobs
//---------------------------------
function handleJobs(mode, id) 
{

	//show("left_zone_frame");
	var http = getHTTPObject(); // We create the HTTP Object
	
	var newname;
	
	if ( id ) {
	  newname = document.getElementsByName('rename_job_' + id + '_textbox').item(0).value;
	}
	//alert('(mode, id, name, newname) = (' + mode + ', ' + id + ', ' + name + ', ' + newname + ')');
	//google_tracing();

	var params = 'mode=' + mode + '&id=' + id + '&newname=' + newname;
	//alert(params);

	params = "?nocaching=" + Math.random() + "&" + params;
  	http.open("POST", gepas_root_url + "Projects", true);
	http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Cache-Control", "no-cache");
	http.onreadystatechange = function() {
  		if (http.readyState == 4) {
			if (http.status == 200) {
				makeGetRequest(gepas_root_url + "Commands", null, "commands_zone");
				makeGetRequest(gepas_root_url + "Info", null, "info_zone");
				document.getElementsByName('work_area').item(0).innerHTML = http.responseText; 
				
			}
    		}
  	}
  	http.send(params);
}

//---------------------------------
// handleTool
//---------------------------------
function handleTool(cgi, params, id) 
{
    var http = getHTTPObject(); // We create the HTTP Object

    //google_tracing();

    http.open("POST", gepas_root_url + "RunJob", true);
    http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    http.setRequestHeader("Cache-Control", "no-cache");
    http.onreadystatechange = function() {
        if (http.readyState == 4) {
            if (http.status == 200) {
	            document.getElementsByName('work_area').item(0).innerHTML = "Job (" + cgi + ")<br>" + http.responseText; 
	            //document.getElementById('work_area').innerHTML = http.responseText;
            }
        }
    }
    http.send(params);
}




// function conectaComoDemo(){
//   	var http = getHTTPObject(); // We create the HTTP Object
//   	http.open("POST", gepas_root_url + "Register", true);
//   	http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//   	http.setRequestHeader("Cache-Control", "no-cache");
//   	
//   	http.onreadystatechange = function() {
//     	if (http.readyState == 4) {
//       		if (http.status == 200) {
// 	    		var empty = is_empty(http.responseText);
//         		if (! empty) {
//           			if ( http.responseText == "logged" ) {
// 	      				logged = 1;
// 	        			makeGetRequest(gepas_root_url + "Jobs", null, "left_zone");
// 					makeGetRequest(gepas_root_url + "Projects", null, "work_area");
// 					makeGetRequest(gepas_root_url + "Commands", null, "commands_zone");
// 					makeGetRequest(gepas_root_url + "Info", null, "info_zone");
// 					//show("left_zone_frame");
//           			} else {
//             				//alert("ai cant de mor");
//           			}
//         		}  	    		
//       		}
//     	}
//   	}
//   	http.send("mode=Log%20in&t1=demo&t2=demo");
// }
