//var MsgboxPath	= 'http://www.localhost.com.py/viveamor/shared/sections_inc/messagebox/';
//var MsgboxPath	= 'http://localhost/shared/sections_inc/messagebox/';
var MsgboxPath	= 'http://www.viveamor.com/shared/sections_inc/messagebox/';
var ClassTabOn	= 'TABMSGON';
var ClassTabOff	= 'TABMSGOFF';
var TabInbox	= 'tab_inbox';
var TabSent		= 'tab_sent';
var TabTrash	= 'tab_trash';
var InboxContent = 'message_inbox_list_for_ajax.php';
var SentContent  = 'message_sent_list_for_ajax.php';
var TrashContent = 'message_trash_list_for_ajax.php';
var ReadContent  = 'message_read_for_ajax.php';
var ComposeCont  = 'message_compose_for_ajax.php';
var CheckContent = 'message_check.php';
var MsgBoxBody	 = 'msgbox_body';
var MsgLoading	 = 'Cargando...';
var MsgOpening	 = 'Abriendo...';
var MsgSending	 = 'Enviando...';
var MsgDeleting	 = 'Eliminando...';
var MsgRefreshing= 'Actualizando...';
var MsgFlag		 = 'Marcando...';
var MsgMaxLength = 3072;
var MsgMinLength = 2;
var LoadingImg	= '';

//funciones varias
function AJAXobj(){
	try{
		AJAXobj = new ActiveXObject("Msxml2.XMLHTTP");
	} catch(e){
		try{
			AJAXobj = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			AJAXobj = false;
		}
	}
	if(! AJAXobj && typeof XMLHttpRequest != 'undefined'){
		AJAXobj = new XMLHttpRequest();
	}
	return AJAXobj;
}

function flagMsg(message){
	document.getElementById("flagtxt").innerHTML = message;
}

function clearAll(){
	document.getElementById("procedure").value		= '';
	document.getElementById("selectedMsgs").value	= '';
	document.getElementById("replyMsg").value = 0;
}

function SwitchMsgBox(folder){
	
	flagMsg(MsgLoading);

	switch(folder){
		case 'Inbox':
			SelectTab(TabInbox);
			LoadMessageList(MsgBoxBody, MsgboxPath+InboxContent);
			break;
		case 'Sent':
			SelectTab(TabSent);
			LoadMessageList(MsgBoxBody, MsgboxPath+SentContent);
			break;
		case 'TrashCan':
			SelectTab(TabTrash);
			LoadMessageList(MsgBoxBody, MsgboxPath+TrashContent);
			break;
				
	}
	document.getElementById("selectedBox").value = folder;
	clearAll();
}


function SelectTab(SelectedTab){
	switch(SelectedTab){
		case TabInbox:
			document.getElementById(TabInbox).className	= ClassTabOn;
			document.getElementById(TabSent).className	= ClassTabOff;
			document.getElementById(TabTrash).className	= ClassTabOff;
			document.getElementById("selectedBox").value = 'Inbox';
			break;
		case TabSent:
			document.getElementById(TabInbox).className	= ClassTabOff;
			document.getElementById(TabSent).className	= ClassTabOn;
			document.getElementById(TabTrash).className	= ClassTabOff;
			document.getElementById("selectedBox").value = 'Sent';
			break;
		case TabTrash:
			document.getElementById(TabInbox).className	= ClassTabOff;
			document.getElementById(TabSent).className	= ClassTabOff;
			document.getElementById(TabTrash).className	= ClassTabOn;
			document.getElementById("selectedBox").value = 'TrashCan';
	}
	
}


function LoadMessageList(_DIV_, _URL_){
	
	document.getElementById("loading_flag").style.display = 'block';

	try{
		_obj = AJAXobj();
	}catch(err){
		document.getElementById("loading_flag").style.display = 'block';
	}
	_obj.open("GET", _URL_, true);
	_obj.onreadystatechange = function(){
		if(_obj.readyState == 4){
			if(_obj.status == 200){
				document.getElementById(_DIV_).innerHTML = _obj.responseText;
				document.getElementById("loading_flag").style.display = 'none';
				msgLink("messageBoxLink", MsgboxPath+CheckContent);
			}else{
				document.getElementById(_DIV_).innerHTML = '<b>Error:</b><br/>'+_obj.status+' No se pudo cargar la lista de mensajes.<br/>';
				document.getElementById("loading_flag").style.display = 'none';
			}
		}
	}
	_obj.send(null);	
	
}

