/*****************
Created 24.04.2007
*****************/

var url = '';
var param_pars = '';
var timerID = 0;
var timerFreq = 15000;
var complete = true;
var loading_img = '<img src="../images/mozilla_blu.gif">';
var warning_text = '';



/*********************************************
called directly from gps_mission_management.pl
*********************************************/
function start_missions(param_url, param_pars){
	url=param_url;
	pars=param_pars;
	checkType();
	updateMissionTimer();
	
}

/*************************
update timer and if last 
ajax request was complete, 
make a new one
*************************/
function updateMissionTimer(){
	if ( complete ){
		updateMissionData();   
	};
	timerID = setTimeout("updateMissionTimer()", timerFreq);
}

/************************
make a new ajax requst 
to update cars flags
************************/
function updateMissionData(){
	complete = false;
	document.getElementById("ajax_loading").innerHTML = loading_img;
	var myDate = new Date();

    var httpRequest;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) {
            httpRequest.overrideMimeType('text/xml');
        }
    } 
    else if (window.ActiveXObject) { // IE
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch (e) {
                       try {
                            httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                           } 
                         catch (e) {}
                      }
            }

    if (!httpRequest) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
        complete = true; 
        return true;
    }
    httpRequest.onreadystatechange = function(){refreshMissionData(httpRequest);};
    httpRequest.open('GET', url + '?' + pars + '&rand=' + myDate.getTime(), true);
    httpRequest.send(null);
    myDate=null;
}

/***********************
if request was completed 
succesfully redraw data
***********************/
function refreshMissionData(response){
    if ( response.readyState == 4 ){
        if ( response.status == 200 ){
            drawMissionData(eval('(' + response.responseText + ')'));
        };
        document.getElementById("ajax_loading").innerHTML = "";
        complete = true;
        return true;
    };
}

/**********************
process and redraw data
**********************/
function drawMissionData(data){
    var mymissions = data.missions;
    var list_reports = data.text.list_reports;
    
    for ( var i=0; i<mymissions.length; i++ ){
        if ( mymissions[i].task ) { 
//            $("graph_"+mymissions[i].id).style.visibility       = ( mymissions[i].task.graph == 1 )?"visible":"hidden";
//            $("xml_trail_"+mymissions[i].id).style.visibility   = ( mymissions[i].task.xml_trail==1 )?"visible":"hidden";
//            $("report_"+mymissions[i].id).style.visibility      = ( mymissions[i].task.report==1 )?"visible":"hidden";
//            $("alarms_"+mymissions[i].id).style.visibility      = ( mymissions[i].task.alarms==1 )?"visible":"hidden";
            $("pending_"+mymissions[i].id).style.visibility     = ( mymissions[i].task.pending==1 )?"visible":"hidden";
            $("schedule_"+mymissions[i].id).style.visibility    = ( mymissions[i].task.schedule==1 )?"visible":"hidden";
            if ( mymissions[i].task.status > -1 ) {
            	var src = mymissions[i].task.status == 0 ? '../images/witherrors.png' : '../images/ok_report.png';
            	$("report_"+mymissions[i].id).innerHTML = '<img src="' + src + '" border = "0" title="' + list_reports + '">';
            
             /// fill reports list
             $("myreports_"+mymissions[i].id).innerHTML='';
             for ( var j = 0; j < mymissions[i].task.reports.length; j++ ) {
             	var text = document.createTextNode(mymissions[i].task.reports[j].longname);
             	if ( mymissions[i].task.reports[j].status == 1 ) {
	             	var a = document.createElement('a');
	             	a.href = mymissions[i].task.reports[j].url;
	             	if ( mymissions[i].task.reports[j].id == 1 ) {
	             		a.target = 'map';
	             	}
	             	else {
	             		a.target = '_blank';
	             	};	
	             	a.innerHTML='<tt>' + mymissions[i].task.reports[j].longname + '</tt>';             	
	             	
	             	$("myreports_"+mymissions[i].id).appendChild(a);
	             	a = null
             	}
             	else {
					var font = document.createElement('font');
					font.color = 'red';
					font.appendChild(text);
             		$("myreports_"+mymissions[i].id).appendChild(font);
             		font = null;
             	};
				text = null;
             	
             	$("myreports_"+mymissions[i].id).appendChild(document.createElement('br'));
             };
            }
            else {
            	$("report_"+mymissions[i].id).innerHTML = '';
            };
        };
    };
    mymissions = null;
}

function checkReportSelected(mission_id) {
	var select = document.getElementsByName('report_id')[1];
	if ( select.value == 1 ) {
		self.frames['map'].location.href = 'mapctrl.cgi?trail=1&mission_id=' + mission_id;
		
		var content = document.getElementById('report_content');
		content.innerHTML = warning_text;
		content = null;
		return false;
	};
	return true;
}

function checkType() {
    if ( document.getElementsByName('search_by')[0].value == 'start_date' || document.getElementsByName('search_by')[0].value == 'end_date' ) {
        document.getElementById('mycalendar').style.display = 'block';    	
    }
    else {
        document.getElementById('mycalendar').style.display = 'none';
    };
    
}

function checkEnter(e){ //e is event object passed from function invocation
	var characterCode; //literal character code will be stored in this variable
	
	if(e && e.which){ //if which property of event object is supported (NN4)
		e = e;
		characterCode = e.which; //character code is contained in NN4's which property
	}
	else{
		e = event;
		characterCode = e.keyCode; //character code is contained in IE's keyCode property
	};
	
	if(characterCode == 13 && document.getElementsByName('search_by')[0].value != 'start_date' && document.getElementsByName('search_by')[0].value != 'end_date' ){ //if generated character code is equal to ascii 13 (if enter key)
		//document.forms['form_search'].submit(); //submit the form
		document.search['button'].click();
		e.preventDefault();
		return false;
	}
	else {
		return true;
	};
}