﻿// JScript File
$membership={
    serviceUrl: '/gonline/sign/login.ashx',
    
    signin:function (user,pass,callback){
        debug.trace('>> membership.signin user={0},pass={1},hasCallback={2}'.format(user,pass,typeof(callback)!='undefined'));
        user=encodeURIComponent(user.trim());
        pass=encodeURIComponent(pass.trim());        
        $membership.signin_callback_client=callback;
        request(this.serviceUrl+'?action=signin&user={0}&pass={1}'.format(user,pass),false,this.signin_callback);
    },
    
    signin_callback:function(xmlhttp){
        eval(xmlhttp.responseText);
        if(jsrespose.isOK()){
            $membership.signin_callback_client(jsrespose);
            $membership.signin_callback_client=function(){};
        }else{
            $membership.signin_callback_client(jsrespose);
            $membership.signin_callback_client=function(){};         
        }
    },
    
    signup:function(email,pass,confirm, country,tel,company, promocode,promomail,iagree,callback){
        debug.trace('>> membership.signup');
        $membership.signup_callback_client=callback;   
        email=encodeURIComponent(email);
        pass=encodeURIComponent(pass);
        country=encodeURIComponent(country);
        tel=encodeURIComponent(tel);
        company=encodeURIComponent(company);
        promocode=encodeURIComponent(promocode);
        promomail=encodeURIComponent(promomail);        
        var action='signup&email={0}&password={1}&country={2}&telefone={3}&company={4}&promocode={5}&promomail={6}&pass_ver={7}&iaccept={8}'.format(email,pass,country,tel,company,promocode,promomail,confirm,iagree);
        debug.trace(action);
        request(this.serviceUrl+'?action='+action,false,this.signup_callback);    
    },
    
    signup_callback:function(xmlhttp){        
        debug.trace(xmlhttp.responseText);
        eval(xmlhttp.responseText);
        $membership.signup_callback_client(jsrespose);
        $membership.signup_callback_client=function(){};
    },
    
    signout:function(callback){
        debug.trace('>> membership.signout');    
        $membership.signout_client_callback=callback;
        request(this.serviceUrl+'?action=signout',false,this.signout_callback);        
    },
    
    signout_callback:function(xmlhttp){
        debug.trace('>> membership.signout_callback');    
        debug.trace(xmlhttp.responseText);
        eval(xmlhttp.responseText)
        $membership.signout_client_callback(jsrespose);
        $membership.signout_client_callback=function (){};
    },
        
    resetPasssword:function(user,callback){
        debug.trace('>> membership.resetPasssword user={0},hasCallback={1}'.format(user,typeof(callback)!='undefined'));
        $membership.resetPasssword_client_callback=callback;
        request(this.serviceUrl+'?action=resetpass&user={0}'.format(user),false,this.resetPasssword_callback);
    },
    
    resetPasssword_callback:function(xmlhttp){
        debug.trace('>> membership.resetPasssword_callback');    
        eval(xmlhttp.responseText);
        if(jsrespose.isOK()){
            $membership.resetPasssword_client_callback(jsrespose);
            $membership.resetPasssword_client_callback=function(){};
        }else{
            $membership.resetPasssword_client_callback(jsrespose);
            $membership.resetPasssword_client_callback=function(){};         
        }
    },    
   
    setPassword : function(oldPass,newPass,pass_ver,callback){
        debug.trace('>> membership.setPassword');
        $membership.setPassword_client_callback=callback;
        request(this.serviceUrl+'?action=setpass&oldpass={0}&newpass={1}&newpass_ver={2}'.format(encodeURIComponent(oldPass),encodeURIComponent(newPass),encodeURIComponent(pass_ver)),false,this.setPassword_callback);
    },
    
    setPassword_callback : function(xmlhttp){
        debug.trace('>> membership.setPassword_callback');        
        debug.trace(xmlhttp.responseText);
        eval(xmlhttp.responseText)
        $membership.setPassword_client_callback(jsrespose);
        $membership.setPassword_client_callback=function (){};
    }   
     
}//obejct

