/*****************
Created 13.05.2009
*****************/

var isActive = true;
var timerNewAlarmsID = 0;
var timerNewAlarmsFreq = 15000;
var newcomplete = true;
var text_you_have = '';
var text_new_alarms = '';
var text_group = '';
var text_alarm = '';
var text_alarm_for = '';
var text_start_time = '';
var text_end_time = '';
var text_check_all = '';
var text_clear_all = '';
var text_fixed = '';
var text_submit = '';
var mypops = new Object;
var visible = true;
var sound_url = '../images/alarm.swf';
var lang = 'en';
var resolve_id = null;
var hidden_pop_alarms = null;
var hidden_messages = null;
var allow_alarms = 0;
var opened = null;

/* 0 - nici o operatie
 * 1 - cerere alarme noi
 * 2 - inchidere popup
 * 3 - deschidere popup
 */
var operation = 0;
var operation1 = 0;

/**************
on window load
***************/
function loadNewAlarms() {
	if ( allow_alarms && window.isActive ) {
		updateNewAlarmsTimer();
	};
}

/***************
on window unload
***************/
function unloadNewAlarmsData(){
	window.clearTimeout(timerNewAlarmsID);
}

/*************************
update timer and if last 
ajax request was complete, 
make a new one
*************************/
function updateNewAlarmsTimer(){
	if ( newcomplete == true && window.isActive ){
		updateNewAlarms();   
	};
	timerNewAlarmsID = setTimeout("updateNewAlarmsTimer()", timerNewAlarmsFreq);
}

/************************
make a new ajax requst 
to update cars flags
************************/
function updateNewAlarms(){
	newcomplete = false;
	var myDate = new Date();
	
	operation = 1;
	operation1 = 1;
	
	var param = '';
	if ( ! document.getElementById('pop_content') ) {
		param+= '&text=1';
	};
	if ( resolve_id ) {
		param+= '&resolve_id='+resolve_id;
			var myAjax = new Ajax.Request(
	        'index.cgi?content_name=alarms&ajax=1&lang='+ lang + '&new_alarms=1'+'&rand=' + myDate.getTime(), 
	        {
	            method: 'get',
	            parameters: param,
	            onComplete: refreshNewAlarms
	        }
	    )
	}
	else {
		var myAjax = new Ajax.Request(
		    'index.cgi?content_name=alarms&ajax=1&lang='+ lang + '&new_alarms=1'+param+'&rand=' + myDate.getTime(), 
		    {
		        method: 'get',
		        onComplete: refreshNewAlarms
		    }
		);
	};

    myDate=null;
}

/*************************
if request was completed 
succesfully redraw the flags
*************************/
function refreshNewAlarms(response){
    if ( response.readyState == 4 ){
        if ( response.status == 200 ){
        	if ( response.responseText.match('session expired') || response.responseText.match('empty session') ) {
        		window.location.replace('index.cgi');
        		return;
        	};
            drawNewAlarms(eval('(' + response.responseText + ')'));
        }
        else if ( response.status == 500 ) {
	    	window.location.replace('index.cgi');
	    	return;
	    };			        
        newcomplete = true;
        resolve_id = null;
        operation = 0;
        operation1 = 0;
        return true;
    };
}

