﻿CategoriesBox.prototype = new Box();
CategoriesBox.prototype.constructor = CategoriesBox;

function CategoriesBox(){

}

CategoriesBox.prototype.onData = function(data){

    var sb = new Array();
    var body = this.getBody();
    sb.push(Box.formatSections(data, this.boxId, CategoriesBox.formatCatgoryBoxSectionLink, CategoriesBox.formatCatgoryBoxEventLink));
    body.innerHTML = sb.join("");
}

CategoriesBox.prototype.update = function(){
    if(!this.isMinimized){
        var body = this.getBody();
        if(body!=null){
            this.loadData();
        }
    }else{
        this._onToggleMinimize();
    }
    this._updateEdit();
}

CategoriesBox.prototype._updateEdit = function(){
    var categorySelect = $("#"+this.boxId+"_edit_category");
    Box.prototype._updateEdit.call(this);
    categorySelect.focus();
}

CategoriesBox.formatCatgoryBoxSectionLink = function(section){
    return Box.siteRoot + "/Category/" + section.Id + "/Default.aspx";
}

CategoriesBox.formatCatgoryBoxEventLink = function(evt){
    return Box.siteRoot + "/Event/" + evt.Id + "/Default.aspx";
}


CategoriesBox._onRootCategoryList = function(data, context){
    context.onRootCategoryList(data);
}

CategoriesBox.prototype.onRootCategoryList = function(data){
    var categorySelect = $("#"+this.boxId+"_edit_category");
    var subcategorySelect = $("#"+this.boxId+"_edit_subcategory");
    var addButton = $("#"+this.boxId+"_edit_add");
    
    var options = '';
    for (var i in data) {
        options += '<option value="' + data[i].Id + '">' + data[i].Name + '</option>';
    }
    categorySelect.html(options);
    

}

CategoriesBox._onSubCategoryList = function(data, context){
    context.onSubCategoryList(data);
}

CategoriesBox.prototype.onSubCategoryList = function(data){
    var categorySelect = $("#"+this.boxId+"_edit_category");
    var subcategorySelect = $("#"+this.boxId+"_edit_subcategory");
    var addButton = $("#"+this.boxId+"_edit_add");
    
    var options = '';
    options += "<option value=\"\">[All]</option>";
    for (var i in data) {
        options += '<option value="' + data[i].Id + '">' + data[i].Name + '</option>';
    }
    subcategorySelect.html(options);
}

CategoriesBox.prototype.onCategoryListChange = function(){
    var categorySelect = $("#"+this.boxId+"_edit_category");
    CategoryService.GetCategories(categorySelect.val(), CategoriesBox._onSubCategoryList, function(){alert("fail")}, this);
}

CategoriesBox.prototype.onEditFormShow = function(){
    CategoryService.GetCategories("41a3c3d5-cacb-4af8-8c51-414773082a86", CategoriesBox._onRootCategoryList, function(){alert("fail")}, this);
}

CategoriesBox.prototype.onEditFormHide = function(){
    
}

CategoriesBox._onAddCategoryClickFail = function(error, context){
    alert("fail:"+error.stackTrace);
}

CategoriesBox._onAddCategoryClickSuccess = function(data, context){
    context.update();
}

CategoriesBox.prototype.onAddCategoryClick = function(){
    this.hideEdit();
    var categorySelect = $("#"+this.boxId+"_edit_category");
    var subcategorySelect = $("#"+this.boxId+"_edit_subcategory");
    var catId = subcategorySelect.val();
    if(catId == ""){
        catId = categorySelect.val();
    }
    MyMofusService.CategoryBoxAddCategory(this.boxId, catId, CategoriesBox._onAddCategoryClickSuccess, CategoriesBox._onAddCategoryClickFail, this);
}





