﻿/*
 * Ext JS Library 2.2
 * Copyright(c) 2006-2008, Ext JS, LLC.
 * licensing@extjs.com
 * 
 * http://extjs.com/license
 */
Ext.override(Ext.data.Connection, {

	request : function(o){
		
        if(this.fireEvent("beforerequest", this, o) !== false){
            var p = o.params;

            if(typeof p == "function"){
                p = p.call(o.scope||window, o);
            }
            if(typeof p == "object"){
                p = Ext.urlEncode(p);
            }
            if(this.extraParams){
                var extras = Ext.urlEncode(this.extraParams);
                p = p ? (p + '&' + extras) : extras;
            }

            var url = o.url || this.url;
            if(typeof url == 'function'){
                url = url.call(o.scope||window, o);
            }

            if(o.form){
                var form = Ext.getDom(o.form);
                url = url || form.action;

                var enctype = form.getAttribute("enctype");
                if(o.isUpload || (enctype && enctype.toLowerCase() == 'multipart/form-data')){
                    return this.doFormUpload(o, p, url);
                }
                var f = Ext.lib.Ajax.serializeForm(form);
                p = p ? (p + '&' + f) : f;
            }

            var hs = o.headers;
            if(this.defaultHeaders){
                hs = Ext.apply(hs || {}, this.defaultHeaders);
                if(!o.headers){
                    o.headers = hs;
                }
            }

            var cb = {
                success: this.handleResponse,
                failure: this.handleFailure,
                scope: this,
                argument: {options: o},
                timeout : this.timeout
            };

            var method = o.method||this.method||(p ? "POST" : "GET");

            if(method == 'GET' && (this.disableCaching && o.disableCaching !== false) || o.disableCaching === true){
                url += (url.indexOf('?') != -1 ? '&' : '?') + '_dc=' + (new Date().getTime());
            }

            if(typeof o.autoAbort == 'boolean'){ // options gets top priority
                if(o.autoAbort){
                    this.abort();
                }
            }else if(this.autoAbort !== false){
                this.abort();
            }
            if((method == 'GET' && p) || o.xmlData || o.jsonData){
                url += (url.indexOf('?') != -1 ? '&' : '?') + p;
                p = '';
            }
            if (o.scriptTag) {
               this.transId = this.scriptRequest(method, url, cb, p, o);
            } else {
               this.transId = Ext.lib.Ajax.request(method, url, cb, p, o);
            }
            return this.transId;
        }else{
            Ext.callback(o.callback, o.scope, [o, null, null]);
            return null;
        }
    },
    
    scriptRequest : function(method, url, cb, data, options) {
        var transId = ++Ext.data.ScriptTagProxy.TRANS_ID;
        var trans = {
            id : transId,
            cb : options.callbackName || "stcCallback"+transId,
            scriptId : "stcScript"+transId,
            options : options
        };

        url += (url.indexOf("?") != -1 ? "&" : "?") + data + String.format("&{0}={1}", options.callbackParam || 'callback', trans.cb);

        var conn = this;
        window[trans.cb] = function(o){
            conn.handleScriptResponse(o, trans);
        };

//      Set up the timeout handler
        trans.timeoutId = this.handleScriptFailure.defer(cb.timeout, this, [trans]);

        var script = document.createElement("script");
        script.setAttribute("src", url);
        script.setAttribute("type", "text/javascript");
        script.setAttribute("id", trans.scriptId);
        document.getElementsByTagName("head")[0].appendChild(script);

        return trans;
    },

    handleScriptResponse : function(o, trans){
        this.transId = false;
        this.destroyScriptTrans(trans, true);
        var options = trans.options;
        
//      Attempt to parse a string parameter as XML.
        var doc;
        if (typeof o == 'string') {
            if (window.ActiveXObject) {
                var doc = new ActiveXObject("Microsoft.XMLDOM");
                doc.async = "false";
                doc.loadXML(o);
            } else {
                var doc = new DOMParser().parseFromString(o,"text/xml");
            }
        }

//      Create the bogus XHR
        response = {
            responseObject: o,
            responseText: (typeof o == "object") ? Ext.util.JSON.encode(o) : String(o),
            responseXML: doc,
            argument: options.argument
        }
        this.fireEvent("requestcomplete", this, response, options);
        Ext.callback(options.success, options.scope, [response, options]);
        Ext.callback(options.callback, options.scope, [options, true, response]);
    },
    
    handleScriptFailure: function(trans) {
        this.trans = false;
        this.destroyScriptTrans(trans, false);
        var options = trans.options;
        response = {
        	argument:  options.argument
        };
        this.fireEvent("requestexception", this, response, options, new Error("Timeout"));
        Ext.callback(options.failure, options.scope, [response, options]);
        Ext.callback(options.callback, options.scope, [options, false, response]);
    },
    
    // private
    destroyScriptTrans : function(trans, isLoaded){
        document.getElementsByTagName("head")[0].removeChild(document.getElementById(trans.scriptId));
        clearTimeout(trans.timeoutId);
        if(isLoaded){
            window[trans.cb] = undefined;
            try{
                delete window[trans.cb];
            }catch(e){}
        }else{
            // if hasn't been loaded, wait for load to remove it to prevent script error
            window[trans.cb] = function(){
                window[trans.cb] = undefined;
                try{
                    delete window[trans.cb];
                }catch(e){}
            };
        }
    }
});

 
var path = 'http://intranet.consorzio-teres.it/';
//var path = 'http://localhost/intrateres/';
var click = 0;