$accountManager={
    serviceUrl:'/gonline/users/UsersServices.ashx?action=GetAccountProperties',
    _properties:new Array(),
    init:function (callback){    
        request(this.serviceUrl,false,this.init_callback);
    },
    
    init_callback:function(xmlhttp){
       debug.trace('initCallback');
       eval(xmlhttp.responseText); 
       var data=GetData();
		
		if(xmlhttp.responseText.search(/GetData()/i)>=0){
            debug.trace('>> forms.submitCallback:evaluate response');
            eval(xmlhttp.responseText);
        }
		if(typeof(GetData)!='undefined'){
				var data=GetData();
        $accountManager._properties=data;
		}else{
			$accountManager._properties=new Array();
		}
        
    },
    
    profile:function(property){
        return (typeof(property)=='undefined')?$accountManager._properties:$accountManager._properties[property];
    },
    
    statInfo:function(){
        var sent=$accountManager.profile()['tsent'];
        var click=$accountManager.profile()['tclick'];
        var sinfo=new Object();
        sinfo.sent=sent; 
        sinfo.click=click;
        return sinfo;
    }    
}

$mediaProxy={
    serviceUrl:'/gonline/providers/MediaProvider.ashx',
    init:function(){
    
    },
    
    loadDataTable:function(callback){
        debug.trace('>> mediaProxy.loadDataTable');
        $mediaProxy.onLoadCallback=callback;
        request(this.serviceUrl+'?action=load',false,$mediaProxy.onLoad);        
    },
     onLoad:function(xmlhttp){
        debug.trace('>> mediaProxy.loadDataTable_callback');
        eval(xmlhttp.responseText);
        $mediaProxy.onLoadCallback(imgDataTable);
        $mediaProxy.onLoadCallback=function(){};
    },
    
    disableAdv:function (id,callback){
        debug.trace('>> mediaProxy.disableAdv');
        $mediaProxy.onDisableAdvCallback=callback;
        request(this.serviceUrl+'?action=disable&guid={0}'.format(id),false,$mediaProxy.onDisableAdv);
    },
    onDisableAdv:function (xmlhttp){        
        debug.trace('>> mediaProxy.onDisableAdv');        
        //debug.trace(xmlhttp.responseText);
        eval(xmlhttp.responseText)
        debug.info('status:[{0}],message:[{1}]'.format(jsrespose.status,jsrespose.message));
        $mediaProxy.onDisableAdvCallback(jsrespose);
        $mediaProxy.onDisableAdvCallback=function(){};        
    },
    disableAll:function (callback){
        debug.trace('>> mediaProxy.disableAll');
        $mediaProxy.onDisableAllCallback=callback;
        request(this.serviceUrl+'?action=disableall',false,$mediaProxy.onDisableAll);
        
    },
    onDisableAll:function (xmlhttp){
        debug.trace('>> mediaProxy.onDisableAll');        
        //debug.trace(xmlhttp.responseText);
        eval(xmlhttp.responseText)
        debug.info('status:[{0}], message:[{1}]'.format(jsrespose.status,jsrespose.message));
        $mediaProxy.onDisableAllCallback(jsrespose);
        $mediaProxy.onDisableAllCallback=function(){};
    },
    enableAdv : function (id,callback){
        debug.trace('>> mediaProxy.enableAdv');
        $mediaProxy.onEnableCallback=callback;
        request(this.serviceUrl+'?action=enable&guid={0}'.format(id),false,$mediaProxy.onEnable);        
    },   
    onEnable:function (xmlhttp){
        debug.trace('>> mediaProxy.onEnable');        
        //debug.trace(xmlhttp.responseText);
        eval(xmlhttp.responseText)
        debug.info('status:[{0}], message:[{1}]'.format(jsrespose.status,jsrespose.message));
        $mediaProxy.onEnableCallback(jsrespose);
        $mediaProxy.onEnableCallback=function(){};
        
    },
    enableAll:function (callback){
        debug.trace('>> mediaProxy.enableAll');
        $mediaProxy.onEnableAllCallback=callback;
        request(this.serviceUrl+'?action=enableall',false,$mediaProxy.onEnableAll);
    },
    onEnableAll:function (xmlhttp){
        debug.trace('>> mediaProxy.onEnableAll');
        //debug.trace(xmlhttp.responseText);
        eval(xmlhttp.responseText)
        debug.info('status:[{0}], message:[{1}]'.format(jsrespose.status,jsrespose.message));
        $mediaProxy.onEnableAllCallback(jsrespose);
        $mediaProxy.onEnableAllCallback=function(){};
    },
    
    deleteAdv:function(id,callback){
        debug.trace('>> mediaProxy.deleteAdv');
        $mediaProxy.onDeleteAdvCallback=callback;
        request(this.serviceUrl+'?action=delete&guid={0}'.format(id),false,$mediaProxy.onDeleteAdv);        
        
    },
    onDeleteAdv:function(xmlhttp){
        debug.trace('>> mediaProxy.onDeleteAdv');
        //debug.trace(xmlhttp.responseText);
        eval(xmlhttp.responseText)
        debug.info('status:[{0}], message:[{1}]'.format(jsrespose.status,jsrespose.message));
        $mediaProxy.onDeleteAdvCallback(jsrespose);
        $mediaProxy.onDeleteAdvCallback=function(){};

    },    
    deleteAll:function(callback){
        debug.trace('>> mediaProxy.deleteAll');
        $mediaProxy.onDeleteAllCallback=callback;
        request(this.serviceUrl+'?action=deleteall',false,$mediaProxy.onDeleteAll);        
    },
    onDeleteAll:function(xmlhttp){
        debug.trace('>> mediaProxy.onDeleteAdv');
        //debug.trace(xmlhttp.responseText);
        eval(xmlhttp.responseText)
        debug.info('status:[{0}], message:[{1}]'.format(jsrespose.status,jsrespose.message));
        $mediaProxy.onDeleteAllCallback(jsrespose);
        $mediaProxy.onDeleteAllCallback=function(){};
    }
}

