IMVU.data.products = {};

YAHOO.util.Event.onAvailable("tree", function() {
    IMVU.cat = this.value.split("-");
});

function init() {
    Nifty("div.imvu-nav-box", "big");
    // Turn background image caching on for IE so that cell images don't need to reload each time
    try{ document.execCommand("BackgroundImageCache",false,true); }catch(ex){};
};

YAHOO.util.Event.addListener(window, "load", init);

function doBroaden() {
    document.search.keywords.value = Dom.get("broaden").value;
    doSearch();
};

function relatedSearch(phrase) {
    clearFilters();
    document.search.keywords.value = phrase;
    document.search.field.selectedIndex = 0;
    doSearch();
};
function doBrowse() {
    prepareBrowseFields();
    document.browse.submit();  
};

function prepareBrowseFields() {
    document.browse.page.value = 1;
};

var massModerateBehavior = function() { 

    var checkboxes = YAHOO.util.Dom.getElementsByClassName('mass-mod', 'input', 'products');
    
    // ensure that the top and bottom select action menu stay consistent
    var menu_mass_mod_top = YAHOO.util.Dom.get('mass_mod_select_top');    
    var menu_mass_mod_bottom = YAHOO.util.Dom.get('mass_mod_select_bottom');    
    var menu_handler = function() {
        if (this.id == 'mass_mod_select_top') {
            menu_mass_mod_bottom.value = menu_mass_mod_top.value;
        } else {
            menu_mass_mod_top.value = menu_mass_mod_bottom.value;
        }      
    };
    YAHOO.util.Event.on(menu_mass_mod_top, "change", menu_handler);
    YAHOO.util.Event.on(menu_mass_mod_bottom, "change", menu_handler);

    // ensure that the top and bottom check all boxes stay consistent
    var check_all_mass_mod_button_top= YAHOO.util.Dom.get('mass_mod_check_all_top');
    var check_all_mass_mod_button_bottom = YAHOO.util.Dom.get('mass_mod_check_all_bottom');    
    var check_all_event_handler = function(){
        var cb_state = this.checked;
        
        if (this.id == 'mass_mod_check_all_bottom') {
            check_all_mass_mod_button_top.checked = cb_state;
        } else {
            check_all_mass_mod_button_bottom.checked = cb_state;
        }
        for(var i = 0, box; box = checkboxes[i]; i++) {
            box.checked = cb_state ? true : false;
        } 
    };
    YAHOO.util.Event.on(check_all_mass_mod_button_top, 'click', check_all_event_handler);
    YAHOO.util.Event.on(check_all_mass_mod_button_bottom, 'click', check_all_event_handler);

    // if someone checks all and then unchecks a product, let's capture that and 
    // make the check all boxes correct
    YAHOO.util.Event.on('products', 'click', function(event){
            var target = YAHOO.util.Event.getTarget(event);
            if (target.className == 'mass-mod') {
                if ((check_all_mass_mod_button_bottom.checked) || (check_all_mass_mod_button_top.checked)) {
                    check_all_mass_mod_button_bottom.checked = false;
                    check_all_mass_mod_button_top.checked = false;
                }
            }
        });
    
    // handler for someone clicking the Mass Edit button at either the top or bottom
    var submit_handler = function(){

        // collect the post data  
        var num_edited_products = 0;      
        var boxes_checked = [];
        for(var i = 0, el; box = checkboxes[i]; i++) {
            if (box.checked) {
                var id = box.id.replace(/^be_/,'');
                boxes_checked.push(id);
                num_edited_products++;
            }
        }
        if (boxes_checked.length == 0) {
            alert("Please check one or more products");
            return;
        }
        var mass_mod_select_ui = YAHOO.util.Dom.get('mass_mod_select_bottom');
        var selected_action = mass_mod_select_ui.options[mass_mod_select_ui.selectedIndex].value; 
        var products_str = boxes_checked.join(",");
        var post_data = {
            action: selected_action,
            products: products_str
        }

        // create the call backs for the service        
        var handleSuccess = function(object){
            var response = YAHOO.lang.JSON.parse(object.responseText);
            if (response['error']) {
                alert("Action failed: " + response['error']);
            } else {
                alert("Success: " + response['num_edits'] + " products have been queued up for auto-moderation.");
            }
        }; 
        var handleFailure = function(object){
            var response = YAHOO.lang.JSON.parse(object.responseText);
            console.log("FAIL: " + response);
            alert("Mass edit failed: " + response);
        }; 
        var callbacks = {
            success:  handleSuccess,
            failure: handleFailure
        };
        
        // make the request
        if (confirm("Are really sure?")) {
            //console.log("Editing products post data: " + post_data);
            YAHOO.util.Connect.asyncRequest(
                                            'POST', 
                                            '/api/service/admin/mass_moderate_products.php', 
                                            callbacks, 
                                            YAHOO.lang.JSON.stringify(post_data)
                                            );
        }
    };
    YAHOO.util.Event.on('mass_mod_button_top', 'click', submit_handler);
    YAHOO.util.Event.on('mass_mod_button_bottom', 'click', submit_handler);
    
};
YAHOO.util.Event.onDOMReady(massModerateBehavior);

