//
// user-login.js
//
// requires :
//   trader.js
//   

var dumpModuleInstance = new DumpModule();
dumpModuleInstance.pageLoad();

function DumpModule () {

    this.URL_XML = "./";
    this.MENU_CONTAINER_ID = "menu";
    this.PAGE_CONTAINER_ID = "page";
    this.BLOCK_CONTAINER_ID = "block";
    this.COMPONENT_CONTAINER_ID = "filters_opened";
    
    this.pageLoad = function() {
        this.initVars();
    }
    
    this.initVars = function() {
        this.site = null;
        this.search = null;
        this.media_type = null;
        this.category = null;
        this.format = null;
        this.thumb_size = null;
        this.limit = null;
    }
    
    this.target;
    
    this.fetchXmlData = function() {
        var xmlGet = this.generateGet();
        var xmlPost = this.generatePost();
        fetchXmlData(this.URL_XML, xmlGet, xmlPost, function() {
            dumpModuleInstance.refreshPermUrl();
        });
        
        this.initVars();
    }
    
    this.module;
    this.method;
    
    this.generateGet = function() {
        var params = "";

        params = appendUrlParam(params, "m", this.module);
        params = appendUrlParam(params, "method", this.method);
        params = appendUrlParam(params, "target", this.target);
        
        if(this.filters)
            params += "&" + this.filters;
        if(this.site)
            params = appendUrlParam(params, "site", this.site);

        return params;
    }
    
    this.generatePost = function() {
        var params = "";

        return params;
    }
    
    this.site;
    this.search;
    this.url_type;
    this.media_type;
    this.category;
    this.format;
    this.thumb_size;
    this.limit;
    
    this.loadOptions = function(form) {
        this.module = "dump-generator";
        this.method = "ajax";
        this.site = form.site.value;
        this.target = this.COMPONENT_CONTAINER_ID;
        this.fetchXmlData();
    }
    

    var filters;
    var search;
    
    this.refreshPermUrl = function() {
        var furl = this.getFileUrl(document.getElementById('dump-file-form'));
        document.getElementById('permanent_url').value = "http://www.crakmedia.com"+furl;
    }
    
    this.getFileUrl = function(form) {
        var params = "";
        
        params = appendUrlParam(params, "m", "dump-generator");
        this.dump_format = 'csv1';
        for(i=form.dump_format.length-1; i>-1; i--) {
            if(form.dump_format[i].checked) {
                this.dump_format = form.dump_format[i].value;
            }
        }
        params = appendUrlParam(params, "dump_format", this.dump_format);
        if(this.dump_format == 'rss') {
            params = appendUrlParam(params, "method", "rss");
        } else {
            params = appendUrlParam(params, "method", "file");
        }
        params = appendUrlParam(params, "site", form.site.value);
        //params = appendUrlParam(params, "search", form.search.value);
        this.url_type = 'standard';
        for(i=form.url_type.length-1; i>-1; i--) {
            if(form.url_type[i].checked) {
                this.url_type = form.url_type[i].value;
            }
        }
        params = appendUrlParam(params, "url_type", this.url_type);
        
        if(this.dump_format!='rss' && form.from_time && form.to_time) {
            params = appendUrlParam(params, "from_time", form.from_time.value);
            params = appendUrlParam(params, "to_time", form.to_time.value);
        }
        params = appendUrlParam(params, "media_type", form.media_type.value);
        params = appendUrlParam(params, "category", form.category.value);
        if(this.dump_format == 'custom') {
            var elem;
            for(var i=0; elem = form["fields["+i+"]"]; i++) {
                params = appendUrlParam(params, "fields["+i+"]", elem.value);
            }
        } else {
            params = appendUrlParam(params, "fields[0]", "");
        }
        params = appendUrlParam(params, "thumb_size", form.thumb_size.value);
        params = appendUrlParam(params, "limit", form.limit.value);
        
        var file_url = "/?"+params;
    
        return file_url;
    }
    
    this.getFile = function(form) {
        var file_url = this.getFileUrl(form);
        if(this.dump_format=='rss') {
            var confirmed = true;
            if(form.limit.value > 200) {
                confirmed = confirm('Limit '+form.limit.value+' is a pretty big amount of records for a rss.\nAre you sure this is what you want ?\nIf not, please change the Limit to a lower value.');
            }
            if(confirmed) {
                window.open(file_url, 'crakmedia_rss_generator');
            }
        } else {
            document.getElementById("file-download-frame").src = file_url;
        }
        
        return false;
    }
    
    this.reset = function(form) {
        var e=form.getElementsByTagName('input');
        for(var i=0;i<e.length;i++) {
            if(e[i].type=='checkbox') {
                e[i].checked = false;
            } else if(e[i].type=='text') {
                e[i].value = '';
            }
        }
        var e=form.getElementsByTagName('select');
        for(var i=0;i<e.length;i++) {
            e[i].selectedIndex = 0;
        }
        
        return false;
    }    
}

