$(document).ready(function() {  
  
  // Get the form defaults ready...
   
	 $("#s").val(0);
	 $("#r").val(1);
   $("#c").val(0);
   
   
   $("#q").val("search here...");
   $("#searchPrev").css('display', 'none');
   
   $.get("/ajax/findfeed.php",
          {c: 0, q: "", r: 1, s: 0},
            function(html) {
              findFeedResponse(html);
            },
          "html");
          
   /*
		$.historyInit(pageload);
		// set onlick event for buttons
		$("a:history").click(function(){
			// 
			var hash = this.href;
			hash = hash.replace(/^.*#/, '');
			// moves to a new page. 
			// pageload is called at once. 
			$.historyLoad(hash);
			return false;
		});*/

   $("#categoryList a").click(function (event) {
      event.preventDefault();
      
      $("#c").val($(this).parent().attr('catID'));
      $("#categoryList li").removeClass("selected");
      $(this).parent().addClass("selected");
	    $("#q").val("").focus();
      $("#s").val(0);
      
	    var query = "";
	    var dbStart = $("#s").val();
	    var resultType = $("#r").val();
	    var catID = $("#c").val();
	    
	    $.get("/ajax/findfeed.php",
        {c: catID, q: query, r: resultType, s: dbStart},
          function(html) {
            findFeedResponse(html);
          },
        "html");
	     
  });
  
   $("#search").click(function (event) {
      event.preventDefault();

      $("#s").val(0);
	    var query = $("#q").val();
	    var dbStart = $("#s").val();
	    var resultType = $("#r").val();
	    var catID = $("#c").val();
	    
	    $.get("/ajax/findfeed.php",
        {c: catID, q: query, r: resultType, s: dbStart},
          function(html) {
            findFeedResponse(html);
          },
        "html");
	     
  });
  
  $("#q").click(function (event) {
      
      var searchText = $(this).val();
      
      if (searchText == "search here...")
      {
        $(this).val("");
      }
      
  });
  
  
  $("#q").keypress(function (event) {
  
      if (event.which == 13) {
      
        event.preventDefault();
        
        $("#s").val(0);
        var query = $("#q").val();
  	    var dbStart = $("#s").val();
  	    var resultType = $("#r").val();
  	    var catID = $("#c").val();
  	    
  	    $.get("/ajax/findfeed.php",
          {c: catID, q: query, r: resultType, s: dbStart},
            function(html) {
              findFeedResponse(html);
            },
          "html");
      } 
  });
  
  $("span.followFeed").click(function (event) {
      event.preventDefault();
      var feedID = $(this).parent().attr("id");
      var mode = $(this).attr("mode");
      
      if (mode != "request")
      {
        $.post("/ajax/feedreq.php",
          {id: feedID, mode: mode},
            function(xml, id) {
              followResponse(xml, feedID);
            },
          "xml");
      }

  });
  
  $("span.olderNewer a").click(function (event) {
      event.preventDefault();
      
      if ($("#q").val() == "search here...")
      {
        $("#q").val("");
      }
      
      var req = $(this).parent().attr("id");
      var query = $("#q").val();
    	var dbStart = parseInt($("#s").val());
    	var resultType = $("#r").val();
    	var catID = $("#c").val();
    	  
      if (req == "searchPrev")
      {
        if (dbStart > 20)
        {
          dbStart = dbStart - 20;
          $("#s").val(dbStart);
        }
        else if (dbStart == 20)
        {
          // hide the button because it's no longer needed...
          dbStart = 0;
          $("#s").val(0);
        }
      }
      else if (req == "searchNext")
      {
        dbStart += 20;
        $("#s").val(dbStart);
      }
      
      $.get("/ajax/findfeed.php",
            {c: catID, q: query, r: resultType, s: dbStart},
              function(html) {
                findFeedResponse(html);
              },
            "html");
  });
  

});

/*
function pageload(hash) {
		// hash doesn't contain the first # character.
		if(hash) {
			// restore ajax loaded state   
			$("#searchResults").load("/ajax/findfeed.php?s=" + $("#s").val() + "&r=" + $("#r").val() + "&c=" + $("#c").val() + "&q=" + $("#q").val());
		} else {
			// start page
			$("#searchResults").empty();
		}
	}
*/
	

function findFeedResponse(html) {

  $("#searchResults").html("");
  $("#searchResults").html(html);
  
  if (html[0] == 'N')
  {
    $("#searchNext").css('display', 'none');
  }
  else
  {
    $("#searchNext").css('display', 'inline');
  }

  var dbStart = $("#s").val();
  $("#q").focus();
  
  if (dbStart == 0)
  {
    $("#searchPrev").css('display', 'none');
  }
  else
  {
    $("#searchPrev").css('display', 'inline');
  }
  
  $("span.followFeed").bind("click",function (event) {
      event.preventDefault();
      
      var feedID = $(this).parent().attr("id");
      var mode = $(this).attr("mode");
      
      if (mode != "request")
      {
        $.post("/ajax/feedreq.php",
          {id: feedID, mode: mode},
            function(xml, id) {
              followResponse(xml, feedID);
            },
          "xml");
      }

  });

};

function followResponse(xml, id) {
  if($("success",xml).text() == "1")
  {
    switch ($("result",xml).text())
    {
      case "followed":
        // Show Stop Follow
        $("#"+id+" span.followFeed").html(' <a href="/">Stop Following</a>');
        $("#"+id+" span.followFeed").attr("mode","stop");
        $("#"+id+" img").attr("src","/img/icons/delete.png");
        
        break;
        
      case "stopped":
        // Show Follow This Feed
        $("#"+id+" span.followFeed").html(' <a href="/">Follow Feed</a>');
        $("#"+id+" span.followFeed").attr("mode","follow");
        $("#"+id+" img").attr("src","/img/icons/add.png");
        
        break;
        
      case "requested":
        // Show Follow Requested
        $("#"+id+" span.followFeed").html(' Follow Requested');
        $("#"+id+" span.followFeed").attr("mode","request");
        $("#"+id+" img").attr("src","/img/icons/flag_yellow.png");
        
        break;
      
    }
  }
};