/**
*
*  BIBLIOTECA EW!
*  Luiz de Paula - 2007
*
**/

dojo.require("auge.base");
dojo.require("dojo.io.iframe");

EW = {
    callback: function(data) {
        dojo.eval(data);
    },

    loadController: function(base, home, id) {
        EW.loadDivAjax(home, 'EWServlet.ew?dummy='+(new Date().getTime())+'&EWBase=' + base + '&EWId=' + id + '&EWAction=loadController&EWHome=' + home);
    },
    
    loadControllerModalBox: function(ewId, dialogId, title, cssClass) {
    	dojo.require("dijit.Dialog");

    	var dialog = new dijit.Dialog({
    		id: dialogId,
			title: title,
			content: "<div id=\"divModalBox" + ewId + "\"></div>",
			onHide: function() {
    			EW.warnDeadBase(null, ewId);
    			this.destroy();
    		}
		});
    	dialog.attr('class', cssClass);
    	dialog.show();
    	
    	
        EW.loadDivAjax("divModalBox" + ewId, 'EWServlet.ew?EWAction=loadBase&EWDrawBase=0&EWId=' + ewId + '&dummy=' + (new Date().getTime()));
    },
    
    loadControllerIFrame: function(ewId, iframeId) {
    	dojo.byId(iframeId).src = 'EWServlet.ew?EWAction=loadBase&EWId=' + ewId + '&dummy=' + (new Date().getTime());
    },

    downloadFile: function(base, id) {
    	var EWForm = dojo.byId('EWBaseForm' + base);
    	dojo.byId('EWBase' + base).value = base;
    	dojo.byId('EWId' + base).value = id;
        dojo.byId('EWAction' + base).value = 'downloadFile'; 
        EWForm.setAttribute('enctype', 'application/x-www-form-urlencoded');
        EWForm.setAttribute('encoding', 'application/x-www-form-urlencoded');
        EWForm.submit();
        EWForm.setAttribute('enctype', 'multipart/form-data');
        EWForm.setAttribute('encoding', 'multipart/form-data');
    },

    unloadController: function(base, home) {
        dojo.xhrPost({
            url:"EWServlet.ew",
            headers: {
                "Content-Type": "application/x-www-form-urlencoded; charset=utf-8"
            },
            content: {
                "EWAction":"unloadController",
                "EWBase":base,
                "EWHome":home
            },
            load: function(data,ioargs) {
                EW.callback(data);
            }
        });

        try {
        	dojo.innerHTML(home, '');
        } catch(e) {}
    },

    warnDeadBase: function(base, ewId) {
        dojo.xhrPost({
            url:"EWServlet.ew",
            content: {
                "EWAction":"warnDeadBase",
                "EWBase":base,
                "EWId":ewId
            },
            load: function(data,ioargs) {
                EW.callback(data);
            }
        });

        try {
        	dojo.innerHTML(home, '');
        } catch(e) {}
    },

    raiseEvent: function(base, id, method) {
        dojo.xhrPost({
            headers: {
                "Content-Type": "application/x-www-form-urlencoded; charset=utf-8"
            },
            url:"EWServlet.ew",
            content: {
                "EWAction":"raiseEvent",
                "EWId":id,
                "EWMethod":method,
                "dummy":new Date().getTime()
            },
            form:"EWBaseForm" + base,
            load: function(data,ioargs) {
                EW.callback(data);
            }
        });
    },

    query: function(base, id, method, callback) {
        dojo.xhrPost({
            url:"EWServlet.ew",
            headers: {
                "Content-Type": "application/x-www-form-urlencoded; charset=utf-8"
            },
            content: {
                "EWAction":"query",
                "EWId":id,
                "EWMethod":method
            },
            form:"EWBaseForm" + base,
            load: function(data,ioargs) {
                dojo.addOnLoad(function() {
                    callback(data);
                });
            }
        });
    },

    loadDivAjax: function(div, action) {
        divObj = dojo.byId(div);
        dojo.xhrGet({
            url:action,
            headers: {
                "Content-Type": "application/x-www-form-urlencoded; charset=utf-8"
            },
            load: function(data,ioargs) {
                dojo.addOnLoad(function() {
                    dojo.innerHTML(div, data);
                });
            }
        });
    },

    loadCSS: function(path, media, ignoreIE) {
        var oLink = document.createElement("link");
        oLink.href = path;
        oLink.rel = "stylesheet";
        oLink.type = "text/css";
        oLink.media = (media?media:"all");
        dojo.query("head").addContent(oLink);
        
        if(!ignoreIE) {
        	tpath = path.replace(/\.css$/, "");
	        if(dojo.isIE) {
	        	EW.loadCSS(tpath + ".ie.css", media, true);
	        }
	        if(dojo.isIE == 6) {
	        	EW.loadCSS(tpath + ".ie6.css", media, true);
	        }
        }        
    },

    loadJS: function(path) {
        var oLink = document.createElement("script");
        oLink.src = path;
        oLink.type = "text/javascript";
        dojo.query("head").addContent(oLink);
    },

    upload: function(base, id, method, callback, callbackErro) {
        dojo.byId('EWBase' + base).value = base;
        dojo.byId('EWId' + base).value = id;
        dojo.byId('EWAction' + base).value = 'upload';
        dojo.byId('EWMethod' + base).value = method;

        formName = "EWBaseForm" + base;


        dojo.io.iframe.send({
            form: formName,
            handleAs: "html",
            handle: function(response, ioArgs) {
                EW.raiseEvent(base, id, callback);
            },
            preventCache: true,
            method: "post",
            url: "EWServlet.ew"
        });
    }
};