function drawNewAlarms(data){
	// daca a fost initiata alta operatie , o abortam pe aceasta
	if ( operation > 1 ) {
		return true;
	};
	
	var new_alarms_obj = data.new_alarms;
	var pop_alarms = data.pop_alarms;
	if ( data.text ) {
		var text = data.text;
		text_you_have	= text.text_you_have;
		text_new_alarms	= text.text_new_alarms;
		text_group		= text.text_group;
		text_alarm		= text.text_alarm;
		text_alarm_for	= text.text_alarm_for;
		text_start_time	= text.text_start_time;
		text_end_time	= text.text_end_time;
		text_check_all	= text.text_check_all;
		text_clear_all	= text.text_clear_all;
		text_fixed		= text.text_fixed;
		text_submit		= text.text_submit;
	};
	if ( data.hidden_pop_alarms ) {
		hidden_pop_alarms = 1;
	}
	else {
		hidden_pop_alarms = null;
	};
	
	// refresh new alarms
	var myalarms = document.getElementById('new_alarms');
	if ( new_alarms_obj ) {
		if ( new_alarms_obj.length > 0 ) {
			var old_alarms = myalarms.getElementsByTagName('a');
			while ( old_alarms.length > 0 ) {
				myalarms.removeChild(old_alarms[0].nextSibling);
				myalarms.removeChild(old_alarms[0]);
			};
			
			for ( var i = 0; i < new_alarms_obj.length; i++ ) {
				var a = document.createElement('a');
				if ( i == 0 ) {
					a.id = 'all_alarms';
				}
				else {
					a.id = new_alarms_obj[i].mgroup;
				};
				a.href = new_alarms_obj[i].url;
				a.innerHTML = '<tt>'+new_alarms_obj[i].mgroup+': '+new_alarms_obj[i].no+'</tt>';
				myalarms.appendChild(a);
				a = null;
				
				myalarms.appendChild(document.createElement('br'));
			};
			
			myalarms.style.display = 'block';		
		}
		else {
			myalarms.style.display = 'none';
		};
	};	
	var beforeNode;
	var mypop = document.getElementById('popup_alarms');
	if ( pop_alarms ) {
		if ( pop_alarms.length > 0 ) {
			if ( document.getElementById('pop_no') ) {
				document.getElementById('pop_no').innerHTML = text_you_have+' '+pop_alarms.length+' '+text_new_alarms;
			}
			else {
				var div	= document.createElement('div');
				div.align = 'right';
				div.style.paddingBottom = '10px';
				div.innerHTML = '<a onclick="closePopAlarms()"><img border="0" alt="" src="../images/windowclose.gif"/></a>';
				mypop.appendChild(div);
				div = null;
				
				div = document.createElement('div');
				div.id = 'pop_no';
				div.style.paddingBottom = '15px';
				div.innerHTML = text_you_have+' '+pop_alarms.length+' '+text_new_alarms;
				mypop.appendChild(div);
				div = null;
			};
			
			if ( ! document.getElementById('pop_content') ) {
				var div = document.createElement('div');
				div.width = '100%';
				div.id = 'pop_content';
				div.style.border = 'border: 1px solid rgb(204, 204, 204)';
				div.style.overflow = 'auto';
				div.style.backgroundColor = 'white';
							
				var table = document.createElement('table');
				table.cellSpacing = 0;
				table.width = '100%';
				var tbody = document.createElement('tbody');
				var tr = document.createElement('tr');
				
				var td = document.createElement('td');
				td.style.borderBottom = '1px solid rgb(200,200,200)';
				td.style.paddingTop = '5px';
				td.innerHTML = '&nbsp;';
				tr.appendChild(td);
				td = null;
				
				td = document.createElement('td');
				td.style.borderBottom = '1px solid rgb(200,200,200)';
				td.style.paddingTop = '5px';
				td.innerHTML = text_group;
				tr.appendChild(td);
				td = null;
				
				td = document.createElement('td');
				td.style.borderBottom = '1px solid rgb(200,200,200)';
				td.style.paddingTop = '5px';
				td.innerHTML = text_alarm;
				tr.appendChild(td);
				td = null;
				
				td = document.createElement('td');
				td.style.borderBottom = '1px solid rgb(200,200,200)';
				td.style.paddingTop = '5px';
				td.innerHTML = text_alarm_for;
				tr.appendChild(td);
				td = null;
				
				td = document.createElement('td');
				td.style.borderBottom = '1px solid rgb(200,200,200)';
				td.style.paddingTop = '5px';
				td.innerHTML = text_start_time;
				tr.appendChild(td);
				td = null;
				
				td = document.createElement('td');
				td.style.borderBottom = '1px solid rgb(200,200,200)';
				td.style.paddingTop = '5px';
				td.innerHTML = text_end_time;
				tr.appendChild(td);
				td = null;
				
				tbody.appendChild(tr);
				tr = null;
				table.appendChild(tbody);
				tbody = null;
				div.appendChild(table);
				table = null;
				mypop.appendChild(div);
				div = null;
			}
			else {
				beforeNode = document.getElementById('pop_content').getElementsByTagName('table')[0].getElementsByTagName('tbody')[0].firstChild.nextSibling;
			};
			
			var content = document.getElementById('pop_content').getElementsByTagName('table')[0].getElementsByTagName('tbody')[0];
			
			// remove alarms resolved/deleted
			if ( beforeNode ) {
				var nodes = content.childNodes;
				var i = 1;
				while ( i < nodes.length ) {
					var x = nodes[i].getElementsByTagName('input')[0].id.split('_');
					if ( notExists(x[1], pop_alarms) ) {
						content.removeChild(nodes[i]);
					}
					else {
						i++;
					};
				};
			};
			
			// add new alarms
			var found_new = 0;		
			for ( var i = 0; i < pop_alarms.length; i++ ) {
				if ( ! document.getElementById('pop_'+pop_alarms[i].id) ) {
					var tr = document.createElement('tr');
					var td = document.createElement('td');
					td.style.borderBottom = '1px solid rgb(230,230,230)';
					td.style.paddingTop = '5px';
					td.innerHTML = '<input type="checkbox" name="pop_alarm_id" id="pop_'+pop_alarms[i].id+'" value="'+pop_alarms[i].id+'">';
					tr.appendChild(td);
					td = null;
					
					td = document.createElement('td');
					td.style.borderBottom = '1px solid rgb(230,230,230)';
					td.style.paddingTop = '5px';
					td.innerHTML = pop_alarms[i].group;
					tr.appendChild(td);
					td = null;
					
					td = document.createElement('td');
					td.style.borderBottom = '1px solid rgb(230,230,230)';
					td.style.paddingTop = '5px';
					td.innerHTML = pop_alarms[i].info;
					tr.appendChild(td);
					td = null;
					
					td = document.createElement('td');
					td.style.borderBottom = '1px solid rgb(230,230,230)';
					td.style.paddingTop = '5px';
					td.innerHTML = pop_alarms[i].alarm_for;
					tr.appendChild(td);
					td = null;
					
					td = document.createElement('td');
					td.style.borderBottom = '1px solid rgb(230,230,230)';
					td.style.paddingTop = '5px';
					td.innerHTML = pop_alarms[i].start_time;
					tr.appendChild(td);
					td = null;
					
					td = document.createElement('td');
					td.style.borderBottom = '1px solid rgb(230,230,230)';
					td.style.paddingTop = '5px';
					if ( pop_alarms[i].end_time ) {
						td.innerHTML = pop_alarms[i].end_time;
					}
					else {
						td.innerHTML = '&nbsp;';
					};
					tr.appendChild(td);
					td = null;
					
					if ( beforeNode ) {
						content.insertBefore(tr, beforeNode);
						beforeNode = content.firstChild.nextSibling;
					}
					else {
						content.appendChild(tr);
					};
					tr = null;
					
					found_new = 1;
				};
			};
			
			content = null;
			
			//if ( found_new == 1 ) {
				document.getElementById('play_sound').style.display = 'block';
				document.getElementById('play_sound').innerHTML = '<embed src="'+sound_url+'" autostart="true" loop=false hidden="true">';
	//			'<object type="audio/x-aif" data="../images/alarm.aif" width="200" height="20">'+
	//  '<param name="src" value="../images/alarm.aif">  <param name="autoplay" value="true">  <param name="autoStart" value="0">  alt : <a href="../images/alarm.aif">../images/alarm.aif</a>'+
	//	'</object>'; 
				//'<embed src="'+sound_url+'" autostart="true" loop=false hidden="true">';
				//document.getElementById('play_sound').style.display = 'none';
			//};
			
			if ( ! beforeNode ) {
				var div = document.createElement('div');
				div.innerHTML = '<a href="javascript:nSetChecked(true,\'pop_alarm_id\')"><tt>'+ text_check_all +'</tt></a> <a href="javascript:nSetChecked(false,\'pop_alarm_id\')"><tt>'+ text_clear_all+'</tt></a><br>';
				div.innerHTML+= '<select><option value="0">'+text_fixed+'</option></select>';
				div.innerHTML+= '<input type="button" name="resolve" onClick="resolveAlarms()" value="'+text_submit+'">';
				mypop.appendChild(div);
				div = null;
			};
			
			var wWidth = windowWidth();	
			var dHeight = document.height;
			var wHeight = windowHeight()-300;
			var left = (wWidth / 2) - 300;
			mypop.style.width = '700px';
			mypop.style.left = left+'px';
			mypop.style.top = '250px';
			
			if ( ! hidden_pop_alarms ) {
				mypop.style.display = 'block';
			}
			else {
				document.getElementById('hidden_pop_alarms').style.display = 'block';
			};
			
			if ( document.getElementById('pop_content').clientHeight > wHeight ) {
				document.getElementById('pop_content').style.height = wHeight+'px';
			};
	
			var ww = wWidth - 15;
			document.getElementById('cover_all').style.width = ww+'px';
			document.getElementById('cover_all').style.height = dHeight+'px';
			
			if ( ! hidden_pop_alarms ) {
				document.getElementById('cover_all').style.display = 'block';
			}
			else {
				document.getElementById('cover_all').style.display = 'none';
			};
		} 
		else {
			mypop.innerHTML = '';
			mypop.style.display = 'none';
			document.getElementById('cover_all').style.display = 'none';
			document.getElementById('play_sound').style.display = 'none';
			document.getElementById('play_sound').innerHTML = '';
			document.getElementById('hidden_pop_alarms').style.display = 'none';
		};
	};
	
	if ( operation1 > 1 ) {
		return true;
	};
	var hidden_messages = null;
	if ( data.hidden_messages ) {
		hidden_messages = 1;
	};
	if ( data.new_messages ) {
		drawNewMessage(data.message_text, data.new_messages, hidden_messages, data.logged_user);
	};
}

