var ticks = 0;
var ticksReq = null;

$(document).ready(function() {

  $(".confirmButton").click(function() {
    return confirm("Are you sure you want to do this?");
  });
  
  $("#userSearchButton").click(function() {
    var userName = $("#userSearchField").val();
    $.post("mini/user_search.php", {name: userName}, function(data) {
      if(data.number > 0) {
        $("#userSearchResults").html("<span class=\"alert\">"+data.number+" users found</span>");
        var i = 0;
        for(i = 0; i < data.users.length; i++) {
          $("#userSearchResults").append("<div><a href=\"profile.php?id="+data.users[i].id+"\">"+data.users[i].name+" (#"+data.users[i].id+")</a>");
        }
      } else {
        $("#userSearchResults").html("<span class=\"error\">No results...</span>");
      }
    }, "json");
  });
  
  $("#chatForm").submit(function() {
    var cText = $("#chatText").val();
    var cChat = $("#chatID").val();
    $.post("actions/chat_post.php", {text: cText, chat: cChat}, function(data) {
      $("#chatArea").html(data);
    });
    $("#chatText").val("");
    return false;
  });
  
  var select_searchable_filter = function(event) {
        var filter = $(this);
        var value = filter.val();
        var old_value = filter.data('filter');
        if (value == old_value) {
            return;
        }
        filter.data('filter', value);
        var re = new RegExp(value, "i");
        var select = filter.data('select');
        var options = $('option', select);
        var matches = 0;
        options.each(function() {
            if(!re.test($(this).html())) {
                $(this).attr('disabled', 'disabled')
                       .css('display', 'none');
            } else {
                $(this).removeAttr('disabled')
                       .css('display', 'block');
                matches++;
            }
        });
        var message = 'Type to filter items';
        if (value) {
            if (matches == 0) {
                message = 'No matches';
            } else if(matches == 1) {
                message = '1 match';
            } else {
                message = '' + matches + ' matches';
            }
        }
        filter.data('matches').html(message);        
    };

    $('select.searchable').each(function(){
        var matches = $('<span></span>');
        var filter = $('<input type="text" style=\"width: 300px\"></input>')
                        .data('matches', matches)
                        .data('select', $(this))
                        .bind('keyup', select_searchable_filter);
        $(this).before(matches).before('<br />').before(filter).before('<br />');
        filter.keyup();
    });

  
  $("#ticker").each(function() {
    $.ajax({url : 'mini/ticker.php',
        type : 'GET',
        dataType : 'json',
        success : function(data) {
            ticksReq = data;
            doTicks();
        }});
    
    setInterval("doTicks()", 4000);
  });
  
  $("#adminChatForm").submit(function() {
    var cText = $("#adminChatText").val();
    var cChat = $("#chatID").val();
    var cNPC = $("#chatNPC").val();
    $.post("actions/chat_post_admin.php", {text: cText, chat: cChat, npc: cNPC}, function(data) {
      $("#chatArea").html(data);
    });
    $("#adminChatText").val("");
    return false;
  });
  
  $("#us_search_name_button").click(function() {
    var iName = $("#us_search_name").val();
    var iCurrency = $("#us_search_currency").val();
    $.post("mini/item_names.php", {name: iName, currency: iCurrency}, function(data) {
      $("#us_search_button").html(data);
    });
  }); 
  
  $("#chatArea").each(function() {
    getChats();
    setInterval("getChats()", 5000);
  });
  
  bindItems();
  
  $(".lineagePick").click(function() {
    var kID = $(this).attr("id");
    $(this).parent("td").load("mini/lineage.php?id="+kID, function() {
      bindLineage();
    });
  });
  
  $(".itemhover").hover(function() {
    $(this).children(".itemdesc").show();
  }, function() {
    $(this).children(".itemdesc").hide();
  });
  
  $("#itemSorter").sortable();
  $("#galleryItems.sort").sortable({ items: '.item', placeholder: 'item' });
  $("#galleryItemsOrder").sortable({ items: '.item', placeholder: 'item' });
  
  $('.colorpick').ColorPicker({
  	onSubmit: function(hsb, hex, rgb, el) {
  		$(el).val(hex);
  		$(el).ColorPickerHide();
  	},
  	onBeforeShow: function () {
  		$(this).ColorPickerSetColor(this.value);
  	}
  })
  .bind('keyup', function(){
  	$(this).ColorPickerSetColor(this.value);
  });
  
  $("#links span").hover(function() {
    $(this).addClass("hover");
    $(this).addClass("activeLink");
  }, function() {
    $(this).removeClass("hover");
    $(this).removeClass("activeLink");
  });
  
  $(".userCheck").click(function() {
    var uID = $("#userID").val();
    $.post("actions/name_check.php", {id: uID }, function(data) {
      $("#userName").html(data);
    });
  });
  
  $("#userIDBanCheck").click(function() {
    var uID = $("#userIDBan").val();
    $.post("actions/name_check.php", {id: uID }, function(data) {
      $(".userNameBan").html(data);
    });
  });
  
  bindForage();

  $("#craftID").change(function() {
    $("#craftRecipe").load("mini/recipe.php?id="+$("#craftID").val());
  });
  
  $(".tooltipMain").hover(function() {
    $(this).children(".tooltip").show();
  }, function() {
    $(this).children(".tooltip").hide();
  });
  
});

function bindForage() {
  $(".forage td a").click(function() {
    var varSlot = $(this).parent("td").attr("id");
    var varArea = $("#area").val();
    $.post("mini/forage.php", {area: varArea, slot: varSlot}, function(data) {
      $(".forage td").html("<a href=\"#\"><img src=\"static/images/blank.png\" class=\"blank\"></a>");
      bindForage();
      $("#"+varSlot).html(data);
    });
    return false;
  });
}

function bindLineage() {
  $(".lineagePick").unbind().click(function() {
    var kID = $(this).attr("id");
    $(this).parent("td").load("mini/lineage.php?id="+kID, function() {
      bindLineage();
    });
  });
}

function getChats() {
  if($("#chatPause").attr("checked")) {
  } else {
    var cChat = $("#chatID").val();
    $.post("actions/chat_fetch.php", {chat: cChat}, function(data) {
      $("#chatArea").html(data);
    });
  }
}

function doTicks() {
  if(ticks % 10 == 0) {
    $.ajax({url : 'mini/ticker.php',
        type : 'GET',
        dataType : 'json',
        success : function(data) {
            ticksReq = data;
        }});
  }
  $("#ticker").html("<a href=\"forums_posts.php?id="+ticksReq[ticks%10].id+"\">"+ticksReq[ticks%10].subject+"</a>");
  ticks++;
}

function bindItems() {
  $(".item img").click(function() {
    var iID = $(this).parent(".item").attr("id");
    $("#iinfo"+iID).toggle();
    $("#iinfo"+iID).load("mini/item.php?id="+iID, function() {
      $(".close").click(function() {
        $("#iinfo"+iID).hide();
      });
    });
  });
}