function msgLink(_DIV_, _URL_){
	
	try{
		_obj = AJAXobj();
	}catch(err){
		//document.getElementById("loading_flag").style.display = 'block';
	}
	_obj.open("GET", _URL_, true);
	_obj.onreadystatechange = function(){
		if(_obj.readyState == 4){
			if(_obj.status == 200){
				document.getElementById(_DIV_).innerHTML = _obj.responseText;
			}else{
				document.getElementById(_DIV_).innerHTML = '<b>Error:</b><br/>'+_obj.status;
			}
		}
	}
	_obj.send(null);		
}

function PostProcedure(_DIV_, _URL_, _VALS_, _BOX_){
	
	var retval	= null;
	document.getElementById("loading_flag").style.display = 'block';

	try{
		_obj = AJAXobj();
	}catch(err){
		document.getElementById("loading_flag").style.display = 'block';
	}
	_obj.open("POST", _URL_, true);
	_obj.onreadystatechange = function(){
		if(_obj.readyState == 4){
			if(_obj.status == 200){
				document.getElementById(_DIV_).innerHTML = _obj.responseText;
				clearAll();
				document.getElementById("loading_flag").style.display = 'none';
			}else{
				document.getElementById(_DIV_).innerHTML = 'Error:<br/>'+_obj.status+' No se pudo realizar la acción seleccionada'+'<br/>'+_URL_;
			}
		}
	}
	_obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	_obj.send(_VALS_);
}



function SelectAllMessages(check){
	
	var messages = document.getElementsByName("message").length;
	var pass = check;
	var selected = '';
	
	for (i = 0; i <= messages-1; i++){
		var cbname = 'msg['+i+']';
		document.getElementById(cbname).checked = check;
		selected = selected+''+document.getElementById(cbname).value+'-';
	}
	
	if(check){
		document.getElementById("selectedMsgs").value = selected;
	}else{
		document.getElementById("selectedMsgs").value = '';
	}
	
}

function SelectMsg(val, check){
	var Selected = document.getElementById("selectedMsgs").value;	
	if(check){
		document.getElementById("selectedMsgs").value = val+'-'+Selected;
	}else{
		document.getElementById("selectedMsgs").value = Selected.replace(val+'-', "")
	}
}

function Paginate(box, page){
	switch(box){
		case 'Inbox':
			LoadMessageList(MsgBoxBody, MsgboxPath+InboxContent+'?page='+page);
			break;
		case 'Sent':
			LoadMessageList(MsgBoxBody, MsgboxPath+SentContent+'?page='+page);
			break;
		case 'TrashCan':
			LoadMessageList(MsgBoxBody, MsgboxPath+TrashContent+'?page='+page);
			break;
	}
}

function deleteMsg(box){
	
	flagMsg(MsgDeleting);
	
	var msgsTodel = document.getElementById("selectedMsgs").value;
	var procedure;
	var values;	  
	var content;
	
	switch(box){
		case 'Inbox':
			content = InboxContent;
			procedure = document.getElementById("deleteInbox").value;
			break;
		case 'Sent':
			content = SentContent;
			procedure = document.getElementById("deleteSent").value;
			break;
		case 'TrashCan':
			content = TrashContent;
			procedure = document.getElementById("deleteTrash").value;
			break;
	}
	
	values = 'messages='+msgsTodel+'&'+'procedure='+procedure+'&from='+box;
	
	if(msgsTodel.length > 0)
		PostProcedure(MsgBoxBody, MsgboxPath+content, values, box);
}

function Refresh(box){
	SwitchMsgBox(box);
}

function readMessage(msgid){
	flagMsg(MsgOpening);
	LoadMessageList(MsgBoxBody, MsgboxPath+ReadContent+'?message_id='+msgid);
	document.getElementById("selectedMsgs").value = msgid+'-';
}

