var currentPage=0;

function delete_message(id,c) {
	if(document.getElementById('delbox_'+id).checked) {
		document.getElementById('tr_'+id).style.background = '#FFC0CB';
		if(confirm('Are you sure that you want to delete this message?')) {
			AJAXRequest("POST",'im.php','deletion='+document.getElementById('delbox_'+id).value+'&rowid='+id, supprMessage,true);
		} else {
			document.getElementById('tr_'+id).style.background = c;
			document.getElementById('delbox_'+id).checked = false;
		}
	} else {
		document.getElementById('tr_'+id).style.background = c;
	}
}

function supprMessage(xmlObject) {
	var xmlDoc = xmlObject.responseXML;
	var messagerie = xmlDoc.getElementsByTagName('messagerie')[0];
	var status = messagerie.getElementsByTagName('status')[0];
	switch(status.firstChild.nodeValue) {
		case '1':
			var rowid = status.getAttribute('rowid');
			document.getElementById('msg1').innerHTML -= 1;
			document.getElementById('msg2').innerHTML -= 1;
			document.getElementById('tr_'+rowid).style.display = 'none';
			document.getElementById('status').innerHTML = 'Message deleted';
		break;
		default:
			alert('Database error');
		break;
	}
}

function newMessageForm() {
	if(document.getElementById('nmf').style.visibility == 'hidden') {
		document.getElementById('nmf').style.visibility = 'visible';
		document.getElementById('nmf').style.display = 'block';
		document.getElementById('to').focus();
	} else {
		document.getElementById('nmf').style.visibility = 'hidden';
		document.getElementById('nmf').style.display = 'none';
	}
}

function cancelMessage() {
	document.getElementById('nmf').style.visibility = 'hidden';
	document.getElementById('nmf').style.display = 'none';
}

function newMessageStatus(xmlObject) {
	document.getElementById('msg_status').innerHTML = xmlObject.responseXML.getElementsByTagName('messenger')[0].getElementsByTagName('status')[0].firstChild.nodeValue;
}

function sendMessage() {
	var id = encodeURI(document.getElementById('to').value);
	var sender = encodeURI(document.getElementById('sender').value);
	var subject = encodeURI(document.getElementById('subject').value);
	var message = encodeURI(document.getElementById('message').value);
	var parameters = 'cmd=send&message='+message+"&to="+id+"&subject="+subject+"&sender="+sender;
	AJAXRequest("POST",'msg.php',parameters,newMessageStatus);
}

function afficheMessage(xmlObject) {
	var xmlDoc = xmlObject.responseXML;
	var messagerie = xmlDoc.getElementsByTagName('messagerie')[0];
	var expediteur = messagerie.getElementsByTagName('expediteur')[0].firstChild.nodeValue;
	var date = messagerie.getElementsByTagName('date')[0].firstChild.nodeValue;
	var objet = messagerie.getElementsByTagName('subject')[0].firstChild.nodeValue;
	var message = messagerie.getElementsByTagName('message')[0].firstChild.nodeValue;
	var html = '<span style="text-align: left; width: 100%"><a href="#" onClick="newMessageForm()">Reply</a></span> \
					<table border="0" cellspacing="0" width="100%" style="border: 1px solid #e01616"> \
<tr class="table_head"><td width="5%">From:</td><td>'+expediteur+'</td></tr> \
<tr class="table_head"><td width="5%">Subject:</td><td>'+objet+'</td></tr> \
<tr class="table_head"><td width="5%">Date:</td><td>'+date+'</td></tr> \
<tr style="height: 300px; background: transparent;color: #069"><td colspan="2" valign="top">'+message+'</td></tr></table>';
	document.getElementById('content').innerHTML = html;
	document.getElementById('sender').value = expediteur;
	document.getElementById('subject').value = "Re: "+objet;
}

function lireMessage(msgid) {
	AJAXRequest("POST",'im.php','action=lire&id='+msgid, afficheMessage,true);
}

function afficheMessages(xmlObject) {
	var xmlDoc = xmlObject.responseXML;
	var messagerie = xmlDoc.getElementsByTagName('messagerie')[0];
	var from = messagerie.getAttribute('from');
	var to = messagerie.getAttribute('to');
	var of = messagerie.getAttribute('of');
	var items = messagerie.getElementsByTagName('item');
	var pages = messagerie.getElementsByTagName('page');
	currentPage = messagerie.getElementsByTagName('currentPage')[0].firstChild.nodeValue;
	var html = '	<table border="0" cellspacing="0" width="100%"> \
					<tr><td>Messages from <span id="msg0">'+from+'</span> to <span id="msg1">'+to+'</span> of <span id="msg2">'+of+'</span><br> \
					<span id="status" style="color: #f00"></span></td> \
					<td align="right" valign="top">Order by: <select id="sortSelector" onChange="sortBy(this.options[this.selectedIndex].value)"><option value="">&nbsp;</option><option value="timestamp">Date</option><option value="subject">Subject</option> \
						</select></td></tr></table> \
					<form action="#"> \
					<table border="0" width="100%" cellspacing="0"><tr class="table_head"><td width="6%">&nbsp;</td><td width="6%">&nbsp;</td><td width="20%">From</td><td width="20%">Date</td><td>Subject</td></tr>';
	for(i=0;i<items.length;i++) {
		if(i%2) {
			rowcolor = '#eeeeee';
		} else {
			rowcolor = '#bbbbbb';
		}
		la_date = items[i].getElementsByTagName('date')[0].firstChild.nodeValue;
		objet = items[i].getElementsByTagName('subject')[0].firstChild.nodeValue;
		msgID = items[i].getAttribute('id');
		username = items[i].getElementsByTagName('username')[0].firstChild.nodeValue;
		userid = items[i].getElementsByTagName('userid')[0].firstChild.nodeValue;
		icon = items[i].getElementsByTagName('icon')[0].firstChild.nodeValue;
		html += '<tr id="tr_'+i+'" bgcolor="'+rowcolor+'" valign="top"><td><img src="images/'+icon+'" alt=" "></td><td><input id="delbox_'+i+'" onClick="delete_message(\''+i+'\',\''+rowcolor+'\')" type="checkbox" name="deletion[]" value="'+msgID+'"></td><td><a href="/user/'+userid+'">'+username+'</a></td><td>'+la_date+'</td><td><a href="#" onClick="lireMessage(\''+msgID+'\')">'+objet+'</a></td></tr>';
	}
	html += '</table></form><br><div align="center">';
	for(i=0;i<pages.length;i++) {
		page = pages[i].firstChild.nodeValue;
		if(currentPage == pages[i].getAttribute('n')) {
			html += '<b>'+page+'</b>';
		} else {
			html += '<a href="#" onClick="AJAXRequest(\'POST\',\'im.php\',\'page=\'+'+pages[i].getAttribute('n')+',afficheMessages,true)">'+page+'</a> ';
		}
	}
	document.getElementById('content').innerHTML = html+'</div>';
	
}

function myMessages() {
	AJAXRequest("GET",'im.php','page='+currentPage,afficheMessages,true);
}

function sortBy(field) {
	AJAXRequest("GET",'im.php','page='+currentPage+'&order='+field,afficheMessages,true);
}