function drawNewMessage(message_text, messages, hidden_messages, logged_user) {
	var msg_div = document.getElementById('msg_div');
	
	var beforeNode;
	if ( messages && messages.length > 0 ) {
		var no_msg = messages.length;
		if ( opened ) {
			no_msg++;
		};
		if ( document.getElementById('msg_no') ) {
			document.getElementById('msg_no').innerHTML = text_you_have+' <span id="no_of_msg">'+no_msg+'</span> '+message_text.text_new_message;
		}
		else {
			var div	= document.createElement('div');
			div.align = 'right';
			div.style.paddingBottom = '10px';
			div.innerHTML = '<a onclick="closeNewMessages()"><img border="0" alt="" src="../images/windowclose.gif"/></a>';
			msg_div.appendChild(div);
			div = null;
			
			div = document.createElement('div');
			div.id = 'msg_no';
			div.style.paddingBottom = '15px';
			div.innerHTML = text_you_have+' <span id="no_of_msg">'+no_msg+'</span> '+message_text.text_new_message;
			msg_div.appendChild(div);
			div = null;
		};
		
		document.getElementById('no_new_msg').innerHTML = no_msg;
		
		if ( ! document.getElementById('msg_content') ) {
			var div = document.createElement('div');
			div.width = '100%';
			div.id = 'msg_content';
			div.style.border = 'border: 1px solid rgb(204, 204, 204)';
			div.style.overflow = 'auto';
			div.style.backgroundColor = 'white';
						
			var table = document.createElement('table');
			table.cellSpacing = 0;
			table.width = '100%';
			var tbody = document.createElement('tbody');
			var tr = document.createElement('tr');
			
			var td = document.createElement('td');
			td.style.borderBottom = '1px solid rgb(200,200,200)';
			td.style.paddingTop = '5px';
			td.innerHTML = '&nbsp;';
			tr.appendChild(td);
			td = null;
			
			td = document.createElement('td');
			td.style.borderBottom = '1px solid rgb(200,200,200)';
			td.style.paddingTop = '5px';
			td.innerHTML = message_text.text_vehicle;
			tr.appendChild(td);
			td = null;
			
			td = document.createElement('td');
			td.style.borderBottom = '1px solid rgb(200,200,200)';
			td.style.paddingTop = '5px';
			td.innerHTML = message_text.text_subject;
			tr.appendChild(td);
			td = null;
			
			td = document.createElement('td');
			td.style.borderBottom = '1px solid rgb(200,200,200)';
			td.style.paddingTop = '5px';
			td.innerHTML = message_text.text_timestamp;
			tr.appendChild(td);
			td = null;
			
			tbody.appendChild(tr);
			tr = null;
			table.appendChild(tbody);
			tbody = null;
			div.appendChild(table);
			table = null;
			msg_div.appendChild(div);
			div = null;
		}
		else {
			beforeNode = document.getElementById('msg_content').getElementsByTagName('table')[0].getElementsByTagName('tbody')[0].firstChild.nextSibling;
		};
		
		var content = document.getElementById('msg_content').getElementsByTagName('table')[0].getElementsByTagName('tbody')[0];
		
		// remove alarms resolved/deleted
		if ( beforeNode ) {
			var nodes = content.childNodes;
			var i = 1;
			while ( i < nodes.length ) {
				var x = nodes[i].getElementsByTagName('input')[0].id.split('_');
				if ( !( opened && opened == x[1] ) && notExists(x[1], messages) ) {
					content.removeChild(nodes[i]);					
					content.removeChild(document.getElementById('msg_body_'+x[1]));
				}
				else {
					i++;
				};
			};
		};

		// add new alarms
		var found_new = 0;		
		for ( var i = 0; i < messages.length; i++ ) {
			if ( ! document.getElementById('msg_'+messages[i].id) ) {
				var tr = document.createElement('tr');
				var td = document.createElement('td');
				td.style.borderBottom = '1px solid rgb(230,230,230)';
				td.style.paddingTop = '5px';
				td.innerHTML = '<input type="hidden" name="msg_id" id="msg_'+messages[i].id+'" value="'+messages[i].id+'">'+
					'<img src="../images/msg_rcv.png" border="0">';
				tr.appendChild(td);
				td = null;
				
				td = document.createElement('td');
				td.style.borderBottom = '1px solid rgb(230,230,230)';
				td.style.paddingTop = '5px';
				td.innerHTML = messages[i].gps_alias;
				tr.appendChild(td);
				td = null;
				
				td = document.createElement('td');
				td.style.borderBottom = '1px solid rgb(230,230,230)';
				td.style.paddingTop = '5px';
				var a = document.createElement('a');
				a.href = "#";
				a.setAttribute('onClick', 'showMessageBody(this, '+messages[i].id+'); return false;');
				var text = '';
				if ( messages[i].text ) {
					text = messages[i].text;
				}
				else if ( messages[i].c_text ) {
					text = messages[i].c_text;
				};
				a.innerHTML = '<tt>' + text.substr(0,30) + '</tt>';
				text = null;
				td.appendChild(a);
				td.appendChild(fillMessageBody(messages[i], message_text, logged_user));
				a = null;
				tr.appendChild(td);
				td = null;
				
				td = document.createElement('td');
				td.style.borderBottom = '1px solid rgb(230,230,230)';
				td.style.paddingTop = '5px';
				td.innerHTML = messages[i].created;
				tr.appendChild(td);
				td = null;

				if ( beforeNode ) {
					content.insertBefore(tr, beforeNode);
					beforeNode = content.firstChild.nextSibling;
				}
				else {
					content.appendChild(tr);
				};
				tr = null;
				
				found_new = 1;
			};
		};
		
		content = null;
		
		var wWidth = windowWidth();	
		var dHeight = document.height;
		var wHeight = windowHeight()-300;
		var left = (wWidth / 2) - 300;
		msg_div.style.width = '700px';
		msg_div.style.left = left+'px';
		msg_div.style.top = '250px';

		if ( ! hidden_messages ) {
			msg_div.style.display = 'block';
		}
		else {
			document.getElementById('hidden_messages').style.display = 'block';
		};

		if ( document.getElementById('msg_content').clientHeight > wHeight ) {
			document.getElementById('msg_content').style.height = wHeight+'px';
		};

		var ww = wWidth - 15;
		document.getElementById('cover_all').style.width = ww+'px';
		document.getElementById('cover_all').style.height = dHeight+'px';
		
		if ( ! hidden_messages ) {
			document.getElementById('cover_all').style.display = 'block';
		}
		else {
			document.getElementById('cover_all').style.display = 'none';
		};
	} 
	else {
		msg_div.innerHTML = '';
		msg_div.style.display = 'none';
		document.getElementById('cover_all').style.display = 'none';
		document.getElementById('hidden_messages').style.display = 'none';
	};
};

