function ReadMessage(message_id)
{
	var m = document.messages;
	m.view.value=3;
	m.message_id.value=message_id;
	m.submit();
}

function ViewInbox()
{
	document.main.view.value=1;
	document.main.submit();	
}



function ViewInboxArchive()
{
	document.main.view.value=17;
	document.main.submit();	
}


function ViewSent()
{
	document.main.view.value=2;
	document.main.submit();	
}

function ViewTrash()
{
	document.main.view.value=4;
	document.main.submit();	
}

function ViewBlockedUsers()
{
	document.main.view.value=12;
	document.main.submit();		
}

function ComposeMsg()
{
	document.main.view.value = 6;
	document.main.submit();
}

function SendNewMsg()
{
	var nm = document.new_msg;
	nm.send_to.value = document.getElementById('new_msg_to').value;
	nm.submit();
}

function SendMsg()
{
	var r = document.reply;
	r.view.value=5;
	r.subject.value = document.getElementById('subject').innerHTML;
	r.body.value = document.getElementById('reply_textarea').value;
	r.submit();
}

function GetSelectedCBs()
{
	var msgs = new Array();
	var inputs = document.getElementsByTagName("input");	
	for(i = 0; i < inputs.length; i++) {
		box = inputs[i];
		if(box.type == 'checkbox' && box.id != 'check_all') {
			if(box.checked) {
				msgs.push(box.id);
			}		
		}
	}		
	return msgs.join(':');
}

function TrashMsg()
{
	var m = document.reply;
	m.view.value=7;
        m.submit();
}


function ArchiveMsg()
{
	var m = document.reply;
	m.view.value=18;
        m.submit();
}


function TrashMsgs()
{
	var msgs = GetSelectedCBs();
	var m = document.messages;
	m.view.value=7;
	m.message_id.value=msgs;
	var p = confirm('Send message(s) to Trash?');
	if(p) {
		m.submit();
	}
}



function ArchiveMsgs()
{
	var msgs = GetSelectedCBs();
	var m = document.messages;
	m.view.value=18;
	m.message_id.value=msgs;
	var p = confirm('Send message(s) to Archive?');
	if(p) {
		m.submit();
	}
}




function DeleteMsg()
{
	var m = document.reply;
	m.view.value=13;
	var p = confirm('Delete message?');
	if(p) {
		m.submit();
	}	
}

function DeleteMsgs()
{
	var msgs = GetSelectedCBs();
	var m = document.messages;
	if(m.view.value==2) {
		m.view.value=13;
	} else if(m.view.value==4) {
		m.view.value=14;
	}
	m.message_id.value=msgs;
	var p = confirm('Delete message(s)?');
	if(p) {
		m.submit();
	}
}

function MoveMsgsToInbox()
{
	var msgs = GetSelectedCBs();
	var m = document.messages;
	m.view.value=16;	
	m.message_id.value=msgs;
	var p = confirm('Move messagee(s) to Inbox?');
	if(p) {
		m.submit();
	}	
}

// add some "unread-detection" here to bypass any re-posting (ie. read Status column innerHTML)
function MarkMsgsUnread()
{
	var msgs = GetSelectedCBs();
	var m = document.messages;
	m.view.value=8;
	m.message_id.value=msgs;
	m.submit();
}

// add some "unread-detection" here to bypass any re-posting (ie. read Status column innerHTML)
function MarkMsgsRead()
{
	var msgs = GetSelectedCBs();
	var m = document.messages;
	m.view.value=10;
	m.message_id.value=msgs;
	m.submit();
}

function FixMsgWindowIE()
{
	if(window.navigator.userAgent.indexOf('MSIE') != -1) {
		document.getElementById('new_msg_textarea').style.width = "93%";
	}
}

function FixReplyWindowIE()
{
	if(window.navigator.userAgent.indexOf('MSIE') != -1) {
		document.getElementById('reply_textarea').style.width = "93%";
	}
}

function Reply()
{
	document.getElementById('message_body').style.display = 'none';
	document.getElementById('reply_window').style.display = 'block'
	document.getElementById('message_date').innerHTML = '&nbsp;';
	document.getElementById('from_switch').innerHTML = 'To: ';
	var rta = document.getElementById('reply_textarea');
	rta.focus();
	// for Firefox /////////
	rta.selectionStart = 1;
	rta.selectionEnd = 1;
	/////////////////////////
	document.getElementById('reply_controls').style.display = 'none';
	document.getElementById('send_controls').style.display = 'block';		
	var subject = document.getElementById('subject').innerHTML;
	document.getElementById('subject').innerHTML = 'RE: '+subject;
}

