﻿
var accessList = {};


/*
Ext.onReady(function(){
    new Ext.Panel({id:'foo-test',title:'Test', width:425}).render('report-generator-test');
    (Ext.get('foo-test').child('.x-panel-body').dom.innerHTML = '<b>hi</b>');
    //..appendChild('<b>hi</b>');
    //x-panel-body
});
*/

var reportURL = {
    reportTypeSummary: 'Summary2.aspx',
    reportTypeSent: 'SentReceived.aspx',
    reportTypeIndividual: 'TransactionList.aspx',
    reportTypeCombined: 'Combined.aspx'}
    
var reportTitle = {
    reportTypeSummary: 'Survey Summary Report',
    reportTypeSent: 'Surveys Sent/Received Report',
    reportTypeIndividual: 'View Individual Surveys',
    reportTypeCombined: 'Combined Report'}



/*
var params = '?EntityTypeList=' + entityTypeList;
             params += '&EntityID=' + entityID
            params += '&EntityType=' + entityType
            params += '&NextChildType=' + nextChildType;
            params += '&SurveyGroupID=' + surveyGroupID;
            params += '&SurveyID=' + surveyID;
            params += '&Start=' + startDate;
            params += '&End=' + endDate;
            //alert(params);
            params += '&EntityList=' + entityList;
            params += '&ParentList=' + entityList;
*/

var createTab = function(src, label, noClose){
    var iframe = Ext.get('tab-bucket').createChild({tag: 'iframe', border:0 ,frameborder:0, height: '100%', width:'100%',
        src: src});
    //var tab = new Ext.Panel(iframe, {title:"Welcome Tab", autoCreate:true,fitToFrame: true, closable: true});
    //layout.getRegion('center').add(tab);
    iframe.set({name:iframe.id});
    if(Ext.isIE && window.frames[iframe.id].name != iframe.id) { /* *** IMPORTANT: This is a BUG FIX for Internet Explorer *** */ window.frames[iframe.id].name = iframe.id; }
    var toolbar = new Ext.Toolbar({autoHeight: true});
    var tab = mainPanel.add(
        {contentEl: iframe, title: label, autoCreate:true,
            fitToFrame: true, closable: (noClose ? false : true), autoScroll: true,
            tbar: toolbar
        }
    );
    tab.show();
    //toolbar.addText(label + ': ');
    toolbar.addSpacer();
    toolbar.addSpacer();
    toolbar.addButton(
        {iconCls: 'icon-sign-out',
        text: 'Close',
        disabled: (noClose == true ? true : false),
        tooltip: 'Close this tab panel',
        handler: function(){
            this.mainPanel.remove(this.panel);
        },
        scope: {mainPanel:mainPanel, panel:tab}
        }
    );
    toolbar.addSpacer();
    toolbar.addButton(
        {iconCls: 'icon-back-report',
        text: 'Back',
        disabled: (noClose == true ? true : false),
        tooltip: 'Go back to previous tab panel',
        handler: function(){
            //this.mainPanel.remove(this.panel);
            history.go(-1)
        },
        scope: {mainPanel:mainPanel, panel:tab}
        }
    );
    toolbar.addSpacer();
    toolbar.addButton(
        {iconCls: 'icon-reload-report',
        text: 'Reload',
        tooltip: 'Reload the report in this tab panel',
        handler: function(){
            var winContext = iframe.dom.contentWindow||window.frames[iframe.dom.name];
            if(Ext.isIE) winContext.focus();
            winContext.location.reload(true);
        },
        scope: {iframe:iframe}
        }
    );
    toolbar.addSpacer();
    toolbar.addButton(
        {iconCls: 'icon-print-report',
        text: 'Print',
        tooltip: 'Print the report in this tab panel',
        handler: function(){
            var winContext = iframe.dom.contentWindow||window.frames[iframe.dom.name];
            if(Ext.isIE) winContext.focus();
            winContext.print();
        },
        scope: {iframe:iframe}
        }
    );
    return iframe;
}