function showMessageBody(obj, msg_id) {
	operation1 = 4;
	if ( opened ) {
		if ( opened == msg_id ) {
			closeMessageBody(msg_id);
			opened = null;
		}
		else {
			showMessageBody(obj, opened);
			opened = msg_id;
			//overlay(obj, 'msg_body_'+msg_id);
			document.getElementById('msg_body_'+msg_id).style.display = 'block';
			checkMessageStatus1(msg_id);
			return false;
		};
	}
	else {
		opened = msg_id;
		//overlay(obj, 'msg_body_'+msg_id);
		document.getElementById('msg_body_'+msg_id).style.display = 'block';
		checkMessageStatus1(msg_id);
	};
	return false;	
}

function checkMessageStatus1(msg_id) {
    var myAjax = new Ajax.Request(
        server + '/main/json.cgi?set_msg_read='+msg_id,
        {
            method: 'get',
            onComplete: showMsgResponse
        }
    );
}

function setSolved(msg_id) {
	var myAjax = new Ajax.Request(
        server + '/main/json.cgi?set_msg_fixed='+msg_id,
        {
            method: 'get',
        }
    );
    var s = document.getElementById('nsolved_'+msg_id);
    s.parentNode.removeChild(s);
    s = null;
    
    closeMessageBody(msg_id);	
}

