var SmallBox = {
   drawBoxes: function(){
      jQuery.getJSON(site_url+"smallboxes/info", {
         "id_search_type": jQuery(".smallBoxes").attr("rel")
      }, function(data){
         if (0 == data.length) {
            return;
         }
         jQuery(".smallBoxes").parent().addClass("w250");
         for (var i in data) {
            if (("undefined" == typeof(data[i].options)) || ("ads" == data[i].type)) {
               continue;
            }
            //var container = document.createElement("div");
            //jQuery(container).addClass("smallBox").attr("id", "box-" + i);
            //container = SmallBox._createBox(container, data[i]);
            //jQuery(".smallBoxes").append(container);
            //jQuery("#maxmin-" + data[i].id).addClass("icon floatr").click(function(){
               //if (jQuery(this).hasClass("maximized")) {
                  //jQuery(".box-content", jQuery(this).parents(".smallBox")).slideToggle("fast")/*.hide()*/;
                  //jQuery(this).removeClass("maximized").addClass("minimized").attr("title", "Maxify box");
                  //jQuery.post("smallboxes/save", {
                     //"box": data[i].id,
                     //"state": "minimized"
                  //});
               //}
               //else {
                  //jQuery(".box-content", jQuery(this).parents(".smallBox")).slideToggle("fast")/*.show()*/;
                  //jQuery(this).removeClass("minimized").addClass("maximized").attr("title", "Minify box");
                  //jQuery.post("smallboxes/save", {
                     //"box": data[i].id,
                     //"state": "maximized"
                  //});
               //}
            //});
            var container = document.getElementById("box-" + i);
            container = SmallBox._createBox(container, data[i]);
            jQuery.post(site_url+data[i].controller, {
               "keywords": jQuery("#search_input").val(),
               //"id": jQuery(".box-content", container).attr("id")
               "id": data[i].id
            }, function(json){
               json = jQuery.parseJSON(json);
               if (typeof(json.content) == "undefined") {
                  json.content = "";
               }
               jQuery("#search-content-" + json.id).addClass("loading").html("");
               //jQuery("#box-content-" + json.id).html(json.content);
               var ul = document.createElement("ul");
               for (var t = 0; t < json.content.length; t++) {
                  var li = document.createElement("li");
                  var a = document.createElement("a");
                  jQuery(a).attr("id", "tab-link-" + json.id + "-" + t)
                           .attr("href", "javascript:void(0)")
                           .attr("rel", json.content[t].engine)
                           .addClass("tab-box-" + json.content[t].type)
                           .html(json.content[t].title).click(function(){
                     var id = this.id.match(/tab-link-(.*)-(.*)/);
                     if ((!jQuery(this).parent().hasClass("current")) || (jQuery("#search-content-" + id[1]).html() == "")) {
                        var type = this.className.match(/tab-box-(.*)/);
                        var rel = this.getAttribute("rel");
                        jQuery("#search-content-" + id[1]).addClass("loading").html("");
                        jQuery.getJSON(site_url+"smallbox/" + type[1] + "/search/", {
                           "keywords": jQuery("#search_input").val(),
                           "id1": id[1],
                           "id2": id[2],
                           "engine": rel
                        }, function(content){
                           //content = jQuery.parseJSON(content);
                           jQuery("#search-content-" + content.id1).html(content.html).removeClass("loading");
                           jQuery("li", jQuery("#box-tabs-" + content.id1)).removeClass("current");
                           jQuery("#tab-link-" + content.id1 + "-" + content.id2).parent().addClass("current");
                           
                           var more = document.createElement("div");
                           var a = document.createElement("a");
                           jQuery(a).attr("href", site_url+"search_request?query=" + jQuery("#search_input").val() + "&engine=" + content.engine).html("More");
                           jQuery(more).addClass("floatr more center").append(a);
                           jQuery("#search-footer-" + content.id1).html("").append(more).append("<div class='clr'></div>");
                        });
                     }
                  });
                  jQuery(li).append(a);
                  if (json.content[t].is_default) {
                     jQuery(li).addClass("current");
                  }
                  jQuery(ul).append(li);
               }
               var tabs = document.createElement("div");
               jQuery(tabs).addClass("box-tabs").attr("id", "box-tabs-" + json.id);
               if (json.content.length > 0) {
                  jQuery(tabs).append(ul);
               }
               else {
                  jQuery("#search-content-" + json.id).addClass("loading").html("");
                  jQuery.getJSON("smallbox/" + json.info.type + "/search/", {
                     "id": json.id,
                     "keywords": jQuery("#search_input").val()
                  }, function(content){
                     //content = jQuery.parseJSON(content);
                     //console.log(content);
                     jQuery("#search-content-" + content.id).html(content.html).removeClass("loading");
                     //jQuery("#search-content-" + content.id)[0].innerHTML = content.html;
                     //alert(content.html);
                     //console.log(content);
                     //var t = document.createElement('p');
                     //t.innerHTML = content.html;
                     //document.getElementById("search-content-" + content.id).appendChild(t);
                  });
               }
               var search = document.createElement("div");
               jQuery(search).addClass("search-content").attr("id", "search-content-" + json.id);
               var footer = document.createElement("div");
               jQuery(footer).addClass("search-footer").attr("id", "search-footer-" + json.id);
               jQuery("#box-content-" + json.id).html("").append(tabs).append("<div class='clr'></div>").append(search).append(footer);
               
               jQuery("li.current > a", jQuery("#box-content-" + json.id)).click();
            });
         }
      })
   },
   
   _createBox: function(/*id*/container, boxInfo){
      //var boxTitle = document.createElement("div");
      //jQuery(boxTitle).addClass("title floatl").html(boxInfo.title);
      var state = ((typeof(boxInfo.state) == "undefined") || (boxInfo.state != "minimized")) ? "maximized" : "minimized";
      if (boxInfo.options.has_buttons == 1) {
         //var MaxMin = document.createElement("div");
		 var MaxMin = document.getElementById("maxmin-" + boxInfo.id);
         jQuery(MaxMin).addClass("icon floatr").click(function(){
            if (jQuery(this).hasClass("maximized")) {
               jQuery(".box-content", jQuery(this).parents(".smallBox")).slideToggle("fast")/*.hide()*/;
               jQuery(this).removeClass("maximized").addClass("minimized").attr("title", "Maxify box");
               jQuery.post("smallboxes/save", {
                  "box": boxInfo.id,
                  "state": "minimized"
               });
            }
            else {
               jQuery(".box-content", jQuery(this).parents(".smallBox")).slideToggle("fast")/*.show()*/;
               jQuery(this).removeClass("minimized").addClass("maximized").attr("title", "Minify box");
               jQuery.post("smallboxes/save", {
                  "box": boxInfo.id,
                  "state": "maximized"
               });
            }
         });
         jQuery(MaxMin).addClass(state).attr("title", (state == "maximized" ? "Minify box" : "Maxify box"));
      }
      /*var divHeader = document.createElement("div");
      jQuery(divHeader).addClass("header").append(boxTitle);
      if (boxInfo.options.has_buttons == 1) {
         jQuery(divHeader).append(MaxMin);
      }
      jQuery(divHeader).append("<div class='clr'></div>");
      var divContent = document.createElement("div");
      jQuery(divContent).addClass("box-content").attr("id", "box-content-" + boxInfo.id).append("<div class='loading'></div>");
      */
      if (boxInfo.options.has_buttons == 1) {
	         if (state == "minimized") {
            //jQuery(divContent).css("display", "none");
			jQuery(".box-content", jQuery(MaxMin).parents(".smallBox")).css("display", "none");
         }
      }
      //return jQuery(container).append(divHeader).append(divContent);
      return jQuery(container);
   }
};

jQuery(document).ready(function(){
   SmallBox.drawBoxes();
});