function ViewMsg()
{
	document.getElementById('reply_window').style.display = 'none'
	document.getElementById('message_body').style.display = 'block';	
	document.getElementById('send_controls').style.display = 'none';	
	document.getElementById('reply_controls').style.display = 'block';	
	document.getElementById('message_date').innerHTML = date;
	document.getElementById('from_switch').innerHTML = 'From: ';
	var subject = document.getElementById('subject').innerHTML;
	document.getElementById('subject').innerHTML = subject.substr(4,subject.length);
}

function BlockSender()
{
	if(document.reply.send_to.value==user) {
		alert("You cannot block yourself!");
		return;
	}
	var p = confirm("Are you sure you want to block this user?");
	if(p) {
		document.reply.view.value = 11;
		document.reply.submit();
	}
}

function RemoveBlockedUsers()
{
	var p = confirm("Are you sure you want to unblock this user?");
	if(p) {
		var users = GetSelectedCBs();	
		var bl = document.blocked;
		bl.view.value = 15;
		bl.users.value = users;
		bl.submit();
		return;		
	}	
}

function ToggleInboxCB(cb)
{
	var t = cb.checked;
	document.getElementById('control_delete').disabled = !t;
	if(document.getElementById('control_markunread')) {
		document.getElementById('control_markunread').disabled = !t;
	}
	if(document.getElementById('control_markread')) {
		document.getElementById('control_markread').disabled = !t;
	}

	if(document.getElementById('control_archive')) {
		document.getElementById('control_archive').disabled = !t;
	}

	if(document.getElementById('control_move')) {
		document.getElementById('control_move').disabled = !t;
	}	
	
	var inputs = document.getElementsByTagName("input");
	for(i = 0; i < inputs.length; i++) {
		if(inputs[i].type == 'checkbox' && inputs[i].id != 'check_all') {
			inputs[i].checked = t;
		}
	}	
}

function CBMsgInbox(cb)
{
	CheckShift(cb);
	var cb_cnt = 0;
	var cb_ck_cnt = 0;
	var inputs = document.getElementsByTagName("input");	
	for(i = 0; i < inputs.length; i++) {
		var box = inputs[i];
		if(box.type == 'checkbox' && box.id != 'check_all') {
			cb_cnt++;
			if(box.checked) {
				cb_ck_cnt++;
			}		
		}
	}	
	var icmu=document.getElementById('control_markunread');
	var icmr=document.getElementById('control_markread');
	var icmv=document.getElementById('control_move');	
	var icac=document.getElementById('control_archive');	


	if(cb_ck_cnt == 0) {
		document.getElementById('control_delete').disabled = true;
		document.getElementById('check_all').checked = false;
		if(icmu) { icmu.disabled = true; }
		if(icmr) { icmr.disabled = true; }
		if(icac) { icac.disabled = true; }
		if(icmv) { icmv.disabled = true; }		
		return;
	} else {
		document.getElementById('control_delete').disabled = false;
		if(icmu) { icmu.disabled = false; }
		if(icmr) { icmr.disabled = false; }
		if(icac) { icac.disabled = false; }
		if(icmv) { icmv.disabled = false; }		
	}
	
	if(cb_cnt == cb_ck_cnt) {
		document.getElementById('check_all').checked = true;
		return;
	}
}

function addLoadEvent(func) {
	
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

function check_range(current) {
	
	var inputs = document.getElementsByTagName('input');
	var input;
	
	// If start_checkbox is null then start checking until the end has been reached.
	var found = start_checkbox ? 0 : 1;
	for (var i = 0; input = inputs[i]; i++) {
		if (input.type == 'checkbox') {
			if (found > 0) {
				// checkbox_value holds the checkbox status of the last selected checkbox (start_checkbox).
				input.checked = checkbox_value;
				if (input == current || input == start_checkbox) {
					// The end/beginning has been reached (depending on direction).
					break;
				}
			} else {
				// Start range.
				if (input == start_checkbox) {
					found = 1;
				} else {
					// A reverse range.
					if (input == current) {
						found = 2;
					}
				}
			}
		}
	}
}

function shift_handler(e){
	var evtobj= window.event? event : e;
	shift_down=evtobj.shiftKey;
}

function CheckShift(cb)
{
	if(shift_down) {
		if (start_checkbox != cb) {
			check_range(cb);
		}
	}
	start_checkbox = cb;
	checkbox_value = cb.checked;	
}

function onload_handler(e)
{
	document.onkeydown = document.onkeyup = shift_handler;
	return true;
}

var start_checkbox = null;
var checkbox_value = true;
var shift_down = false;

addLoadEvent(onload_handler);