function closeMessageBody(msg_id) {
	var mbody = document.getElementById('msg_body_'+msg_id);
	mbody.style.display = 'none';
	mbody.parentNode.removeChild(mbody);
	
	opened = null;
	
	mbody = null;
	
	if ( document.getElementById('msg_'+msg_id) ) {
		var msg = document.getElementById('msg_'+msg_id);
		if ( msg.parentNode.parentNode.parentNode.childNodes.length == 2 ) {
			document.getElementById('cover_all').style.display = 'none';
			document.getElementById('msg_div').style.display = 'none';
		};
		msg.parentNode.parentNode.parentNode.removeChild(msg.parentNode.parentNode);		
		msg = null;		
	};
	
	document.getElementById('no_of_msg').innerHTML = document.getElementById('no_of_msg').innerHTML - 1;
	document.getElementById('no_new_msg').innerHTML = document.getElementById('no_of_msg').innerHTML;
}

function closeNewMessages(){
	document.getElementById('cover_all').style.display = 'none';
	document.getElementById('msg_div').style.display = 'none';
	document.getElementById('hidden_messages').style.display = 'block';
	
	operation1 = 2;
	
	var myAjax = new Ajax.Request(
        'index.cgi?content_name=alarms&ajax=1&lang='+ lang + '&hidden_messages=1', 
        {
            method: 'get',
            onComplete: showMsgResponse
        }
    );	
}