Ext.onReady(function() {
    
    var fp = new Ext.form.FormPanel({
        //title: 'Login',
		labelWidth:60,
		labelAlign:'right',
		id:'login',
        border:false,
		frame:false,
        //layout: 'fit',
        //plain:true,
		width:285,
	    autoHeight:true,
        bodyStyle:'margin-left:50px;',
        buttonAlign:'right',
        items: [{
				xtype:'textfield',
        		fieldLabel: 'User',
            	id:'user',
           		name: 'user',
				height:20
        		},{
				xtype:'textfield',
            	fieldLabel: 'Password',
				id: 'password',
            	name: 'password',
            	inputType : 'password',
				height:20					
    		  }],
        buttons: [{
            xtype:'label',
			html:'<p class="more_details"><img src="images/point_blu.gif" alt="icona dettagli" /> <a onclick="loginClick();">login</a></p>'
        }]
    });
    
	fp.render('loginDiv');
    Ext.getCmp("user").focus(false,100);
});

function loginClick(){
                          if (click == 0) { 
						  	  click = 0;
							  Ext.Ajax.request({
       								url: path+'Login.aspx?servizio=3',
       								scriptTag: true,
									waitTitle: 'Connessione',
                              		waitMsg: 'Invio dati...',
       								params: {
											user: Ext.getCmp('user').getValue(),
											password: Ext.getCmp('password').getValue()
											},
											success: function(response) {
			    										//Ext.get("json-result").update(response.responseText);
														var json = Ext.decode(response.responseText);
														if (json.success == true) {
															
															if (json.data[0].fl == '1') {
                                                   									 a=path+"firstlog.html"
                                               										}else{
                                                    							     a=path+"AreaRiservata/default.aspx"
                                              									    }
                                              
                                              								 window.location=a;
                                               								 
															}
														
														if (json.success == false) {
															Ext.Msg.alert('Errore', json.error);
															}
														},
											failure:function(response){
                                               var json = Ext.decode(response.responseText);
                							   Ext.Msg.alert('Errore', json.error);
                                               
											   click = 0;
                                               }
							});


                              /*Ext.getCmp("login").getForm().submit({
							  url:path+'Login.aspx?servizio=1',
                              method: 'post',
                              waitTitle: 'Connessione',
                              waitMsg: 'Invio dati...',
                              failure:function(form, action){
                                               Ext.Msg.alert('Errore', action.result.error);
                                               
											   click = 0;
                                               },
                              success:function(form, action){
                                               //Ext.Msg.alert('Login', action.result.data[0].login);
                                               if (action.result.data[0].fl == '1') {
                                                    a=path+"/firstlog.html"
                                               }
                                               else
                                               {
                                                    a=path+"AreaRiservata/default.aspx"
                                               }
                                              
                                               window.location=a;
                                               }
                                               });*/
						  }
	}