var launchReport = function(){
    var reportBoxLabel = 'Report';
    if(reportTitle[this.reportType]) reportBoxLabel = reportTitle[this.reportType];
    
    var entityID = this.entityList.substring(0,this.entityList.indexOf(':'));
    var entityType = this.entityList.substring(this.entityList.indexOf(':') + 1, (this.entityList.indexOf(',') == -1 ? this.entityList.length : this.entityList.indexOf(',')));
            
    var entityTypeList = '';
    var nextChildType = '';
    if(entityType == 'vendor') {
        entityTypeList = 'vendor,company,office,member';
        nextChildType = 'company'
    }
    if(entityType == 'franchise') {
        entityTypeList = 'franchise,company,office,member';
        nextChildType = 'company'
    }
    if(entityType == 'territory') {
        entityTypeList = 'territory,company,office,member';
        nextChildType = 'company'
    }
    if(entityType == 'company') {
        entityTypeList = 'company,office,member';
        nextChildType = 'office'
    }
    if(entityType == 'region') {
        entityTypeList = 'region,office,member';
        nextChildType = 'office'
    }
    if(entityType == 'office') {
        entityTypeList = 'office,member';
        nextChildType = 'member'
    }
    if(entityType == 'member') {
        entityTypeList = 'member';
        nextChildType = 'NA'
    }
    /*
    var params = '?EntityTypeList=' + entityTypeList;
    params += '&EntityID=' + entityID
    params += '&EntityType=' + entityType
    params += '&NextChildType=' + nextChildType;
    params += '&SurveyGroupID=' + this.surveyGroupID;
    if(this.surveyID){
        params += '&SurveyID=' + this.surveyID;
    }
    params += '&Start=' + this.startDate;
    params += '&End=' + this.endDate;
    params += '&EntityList=' + this.entityList;
    params += '&ParentList=' + this.entityList;
    params += '&EntityLevels=' + entityID + ':' + entityType + ',-1:member';
    */
    
    
    var iframe;
    if(reportBoxLabel == 'Report Generator'){
        var params = '?EntityTypeList=' + entityTypeList;
        params += '&EntityID=' + entityID
        params += '&EntityType=' + entityType
        params += '&NextChildType=' + nextChildType;
        params += '&SurveyGroupID=' + this.surveyGroupID;
        if(this.surveyID){
            params += '&SurveyID=' + this.surveyID;
        }
        params += '&Start=' + this.startDate;
        params += '&End=' + this.endDate;
        params += '&EntityList=' + this.entityList;
        //params += '&ParentList=' + this.entityList;
        params += '&EntityLevels=' + entityID + ':' + entityType + ',-1:member';
        iframe = createTab(reportURL[this.reportType] + params, reportBoxLabel);
    } else {
        iframe = createTab('', reportBoxLabel);
    }
    
    rgForm = Ext.get('reportGeneratorHidden');
    var inputs = rgForm.select('input');
    if(inputs) inputs.remove();
    //if(inputs) alert(inputs);
    
    Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
        name:'EntityTypeList', value:entityTypeList});
    Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
        name:'EntityID', value:entityID});
    Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
        name:'EntityType', value:entityType});
    Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
        name:'NextChildType', value:nextChildType});
    Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
        name:'SurveyGroupID', value:this.surveyGroupID});
    if(this.surveyID){
        Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
            name:'SurveyID', value:this.surveyID});
    }
    Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
        name:'Start', value:this.startDate});
    Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
        name:'End', value:this.endDate});
    Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
        name:'EntityList', value:this.entityList});
    //Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
    //    name:'ParentList', value:this.entityList});
    Ext.DomHelper.append(rgForm,{tag:'input', type:'hidden',
        name:'EntityLevels', value:entityID + ':' + entityType + ',-1:member'});
    //alert(iframe);
    //alert(iframe.dom.name);
    //alert(iframe.id);
    
    //rgForm.dom.target = iframe.dom.name;
    /*
    var winContext = iframe.dom.contentWindow||window.frames[iframe.dom.name];
            if(Ext.isIE) winContext.focus();
            winContext.print();
    */        
    rgForm.dom.target = iframe.dom.name;
            //if(Ext.isIE) winContext.focus();
            //winContext.location.reload(true);
    //rgForm.dom.target = '_fooBoo';
    rgForm.dom.method = 'POST';
    //rgForm.dom.action = 'Blank.aspx';
    rgForm.dom.action = reportURL[this.reportType];
    //form.enctype = form.encoding = 'multipart/form-data';
    if(reportBoxLabel != 'Report Generator'){
        //if(!Ext.isIE)
        rgForm.dom.submit();
    }
}
//var reportBoxLabel = 'Report';
            //var reportType = '';
//reportBoxLabel = reportTypeRadio[i].boxLabel;
//reportType = reportTypeRadio[i].inputValue;






/*
var entityTabButton = new Ext.Button(entityFieldSet.getEl(),{text: "Go To Entity Tab"});
        entityTabButton.getEl().dom.style.marginLeft = "auto";
        entityTabButton.getEl().dom.style.marginRight = "auto";
        
        entityTabButton.on("click", function(){layout.getRegion("west").showPanel("entityTree");});
*/





    
//Ext.onReady(function(){
//    reportGenSurveyGroupRadio[0].render('report-generator-form');
//});


/*
var rowTemplate = Ext.DomHelper.createTemplate(
    {tag:'input',
        cls:'report-generator-radio report-generator-survey-group',
        type:'radio',
        name:'report-generator-radio-survey-group',
        
        children:[
            {tag:"td", cls:"IDCol", style:"text-align: left;", children:[
                {tag: "a", cls: "ExpandNodeLink", href:"javascript:void(0);",
                    children:[{tag:"img", border:0, src:"img/plus.gif"}]},
                {tag:"span", html:"{CompanyInternalID}"}]},
            {tag:"td", cls:"EntityNameCol", style:"text-align: left;", html:"{EntityName}"},
            {tag:"td", html:"{SurveyGroupCount}"},
            {tag:"td", html:"{SurveyGroupReturned}"},
            {tag:"td", html:"{SurveyGroupReturnedPercentage}"},
            {tag:"td", html:"{CSRQuestionAnsweredCount}"},
            {tag:"td", html:"{CSR4AndGreater}"},
            {tag:"td", html:"{CSR4AndGreaterPercentage}"},
            {tag:"td", html:"{AverageCSR}"},
            {tag:"td", html:"{SurveyGroupUndeliverable}"},
            {tag:"td", html:"{SurveyGroupUndeliverablePercentage}"}
        ]
    });
rowTemplate.compile();

*/