var $inviteFacade={
    serviceUrl:'/gonline/users/InviteFacade.ashx',
    load:function(callback){        
        debug.trace('>> inviteFacade.load');
        $inviteFacade.on_loadCompleteCallback=callback;
        request(this.serviceUrl+'?action=load',false,$inviteFacade.on_loadComplete);
    },//method    
    on_loadComplete:function(xmlhttp){
        debug.trace('inviteFacade.onloadComplete');
        if(xmlhttp.responseText.search(/inviteDataTable/i)>=0){
            debug.trace('>> inviteFacade.onloadComplete:evaluate response');
            eval(xmlhttp.responseText);
        }
        
        if(typeof(inviteDataTable)!='undefined'){            
            $inviteFacade.on_loadCompleteCallback(jsHelper.createOK('Data Loaded',inviteDataTable));
        }else{            
            $inviteFacade.on_loadCompleteCallback(jsHelper.createFail('You are not logged in'));
        }        
    },
    invite:function(rescipient,callback){
        debug.trace('>> inviteFacade.load');
        $inviteFacade.on_inviteCompleteCallback=callback;
        var name = encodeURIComponent(rescipient.name);
        var email = encodeURIComponent(rescipient.email);
        request(this.serviceUrl+'?action=invite&name={0}&email={1}'.format(name,email),false,$inviteFacade.on_inviteComplete);
    },//method    
    on_inviteComplete:function(xmlhttp){
        debug.trace('>> inviteFacade.on_inviteComplete');
        if(xmlhttp.responseText.search(/jsrespose/i)>=0){
            debug.trace('>> inviteFacade.on_inviteComplete:evaluate response');
            eval(xmlhttp.responseText);
        }
        if(typeof(jsrespose)!='undefined'){
            $inviteFacade.on_inviteCompleteCallback(jsrespose);
        }else{            
            $inviteFacade.on_inviteCompleteCallback(jsHelper.createFail('You are not logged in'));
        }
    }//method
}//object


var jsHelper={
    create:function(_status,_message,_data){
        return {message:_message,status:_status,errcode:_status,data:_data,isOK:function(){return this.status=='OK';}}
    },
    createOK:function(_message,_data){
        return jsHelper.create('OK',_message,typeof(_data)!='undefined'?_data:'')
    },
    createFail:function(_message,_data){
        return jsHelper.create('FAIL',_message,typeof(_data)!='undefined'?_data:'')
    }
}


function $forms(){
    this.serviceUrl='/gonline/providers/FormsConnector.ashx';
}