function fillMessageBody(message, message_text, logged_user) {
	var div = document.createElement('div');
	div.id = 'msg_body_'+message.id;
	div.style.position = 'absolute';
	div.style.border = '1px solid rgb(0, 51,153)';
	div.style.backgroundColor = 'white';
	div.style.padding = '8px';
	if ( opened && opened == message.id ) {
		div.style.display = 'block';
	}
	else {
		div.style.display = 'none';
	};
	div.style.zIndex = '1034';
	
	var a = document.createElement('a');
	a.setAttribute('onClick', 'closeMessageBody('+message.id+'); return false;');
	var img = document.createElement('img');
	img.src = '../images/windowclose.gif';
	img.border = '0';
	a.appendChild(img);
	img = null;
	div.appendChild(a);
	a = null;
	
	var table = document.createElement('table');
	table.width = '100%';
	var tbody = document.createElement('tbody');
	
	var tr = document.createElement('tr');
	var td = document.createElement('td');
	td.appendChild(document.createTextNode(message_text.text_message_from));
	tr.appendChild(td);
	td = null;
	td = document.createElement('td');
	td.appendChild(document.createTextNode(message.gps_alias));
	tr.appendChild(td);
	td = null;
	tbody.appendChild(tr);
	tr = null;
	
	tr = document.createElement('tr');
	td = document.createElement('td');
	td.appendChild(document.createTextNode(message_text.text_received));
	tr.appendChild(td);
	td = null;
	td = document.createElement('td');
	td.appendChild(document.createTextNode(message.created));
	tr.appendChild(td);
	td = null;
	tbody.appendChild(tr);
	tr = null;
	
	tr = document.createElement('tr');
	td = document.createElement('td');
	td.appendChild(document.createTextNode(message_text.text_message));
	tr.appendChild(td);
	td = null;
	td = document.createElement('td');
	var text = '';
	if ( message.text ) {
		text = message.text;
	}
	else {
		text = message.c_text;
	};
	td.appendChild(document.createTextNode(text));
	tr.appendChild(td);
	td = null;
	tbody.appendChild(tr);
	tr = null;
	
	tr = document.createElement('tr');
	td = document.createElement('td');
	td.appendChild(document.createTextNode(message_text.text_status));
	tr.appendChild(td);
	td = null;
	td = document.createElement('td');
	
	var status_history = message.status_history.split(',');
	var param_history = message.param.split(',');
	var adt_info = '';
	var fixed = 0;
	var found = 0;
	var stat;
	for ( var i = 0; i < status_history.length; i++ ) {
		var s = status_history[i].split('-');
		if ( s[0] == 2 ) {
			stat = message_text.status.status_received[2].text;
			adt_info = s[1]+' - '+param_history[i];
			found = 1;
			fixed = 1;
			break;
		}
		else if ( s[0] == 1 && s[1] == logged_user ) {
			stat = message_text.status.status_received[1].text;
			adt_info = param_history[i];
			found = 1;
		};
	};
	if ( found == 0 ) {
		stat = message_text.status.status_received[message.status].text;
	};
	if ( adt_info != '' ) {
		stat+='-'+adt_info;
	};
	
	td.appendChild(document.createTextNode(stat));
	tr.appendChild(td);
	td = null;
	tbody.appendChild(tr);
	tr = null;		

	tr = document.createElement('tr');
	td = document.createElement('td');
	td.appendChild(document.createTextNode(message_text.text_type));
	tr.appendChild(td);
	td = null;
	td = document.createElement('td');
	td.appendChild(document.createTextNode(message_text.status.type[message.type].textx));
	tr.appendChild(td);
	td = null;
	tbody.appendChild(tr);
	tr = null;
	
	if ( fixed == 0 ) {
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.colSpan = 2;
		td.align = 'right';
		td.id = 'nsolved_'+message.id;
		var input = document.createElement('input');
		input.type = 'checkbox';
		input.name = 'mfixed_'+message.id;
		input.setAttribute('onClick','setSolved('+message.id+')');
		td.appendChild(input);
		input = null;
		td.appendChild(document.createTextNode(message_text.text_resolved));
		tr.appendChild(td);
		td = null;
		tbody.appendChild(tr);
		tr = null;
	};	
	
	if ( message.b_message_id ) {
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.colSpan = 2;
		td.appendChild(document.createElement('hr'));
		tr.appendChild(td);
		td = null;
		tbody.appendChild(tr);
		tr = null;
			
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.colSpan = 2;
		td.appendChild(document.createTextNode(message_text.text_in_response_to));
		tr.appendChild(td);
		td = null;
		tbody.appendChild(tr);
		tr = null;
		
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.style.backgroundColor = 'rgb(244, 244, 244)';
		td.style.paddingLeft = '10px';
		td.appendChild(document.createTextNode(message_text.text_message_to));
		tr.appendChild(td);
		td = null;
		td = document.createElement('td');
		td.style.backgroundColor = 'rgb(244, 244, 244)';
		td.appendChild(document.createTextNode(message.gps_alias));
		tr.appendChild(td);
		td = null;
		tbody.appendChild(tr);
		tr = null;
		
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.style.backgroundColor = 'rgb(244, 244, 244)';
		td.style.paddingLeft = '10px';
		td.appendChild(document.createTextNode(message_text.text_sent));
		tr.appendChild(td);
		td = null;
		td = document.createElement('td');
		td.style.backgroundColor = 'rgb(244, 244, 244)';
		td.appendChild(document.createTextNode(message.b_created));
		tr.appendChild(td);
		td = null;
		tbody.appendChild(tr);
		tr = null;		
		
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.style.backgroundColor = 'rgb(244, 244, 244)';
		td.style.paddingLeft = '10px';
		td.appendChild(document.createTextNode(message_text.text_message));
		tr.appendChild(td);
		td = null;
		td = document.createElement('td');
		td.style.backgroundColor = 'rgb(244, 244, 244)';
		var text = '';
		if ( message.b_text ) {
			text = message.b_text;
		}
		else {
			text = message.c_text;
		};
		td.appendChild(document.createTextNode(text));
		tr.appendChild(td);
		td = null;
		tbody.appendChild(tr);
		tr = null;
		
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.style.backgroundColor = 'rgb(244, 244, 244)';
		td.style.paddingLeft = '10px';
		td.appendChild(document.createTextNode(message_text.text_status));
		tr.appendChild(td);
		td = null;
		td = document.createElement('td');
		td.style.backgroundColor = 'rgb(244, 244, 244)';
		td.appendChild(document.createTextNode(message_text.status.status_sent[message.b_status].text));
		tr.appendChild(td);
		td = null;
		tbody.appendChild(tr);
		tr = null;
		
		tr = document.createElement('tr');
		td = document.createElement('td');
		td.style.backgroundColor = 'rgb(244, 244, 244)';
		td.style.paddingLeft = '10px';
		td.appendChild(document.createTextNode(message_text.text_type));
		tr.appendChild(td);
		td = null;
		td = document.createElement('td');
		td.style.backgroundColor = 'rgb(244, 244, 244)';
		td.appendChild(document.createTextNode(message_text.status.type[message.b_type].textx));
		tr.appendChild(td);
		td = null;
		tbody.appendChild(tr);
		tr = null;		
	};
	
	table.appendChild(tbody);
	tbody = null;
	div.appendChild(table);
	table = null;
	
	return div;
};

