BaseJS = {
  
  loadHTML: function(divId, file, params) {
    
    BaseJS.load(divId, file, params);
    
    return;
    
  },
  
  load: function(divId, file, params) {
    
    $.post(
        "./typo3conf/ext/extshare/" + file,
        params,
        function (response) {
          BaseJS.evalResponse(divId, response);
        },
        "html"
        );
    
    return;
    
  },
  
  evalResponse: function(divId, response) {
    
    $("div#" + divId).html(response);
    
    return;
    
  }
  
};

Trigger = {
  
  triggerPool: [],
  
  registerTrigger: function(name, func) {
    
    Trigger.triggerPool[name] = func;
    
    return;
    
  },
  
  callTrigger: function(name, params) {
    
    return Trigger.triggerPool[name](params);
    
  }
  
};

Toggle = {
  
  nextBox: function(pointer, boxtype) {
    
    var catBox = $(pointer).next("div.tech-download-" + boxtype + "box");
    var status;
    
    if ($(pointer).hasClass("tech-download-" + boxtype + "-open")) {
      
      $(pointer).removeClass("tech-download-" + boxtype + "-open");
      $(catBox).removeClass("tech-download-" + boxtype + "box-open");
      
      status = "closed";
      
    } else {
      
      $(pointer).addClass("tech-download-" + boxtype + "-open");
      $(catBox).addClass("tech-download-" + boxtype + "box-open");
      
      status = "open";
      
    }
    
    return status;
    
  },
  
  productBox: function(pointer, params) {
    
    if (this.nextBox(pointer, "product") == "open")
      Product.load(params);
    
    return;
    
  }
  
};

Product = {
  
  fileLite: "",
  
  setLite: function() {
    
    this.fileLite = "product-downloads-lite.php";
    //this.fileLite = "product-downloads-lite2.php";
    
    //console.log("blah");
    
    return;
  
  },
  
  load: function(params) {
    
    BaseJS.loadHTML("tech-download-productbox-inner-" + params.uid, this.fileLite, { uid: params.uid, lang: params.lang });
    
    return;
    
  },
  
  filter: function(params) {
    
    BaseJS.loadHTML("tech-download-productbox-inner-" + params.uid, this.fileLite, { uid: params.uid, filter: params.filter, special: params.special, lang: params.lang });
    
    return;
    
  }
  
};
