/*****************
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 = '';
var myserver = '';
var download_reports = '';
var creating_archive = '';
var download_archive = '';
var mystart_date = '';
var myend_date='';
var mytype='';
var mymission_day = '';
var lang = '';


/*********************************************
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 myAjax = new Ajax.Request(
        url + '?' + pars + '&rand=' + myDate.getTime(), 
        {
            method: 'get',
            onComplete: refreshMissionData
        }
    );

    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;
    var allow_make_zip = data.allow_make_zip;
    
    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 + '">';
            	if ( allow_make_zip == 1 ) {
            		$("report_"+mymissions[i].id).nextSibling.nextSibling.innerHTML = '<img src="../images/ark_addfile 2.png" border = "0" title="' + download_reports + '">';
            		var zp;
            		if ( zp = document.getElementById('zip_'+mymissions[i].gps_id+'_'+mymissions[i].id+'_[]') ) {
            			var rp = new Array();
            			for ( var j = 0; j< mymissions[i].task.reports.length; j++ ) {
            				rp.push(mymissions[i].task.reports[j].id);
            			};
            			zp.id = 'zip_'+mymissions[i].gps_id+'_'+mymissions[i].id+'_['+rp.join(',')+']';
            			$("report_"+mymissions[i].id).nextSibling.nextSibling.setAttribute('onClick', 'return zipOverlay(this, "'+zp.id+'", "right");');
            		};
            		zp=null;
            	};
            	
            	
             /// fill reports list
             var rep = [];
             $("myreports_"+mymissions[i].id).innerHTML='';
             for ( var j = 0; j < mymissions[i].task.reports.length; j++ ) {
             	rep.push(mymissions[i].task.reports[j].id);
             	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 zipOverlayInterval(obj, id) {
	var params = '';
	params+= '&gps_id=' + document.getElementsByName('zip_vehicle')[0].value;
	params+= '&start_date=' + document.getElementById('date3').value;
	params+= '&end_date=' + document.getElementById('date4').value;
	
    var myAjax = new Ajax.Request(
    url + '?lang=' + lang + '&make_all_zip=1' + params, 
    {
        method: 'get',
        onComplete: archiveIntervalCreated
    });
	document.getElementById(id).innerHTML = creating_archive;
	return overlay(obj, id);	
}

function zipOverlay(obj, id, position) {
	var array = id.split('_');
	var params = '';
	if ( mystart_date != '' ) {
		params+= '&start_date=' + mystart_date;
	};
	if ( myend_date != '' ) {
		params+= '&end_date=' + myend_date;
	};
	if ( mytype != '' ) {
		params+= '&type=' + mytype;
	};
	if ( mymission_day != '' ) {
		params+='&mission_day=' + mymission_day;
	};
	
    var myAjax = new Ajax.Request(
    url + '?lang=' + lang + '&make_zip=1&gps_id=' + array[1] + '&mission_id=' + array[2] + '&reports=' + array[3] + params, 
    {
        method: 'get',
        onComplete: archiveCreated
    });
	document.getElementById(id).innerHTML = creating_archive;
	return overlay(obj, id, position);
}

function archiveIntervalCreated(response) {
	var data = eval('(' + response.responseText + ')');
	var start = data.start_date;
	var end = data.end_date;
	
	if ( data.done == 1 ) {
		document.getElementById('creating_zip_reports').innerHTML = '';
		
		var div = document.createElement('div');
		div.align = 'right';
		
		var aa = document.createElement('a');
		aa.href = '#creating_zip_reports';
		aa.setAttribute('onclick', 'overlayclose("creating_zip_reports"); return false;');
		aa.innerHTML = '<img src="../images/windowclose.gif" border="0" alt="">';
		div.appendChild(aa);
		
		document.getElementById('creating_zip_reports').appendChild(div);
		
		var a = document.createElement('a');
		a.href = myserver + '/archive/' + start + '_' + end + '_reports.zip';
		a.innerHTML = download_archive;
		a.setAttribute('onmouseup', 'overlayclose("creating_zip_reports"); return false;');	
		document.getElementById('creating_zip_reports').appendChild(a);
		a = null;
	}
	else {
		document.getElementById('creating_zip_reports').innerHTML = 'Archive not created!';
	};	
}

function archiveCreated(response) {
	var data = eval('(' + response.responseText + ')');
	var gps_id = data.gps_id;
	var mission_id = data.mission_id;
	var imei = data.imei;
	var r = data.reports.join(',');
	r = '[' + r + ']';
	
	if ( data.done == 1 ) {
		document.getElementById('zip_' + gps_id + '_' + mission_id + '_' + r).innerHTML = '';
		
		var div = document.createElement('div');
		div.align = 'right';
		
		var aa = document.createElement('a');
		aa.href = '#zip_'+gps_id+'_'+mission_id+'_'+r;
		aa.setAttribute('onclick', 'overlayclose("zip_'+gps_id+'_'+mission_id+'_'+r+'"); return false;');
		aa.innerHTML = '<img src="../images/windowclose.gif" border="0" alt="">';
		div.appendChild(aa);
		
		document.getElementById('zip_' + gps_id + '_' + mission_id + '_' + r).appendChild(div);
		
		var a = document.createElement('a');
		a.href = myserver + '/archive/' + gps_id +'/' + mission_id + '/' + imei + '_' + mission_id + '_reports.zip';
		a.innerHTML = download_archive;
		a.setAttribute('onmouseup', 'overlayclose("zip_'+gps_id+'_'+mission_id+'_'+r+'"); return false;');	
		document.getElementById('zip_' + gps_id + '_' + mission_id + '_' + r).appendChild(a);
		a = null;
	}
	else {
		document.getElementById('zip_' + gps_id + '_' + mission_id + '_' + r).innerHTML = 'Archive not created!';
	};
};

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;
	};
}