function notExists(id, n_a) {
	for ( var j = 0; j < n_a.length; j++ ) {
		if ( n_a[j].id == id ) {
			return false;
		};
	};
	return true;
};

function closePopAlarms(){
	document.getElementById('cover_all').style.display = 'none';
	document.getElementById('popup_alarms').style.display = 'none';
	document.getElementById('hidden_pop_alarms').style.display = 'block';
	
	operation = 2;
	
	var myAjax = new Ajax.Request(
        'index.cgi?content_name=alarms&ajax=1&lang='+ lang + '&hidden_pop_alarms=1', 
        {
            method: 'get',
            onComplete: showResponse
        }
    );
}

function showMsgResponse(response){
	if ( response.readyState == 4 ){
        if ( response.status == 200 ){
        	if ( response.responseText.match('session expired') || response.responseText.match('empty session') ) {
				window.location.replace('index.cgi');
				return;
			};
        	operation1 = 0;
//            if ( hidden_pop_alarms == -2 ) {
//            	document.getElementById('hidden_pop_alarms').style.display = 'none';
//				document.getElementById('popup_alarms').style.display = 'block';
//				document.getElementById('cover_all').style.display = 'block';
//            };
        }
        else if ( response.status == 500 ) {
	    	window.location.replace('index.cgi');
	    	return;
	    };			        
        return true;
    };
}