function messageDelete(){
	var selectedBox = document.getElementById("selectedBox").value;
	var cntMsgs = document.getElementById("selectedMsgs").value.split("-").length;
	var cnfMsg;
	
	if(selectedBox != 'TrashCan'){
		if(cntMsgs > 2){
			cnfMsg = '¿Deseas eliminar los mensajes seleccionados?';
		}else{
			cnfMsg = '¿Deseas eliminar el mensaje seleccionado?';
		}
	}else{
		if(cntMsgs > 2){
			cnfMsg = 'ADVERTENCIA:\nEstas por eliminar definitivamente los mensajes seleccionados y esta acción no se puede deshacer.\n¿Deseas eliminar los mensajes de todas formas?'
		}else{
			cnfMsg = 'ADVERTENCIA:\nEstas por eliminar definitivamente este mensaje y esta acción no se puede deshacer.\n¿Deseas eliminar el mensaje de todas formas?';
		}
	}
	if(confirm(cnfMsg)){
		deleteMsg(selectedBox);
	}
}

function ReportSPAM(){
	var msgid = document.getElementById("selectedMsgs").value;
	var proce = document.getElementById("flagSPAM").value;
	var selbx = document.getElementById("selectedBox").value;
	var param = 'message_id='+msgid+'&procedure='+proce;
	
	flagMsg(MsgFlag);
	
	PostProcedure(MsgBoxBody, MsgboxPath+ReadContent, param, selbx);
	
}

function replyMsg(){
	flagMsg(MsgLoading);
	var msgid = document.getElementById("selectedMsgs").value;
	var param = 'reply=1&message_id='+msgid;
	document.getElementById("replyMsg").value = 1;
	LoadMessageList(MsgBoxBody, MsgboxPath+ComposeCont+'?'+param);
}

function MsgSpaceAv(){
	var actualLen = document.getElementById("msgTXT").value.length;
	var spaceAv = parseInt(MsgMaxLength - actualLen);
	var msgTxt  = document.getElementById("msgTXT").value;
	
	if(spaceAv >= 1){
		document.getElementById("spaceav").innerHTML = '<b>Espacio disponible:</b> '+spaceAv+' caracteres';
	}else{
		document.getElementById("msgTXT").value = msgTxt.substring(0, MsgMaxLength);
		document.getElementById("msgTXT").scrollTop = document.getElementById("msgTXT").scrollHeight;
		document.getElementById("spaceav").innerHTML = '<font color="#FF0000">El mensaje ha alcanzado el máximo de caracteres disponibles <b>('+MsgMaxLength+')</b></font>';
	}
	
}



function sendMsg(){
	flagMsg(MsgSending);
	
	document.getElementById("extSubject").value = document.getElementById("msgSUBJECT").value;
	document.getElementById("extMsgtxt").value 	= document.getElementById("msgTXT").value;
	document.getElementById("extTo").value		= document.getElementById("msgTO").value;
	
	var reply = document.getElementById("replyMsg").value;
	var proce = document.getElementById("sendMsg").value;
	var orgms = document.getElementById("selectedMsgs").value;
	var msgto = document.getElementById("extTo").value;
	var subje = escape(document.getElementById("extSubject").value);
	var mstxt = escape(document.getElementById("extMsgtxt").value);
	var param = 'reply='+reply+'&messages='+orgms+'&to='+msgto+'&subject='+subje+'&messagetxt='+mstxt+'&procedure='+proce;
	//alert(param);
	SelectTab(TabSent);
	if(mstxt.length < 2){
		if(trim(mstxt).length == 0){
			alert('Debes escribir un mensaje antes de enviarlo.');
		}else{
			alert('IMPOSIBLE ENVIAR EL MENSAJE\nTu mensaje es demasiado corto.');
		}
	}else{
		if(subje.length == 0){
			if(confirm('No escribiste el asunto para tu mensaje.\n¿Deseas enviarlo de todas formas?'))
				PostProcedure(MsgBoxBody, MsgboxPath+SentContent, param, 'Sent');
		}else{
			PostProcedure(MsgBoxBody, MsgboxPath+SentContent, param, 'Sent');
		}
	}

}

function trim(str) {
	var resultstr;
	//resultstr = str.replace(/^\s*|\s*$/g,"");
	resultstr = str.replace(" ","");
	return resultstr;
}