//GLOBALS
var SELECTED_MESSAGES = new Array();

function _keyHandler(){
  if(event.keyCode == 127)
    deleteMessages();
  if(event.keyCode == 10 || event.keyCode == 13)
    readSelectedMessage();
}

function init(){
  document.body.onKeyPress = _keyHandler;
}

function deleteMessages(){
  var question;
  if(SELECTED_MESSAGES.length > 1)
    question = "Are you sure you want to delete these messages?";
  else
    question = "Are you sure you want to delete this message?";
    
  if(SELECTED_MESSAGES.length > 0 && window.confirm(question)){
    if(writeSelections()){
      document.main.pageAction.value = "delete";
      document.main.submit();
    }
  }
}

function deleteMessage(){
  if(window.confirm("Are you sure you want to delete this message?")){
    document.main.pageAction.value = "delete";
    document.main.submit();
  }
}

function reply(){
  var message_id = document.main.message.value;
  window.open("write_mail.php?reply="+message_id,
              "",
              "height=500, width=800, location=no, menubar=no, resizable=yes, scrollbars=yes, status=no, titlebar=yes, toolbar=no");
}

function readSelectedMessage(){
  if(SELECTED_MESSAGES.length == 1)
    readMessage(SELECTED_MESSAGES[0]);
}

function readMessage(message_id){
  window.open("read_mail.php?message=" + message_id,
              "",
              "height=500, width=800, location=no, menubar=no, resizable=yes, scrollbars=yes, status=no, titlebar=yes, toolbar=no");
}

function resort(newOrder){
  var order;
  var oldOrder = document.main.order.value;
  if(oldOrder.indexOf(newOrder) >= 0){
    if(oldOrder.match('/DESC/')){
      order = newOrder+" ASC";
    } else {
      order = newOrder+" DESC";
    }
  } else {
    if(newOrder.match('/sent/')){
      order = newOrder+" DESC";
    } else {
      order = newOrder+" ASC";
    }
  }
  document.main.order.value = order;
  document.main.submit();
}

function selectMessage(message_id){
  if(SELECTED_MESSAGES.length == 1 && message_selected(message_id)){
    deselect_message(message_id);
    return;
  }
  if(window.event.ctrlKey){
    if(message_selected(message_id)){
      deselect_message(message_id);
    } else {
      select_message(message_id);
    }
  } else {
    deselect_all();
    select_message(message_id);
  }
}

function selectSender(sender){
  if(document.main.sender.value != sender){
    document.main.sender.value = sender;
    document.main.submit();
  }
}

function message_selected(message_id){
  var found = false;
  
  for(var i = 0; i < SELECTED_MESSAGES.length; i++){
    if(SELECTED_MESSAGES[i] == message_id){
      found = true;
      break;
    }
  }
  
  return found;
}

function select_message(message_id){
  var messageRow = document.getElementById("messageRow_"+message_id);
  if(!message_selected(message_id)){
    SELECTED_MESSAGES.push(message_id);
    messageRow.className = "MailSummarySelected";
  }
}

function deselect_message(message_id){
  var messageRow = document.getElementById("messageRow_"+message_id);
  var found = false;
  
  for(var i = 0; i < SELECTED_MESSAGES.length; i++){
    if(SELECTED_MESSAGES[i] == message_id){
      found = true;
      break;
    }
  }
  
  if(found){
    SELECTED_MESSAGES.splice(i, 1);
    messageRow.className = "MailSummary";
  }  
}

function deselect_all(){
  var messageRow;
  var message_id;
  while(SELECTED_MESSAGES.length > 0){
    message_id = SELECTED_MESSAGES[0];
    messageRow = document.getElementById("messageRow_"+message_id);
    SELECTED_MESSAGES.splice(0, 1);
    messageRow.className = "MailSummary";
  }
}

function highlightFolder(id){
  row = document.getElementById(id);
  row.className = "MailFolderOver";
}

function shadowFolder(id){
  row = document.getElementById(id);
  row.className = "MailFolder";  
}

function logout(){
  document.main.pageAction.value = "logout";
  document.main.submit();
}

function newMessage(){
  window.open("write_mail.php",
              "",
              "height=500, width=800, location=no, menubar=no, resizable=yes, scrollbars=yes, status=no, titlebar=yes, toolbar=no");
}

function cancelMessage(){
  if(window.confirm("Your changes will be lost! Are you sure you want to continue?")){
    window.close();
  }
}

function mailSend(){
  var re = /^\s*$/;
  if(document.main.to.selectedIndex == 0){
    window.alert("Please choose a recipient!");
    return;
  }
  if(document.main.subject.value.match(re)){
    var subject = window.prompt("Enter a subject for your message", "(No Subject)");
    document.main.subject.value = subject;
  }
  document.main.pageAction.value = "send";
  document.main.submit();
}

function markAsRead(mail_id){
  document.getElementById("messageRow_"+mail_id).style.fontWeight = "normal";
}

function writeSelections(){
  if(SELECTED_MESSAGES.length > 0){
    var selections = document.getElementById("selections");
    var selString = "<input type=\"hidden\" name=\"select_count\" value=\""+SELECTED_MESSAGES.length+"\" />";
    for(var i = 0; i < SELECTED_MESSAGES.length; i++){
      selString  += "<input type=\"hidden\" name=\"select_"+i+"\" value=\""+SELECTED_MESSAGES[i]+"\" />";
    }
    selections.innerHTML = selString;
    return true;
  }
  return false;
}

function markRead(){
  if(writeSelections()){
    document.main.pageAction.value = "markAsRead";
    document.main.submit();
  }
}

function markUnread(){
  if(writeSelections()){
    document.main.pageAction.value = "markAsUnread";
    document.main.submit();
  }  
}

function refreshDisplay(){
  document.main.submit();
}

function changePassword(){
  window.open("passwordDialog.php",
              "passwordDialog",
              "height=150, width=400, location=no, menubar=no, resizable=yes, scrollbars=no, status=no, titlebar=yes, toolbar=no");
}

function resetPassword(){
  var temp_username = document.main.usernamemain.value;
  var username = window.prompt("This will reset your password and email you the new value for it. Please enter your username to continue.", temp_username);
  var re = /^\s*$/;
  if(!username)
    return;
  if(username.match(re))
    return;
    
  document.main.pageAction.value = "resetPassword";
 document.main.resetUser.value  = username;
 //document.main.resetUser.value  = usernamemain;
  document.main.submit();
}

function help(){
  window.open("help.php",
              "Help",
              "height=500, width=800, location=no, menubar=no, resizable=yes, scrollbars=yes, status=no, titlebar=yes, toolbar=no");  
}

function notify(state){
  if(state && document.main.notify.value == 'n'){
    document.main.pageAction.value = "changeNotify";
    document.main.notify.value = 'y';
    document.main.submit();
  } else if(!state && document.main.notify.value == 'y') {
    document.main.pageAction.value = "changeNotify";
    document.main.notify.value = 'n';    
    document.main.submit();
  }
}