function showResponse(response){
	if ( response.readyState == 4 ){
        if ( response.status == 200 ){
        	if ( response.responseText.match('session expired') || response.responseText.match('empty session') ) {
				window.location.replace('index.cgi');
				return;
			};
        	operation = 0;
//            if ( hidden_pop_alarms == -2 ) {
//            	document.getElementById('hidden_pop_alarms').style.display = 'none';
//				document.getElementById('popup_alarms').style.display = 'block';
//				document.getElementById('cover_all').style.display = 'block';
//            };
        }
        else if ( response.status == 500 ) {
	    	window.location.replace('index.cgi');
	    	return;
	    };			        
        return true;
    };
}

function showHiddenMessages(){
	document.getElementById('hidden_messages').style.display = 'none';
	document.getElementById('msg_div').style.display = 'block';
	document.getElementById('cover_all').style.display = 'block';
	
	operation1 = 3;
	
	var myAjax = new Ajax.Request(
        'index.cgi?content_name=alarms&ajax=1&lang='+ lang + '&hidden_messages=2', 
        {
            method: 'get',
            onComplete: showMsgResponse
        }
    );
}

function showPopAlarms(){
	document.getElementById('hidden_pop_alarms').style.display = 'none';
	document.getElementById('popup_alarms').style.display = 'block';
	document.getElementById('cover_all').style.display = 'block';
	
	operation = 3;
	
	var myAjax = new Ajax.Request(
        'index.cgi?content_name=alarms&ajax=1&lang='+ lang + '&hidden_pop_alarms=2', 
        {
            method: 'get',
            onComplete: showResponse
        }
    );
}

function resolveAlarms(){
	var checks = document.getElementsByName('pop_alarm_id');
	var ids = new Array;
	for ( var i = 0; i < checks.length; i++ ) {
		if ( checks[i].checked == true ) {
			ids.push(checks[i].value);
		};
	};
	if ( ids.length > 0 ) {
		resolve_id = ids.join(',');
		updateNewAlarms();
	};
}

function resolveAlarm(alarm_id) {
	resolve_id = alarm_id;
	updateNewAlarms();
}

function nSetChecked (flag, name) {
	var checks = document.getElementsByName(name);
	for ( var i = 0; i < checks.length; i++ ) {
		checks[i].checked = flag;
	};
	return;
}

function windowWidth() {
	// Standard browsers (Mozilla, Safari, etc.)
	if (self.innerWidth)
		return self.innerWidth;
	// IE 6
	if (document.documentElement && document.documentElement.clientWidth)
		return document.documentElement.clientWidth;
	// IE 5
	if (document.body)
		return document.body.clientWidth;
	// Just in case.
	return 0;
}

function windowHeight() {
	// Standard browsers (Mozilla, Safari, etc.)
	if (self.innerHeight)
		return self.innerHeight;
	// IE 6
	if (document.documentElement && document.documentElement.clientHeight)
		return document.documentElement.clientHeight;
	// IE 5
	if (document.body)
		return document.body.clientHeight;
	// Just in case.
	return 0;
}

//window.load = load();
//window.unload = unloadNewAlarmsData();

window.onfocus = function () { 
  isActive = true; 
}; 

window.onblur = function () { 
  isActive = false; 
};
