var groupRelation = [];
var boxWidth = 0;
jQuery(function () {
    var selectTree = [];
    /* Build select boxes from nested UL */
    jQuery("ul#mediacenter-groups li").each(function () {
        var jThis = jQuery(this);
        if (selectTree[jThis.parent().prop("id")] == undefined || selectTree[jThis.parent().prop("id")] == "undefined") {
            selectTree[jThis.parent().prop("id")] = [];
            groupRelation["sel-" + jThis.parent().prop("id")] = [];
        }
        selectTree[jThis.parent().prop("id")][selectTree[jThis.parent().prop("id")].length] = jThis;
        groupRelation["sel-" + jThis.parent().prop("id")][groupRelation["sel-" + jThis.parent().prop("id")].length] = "sel-" + jThis.prop("id");
    });  
    
    var jAppend = jQuery("<div class=\"slider\"></div>");
    for (var s in selectTree) {
        var jSelect = jQuery("<select multiple=\"multiple\" id=\"sel-" + s + "\"></select>");
        for (var i = 0; i < selectTree[s].length; i++) {
            var jLink = selectTree[s][i].find("a:first");
            jSelect.append("<option value=\"" + jLink.attr("href") + "\" id=\"sel-" + selectTree[s][i].prop("id") + "\">" + jLink.text() + "</option>");
        }
        jAppend.append(jSelect);
    }
    jQuery("#selectbox-container").append(jAppend);
    
    jQuery("button#medie-center-get-group span").html( jQuery("#current-group-name").text() );
    
    
    var currentGroupID = jQuery("#current-group-id").text();
    if (currentGroupID.length > 0) {
        var elementLiId = currentGroupID;
        if (jQuery("option#sel-mli-" + currentGroupID).length>0){
            var elementUlId = jQuery("option#sel-mli-" + currentGroupID).parent().prop("id");                
            elementUlId = elementUlId.replace("sel-mul-", "");
            determineVisibility(elementLiId, elementUlId);
        }
    }
    
    jQuery("div#selectbox-container div select:visible").each(function(){
        boxWidth += jQuery(this).outerWidth(true);
    });
    jQuery("div#selectbox-container div.slider").width( boxWidth );
    
    jQuery("#selectbox-container select").on("click", function () {
        if( jQuery(this).val() != undefined){
            var jLoader = jQuery("div#selectbox-container div.loader").show();
            location.href = jQuery(this).val();
        }
    });
    
    jQuery("button[name='filter-submit']").on("click",function(){
        jQuery("#medie-center-form input[name='GroupID']").val( jQuery("code#dam-group-id").text() );
    });


  // Download Zip
  jQuery("#medie-center-get-selected").click(function(){
    // Get selecter products
    var prodIds = jQuery(".productlist input[name=prodNr]:checked").map(function() {
        return this.value;
    }).get().join(',');    
    // Build settings object    
    var prop = {action: "zip",resFileName:"Cimbria_documents"};
    prop.prodNr = prodIds;
    // Fetch zip
    fetchZip(prop);
  });

  jQuery("#medie-center-get-group").click(function(){
    // Get selecter products
    var currentGroup = jQuery("code#current-group-id").text()
    // Build settings object    
    var prop = {action: "zip",resFileName:"Cimbria_folder"};
    prop.groupId = currentGroup;
    // Fetch zip
    fetchZip(prop);
  });

    jQuery("h2 select").on("change",function(){
        // Make sure we don't post a searchword if nothing was entered
        var searchWord = jQuery("code#default-search-text").text();
        if ( jQuery("input[name='filter-free-text']").val() == searchWord){
            jQuery("input[name='filter-free-text']").val(""); 
        }        
        jQuery("#medie-center-form").submit(); 
    });
    
    jQuery("#medie-center-check-all").on("click",function(){
        var chkState = jQuery(this).prop("checked")
        if (chkState) {
            jQuery("ul.productlist li input[type='checkbox']").prop("checked","checked");
        } else {
            jQuery("ul.productlist li input[type='checkbox']").removeAttr("checked");
        }
    });
});

function fetchZip( properties ) {
    // Link to Zip generation page
    var zipLink = "/Default.aspx?ID=452&MasterTemplate=_xml.html";
    
    // Combine path and properties
    zipLink += "&amp;"+jQuery.param(properties);
    // Create and iframe for starting DL without posting.
    jQuery("#mediecenter iframe.medie-cente-frame").remove();
    jQuery("#mediecenter").append('<iframe class="medie-cente-frame" src="'+ zipLink +'"></iframe>')
}

function determineVisibility(selectedID) {
  jQuery("#sel-mul-" + selectedID).show();
  jQuery("#sel-mli-" + selectedID).attr("selected", "selected");
  // Loop over UL id'er
  for (var gr in groupRelation) {
    // Loop over LI er
    for (var i = 0; i < groupRelation[gr].length; i++) {
      // Find den LI som har den valgte ID.
      // tag så dens parent
      if (groupRelation[gr][i] == "sel-mli-" + selectedID) {
        determineVisibility(gr.replace("sel-mli-", "").replace("sel-mul-", ""));
      }
    }
  }
}
