// Reassign JQuery
var $j = jQuery.noConflict();

// Approve a post
function approvePost(postID) {
  var post = "#post_"+postID;
  $j.ajax({
    url: "/assets/php/actions.php",
    data: "approve="+postID,
    cache: false,
    success: function() {
      $j(post).addClass('approvedPost');
      $j(post+' p').fadeTo("slow", 0.33, function() {
        $j(post+' p').hide();
        $j('#action_link_'+postID).html('<a href="/post/'+postID+'/">Approved!</a>');
      });
    }
  });
}

// Feature a post
function featurePost(postID) {
  var post = "#post_"+postID;
  $j.ajax({
    url: "/assets/php/actions.php",
    data: "feature="+postID,
    cache: false,
    success: function() {
      $j(post).addClass('approvedPost');
      $j(post+' p').fadeTo("slow", 0.33, function() {
        $j(post+' p').hide();
        $j('#action_link_'+postID).html('<a href="/post/'+postID+'/">Featured in Hater Highlights!</a>');
      });
      $j('#sharing_'+postID).fadeTo("slow", 0.33, function() {
        $j('#sharing_'+postID).hide();
      });
    }
  });
}

// Delete a post
function deletePost(postID) {
  var post = "#post_"+postID;
  var answer = confirm("Are you sure you want to remove this post?");
  if (answer) {
    $j(post).fadeTo("slow", 0.33, function() {
      $j.ajax({
        url: "/assets/php/actions.php",
        data: "delete="+postID,
        cache: false,
        success: function() {
          $j(post).hide(function() {
            $j(post).remove();
          });
        }
      });
    });
  }
}

// Like a post
function like(postID) {
  var post = "#like_count_"+postID;
  $j.ajax({
    url: "/assets/php/actions.php",
    data: "like="+postID,
    cache: false,
    success: function(content) {
      $j('#like_count_'+postID).html(content);
    }
  });
}

// Load more posts
function loadPosts(type,time,category,sortBy) {
  var list          = $j('#posts:first')[0];//document.getElementById('posts');
  var totalItems    = $j('#posts:first li').length;//list.getElementsByTagName('li').length;
  var approvedPosts = $j('#posts:first .approvedPost').length;//list.getElementsByClassName('approvedPost').length;
  var begin         = (totalItems - 1) - approvedPosts;
  var params        = "begin="+begin;
  
  if (type != "")     { params += "&view="+type;    }
  if (time != "")     { params += "&time="+time;    }
  if (category != "") { params += "&cat="+category; }
  if (sortBy != "")   { params += "&sort="+sortBy;  }

  $j("#more").remove();
  $j("ol#posts").append('<li id="loading"><span>Loading...</span></li>');
  $j.ajax({
    url: "/assets/php/actions.php",
    data: params,
    cache: false,
    success: function(content) {
      $j("#loading").remove();
      $j("ol#posts").append(content);
    }
  });
}

// Show Menu Options
function showOptions(menu) {
  (menu == "category") ?
    $j("#categoryOptions").toggle() :
    $j("#categoryOptions").hide();
  (menu == "month") ?
    $j("#monthOptions").toggle() :
    $j("#monthOptions").hide();
  (menu == "day") ?
    $j("#dayOptions").toggle() :
    $j("#dayOptions").hide();
  (menu == "year") ?
    $j("#yearOptions").toggle() :
    $j("#yearOptions").hide();
  (menu == "ampm") ?
    $j("#ampmOptions").toggle() :
    $j("#ampmOptions").hide();
}

// Select Option
function selectOption(menu, selection) {
  if (menu == "category") {
    $j("#fields").show();
  }
  document.getElementById('new_'+menu).value = selection;
  $j("#"+menu+"Options").toggle();
  $j("#"+menu+"Selection").html(selection);
}

// Only allow numbers as entry
function isNumberKey(evt) {
  var e = event || evt;
  var charCode = e.which || e.keyCode;
  if (charCode > 31 && (charCode < 48 || charCode > 57))
    return false;
  return true;
}

// onfocus 'new_content' field
function onfocusNewContent(field) {
  if (field.value == "I hate you because...") {
    field.value = "I hate you because ";
  }
}

// On Blur 'new_content' field
function onblurNewContent(field) {
  if (field.value == "I hate you because " || field.value == "I hate you because" || field.value == "") {
    field.value = "I hate you because...";
  }
}

// Clear default field value
function onfocusClear(field) {
  if (field.value == field.defaultValue) {
    field.value = "";
  }
}

// Restore default field value
function onblurRestore(field) {
  if (field.value == "") {
    field.value = field.defaultValue;
  }
}

// Clear default field value
function onfocusClearAdminEmail(field) {
  if (field.value == "Email (Optional)") {
    field.value = "";
  }
}

// Restore default field value
function onblurRestoreAdminEmail(field) {
  if (field.value == "") {
    field.value = "Email (Optional)";
  }
}

// onfocus change style
function addFocus(field) {
  $j(field).removeClass('input').addClass('focus');
}

// onblur change style
function removeFocus(field) {
  $j(field).removeClass('focus').addClass('input');
}

// Submit post form
function submitPost() {
  var new_category = document.getElementById('new_category');
  var new_content  = document.getElementById('new_content');
  var start_with   = new_content.value.substring(0,18);
  if (new_category.value == "") {
    $j('#error').addClass('error');
    $j('#error').html("<b>Error:</b> you must choose a category.");
  } else if (new_content.value == "" || new_content.value == "I hate you because " || new_content.value == "I hate you because...") {
    $j('#error').addClass('error');
    $j('#error').html("<b>Error:</b> you must include a reason for hating someone.");
  } else if (start_with != "I hate you because") {
    $j('#error').addClass('error');
    $j('#error').html("<b>Error:</b> posts MUST begin with &quot;I hate you because&quot;");
  } else {
    document.forms["newpost"].submit();
  }
}

// Save Site Options
function saveChanges() {
  var password1 = document.getElementById('password1');
  var password2 = document.getElementById('password2');
  if (password1.value != password2.value) {
    $j('#error').addClass('error');
    $j('#error').html("<b>Error:</b> your passwords do not match.");
  } else {
    document.forms["siteOptions"].submit();
  }
}

// Add New Category
function submitNewCategory() {
  var catName = document.getElementById('new_category');
  if (new_category.value == "Category Name" || new_category.value == "") {
    $j('#error').addClass('error');
    $j('#error').html("<b>Error:</b> please enter a category name.");
  } else {
    document.forms["addNewCategory"].submit();
  }
}

// Login
function userLogin() {
  document.forms["loginUser"].submit();
}

// Submit on enter key
function submitOnEnter(evt) {
  var e = event || evt;
  var charCode = e.which || e.keyCode;
  if (charCode == 13)
  submitPost();
}

// Add Category on enter key
function newCategoryOnEnter(evt) {
  var e = event || evt;
  var charCode = e.which || e.keyCode;
  if (charCode == 13)
  submitNewCategory();
}

// Save changes on enter key
function saveChangesOnEnter(evt) {
  var e = event || evt;
  var charCode = e.which || e.keyCode;
  if (charCode == 13)
  saveChanges();
}

// Login on enter key
function loginOnEnter(evt) {
  var e = event || evt;
  var charCode = e.which || e.keyCode;
  if (charCode == 13)
   loginUser();
}

// Delete category
function deleteCategory(catID, catName) {
  var answer = confirm("Are you sure you want to delete the category '"+catName+"'? All posts for this category will be deleted!");
  if (answer) {
    window.location = "http://www.ihateyoubecause.com/manage/?deletecat="+catID;
  }
}
