
Type.registerNamespace("Insp");
Type.registerNamespace("Insp.UI");


Insp.UI.ClientPop3EmailChecker = function(element)
{      
    Insp.UI.ClientPop3EmailChecker.initializeBase(this,[element]);
    
    this._callBackSuccessDelegate = null;
    this._callBackFailureDelegate = null;
    this._moduleClientID = null;
    this._server = "";
    this._port = "";
    this._requireSSL = "";
    this._mailCount = "";
    this._customized = "";
    this._serverConnectionTimeOut = "";
    this._orderID = "";
    this._username = "";
    this._password = "";
}

Insp.UI.ClientPop3EmailChecker.prototype = {

    get_moduleClientID: function(){return this._moduleClientID;},
    set_moduleClientID: function(value){this._moduleClientID = value;this.raisePropertyChanged('moduleClientID');},
    
    get_server: function(){return this._server;},
    set_server: function(value){this._server = value;this.raisePropertyChanged('server');},
    
    get_username: function(){return this._username;},
    set_username: function(value){this._username = value;this.raisePropertyChanged('username');},
    
    get_password: function(){return this._password;},
    set_password: function(value){this._password = value;this.raisePropertyChanged('password');},
    
    get_server: function(){return this._server;},
    set_server: function(value){this._server = value;this.raisePropertyChanged('server');},
    
    get_port: function(){return this._port;},
    set_port: function(value){this._port = value;this.raisePropertyChanged('port');},
    
    get_requireSSL: function(){return this._requireSSL;},
    set_requireSSL: function(value){this._requireSSL = value;this.raisePropertyChanged('requireSSL');},
    
    get_mailCount: function(){return this._mailCount;},
    set_mailCount: function(value){this._mailCount = value;this.raisePropertyChanged('mailCount');},
    
    get_customized: function(){return this._customized;},
    set_customized: function(value){this._customized = value;this.raisePropertyChanged('customized');},
    
    get_serverConnectionTimeOut: function(){return this._serverConnectionTimeOut;},
    set_serverConnectionTimeOut: function(value){this._serverConnectionTimeOut = value;this.raisePropertyChanged('serverConnectionTimeOut');},
   
    get_orderID: function(){return this._orderID;},
    set_orderID: function(value){this._orderID = value;this.raisePropertyChanged('orderID');},
    
    initialize: function()
    {
        Insp.UI.ClientPop3EmailChecker.callBaseMethod(this,'initialize');
       
                        
         this.get_element().innerHTML = "<div id='pnlContent'>"+
                                            "<div id='POP3Label' class='pop3label'>"+
                                                "<span>"+strClientPop3EmailChecker_SeeMails+"</span>"+
                                            "</div>"+
                                            "<div id='NoMails' class='pop3label'>"+
                                                "<span>"+strClientPop3EmailChecker_NoMails+"</span>"+
                                            "</div>"+
                                            "<div id='pnlErrorMessage' class='errorLabel'>"+
                                                "<span id='lblMessage'></span>"+
                                            "</div>"+
                                            "<div id='POP3EditLabel' class='editLabel'>"+
                                                "<span>"+strClientPop3EmailChecker_Edit+"</span>"+
                                            "</div>"+
                                            "<div id=mailsTable class='mailsList'>"+
                                                "<table id='messagelst' cellspacing='0' cellpadding='3' border='0' style='width: 100%; border-collapse: collapse;'>"+
                                                "<tbody>"+
                                                    "<tr>"+
                                                        "<th class='cellTH_From' align='left' scope='col'>"+strClientPop3EmailChecker_From+"</th>"+
                                                        "<th class='cellTH_Recieved' align='left' scope='col'>"+strClientPop3EmailChecker_Date+"</th>"+
                                                    "</tr>"+
                                                "</tbody>"+
                                                "</table>"+
                                            "</div>"+
                                            "<a target='_blank' href='http://webmail.windstream.net/' class='readMail' id='ReadYourMailLabel'>"+strClientPop3EmailChecker_ReadMails+"<br/></a>"+
                                        "</div>";
         
         if  (this._callBackSuccessDelegate === null) {
                this._callBackSuccessDelegate = Function.createDelegate(this, this.callBackSuccessHandler);
         }
         if (this._callBackFailureDelegate === null) {
                this._callBackFailureDelegate = Function.createDelegate(this, this.callBackFailureHandler);
         }
            $get('NoMails',this.get_element()).style.display = 'none';
            $get('POP3Label',this.get_element()).style.display = 'none';
            //$get('POP3SignLabel').style.display = 'none';
            $get('POP3EditLabel',this.get_element()).style.display = 'none';
            $get('pnlErrorMessage',this.get_element()).style.display = 'none';
            $get('mailsTable',this.get_element()).style.display = 'none';
            $get('ReadYourMailLabel',this.get_element()).style.display = 'none';
    
         var user = this.get_username();
         var pwd =  this.get_password();      
         
         if(user==null || pwd == null || user=="" || pwd =="")
         {
            $get('NoMails',this.get_element()).style.display = 'none';
            $get('POP3Label',this.get_element()).style.display = 'block';
            //$get('POP3SignLabel').style.display = 'none';
            $get('POP3EditLabel',this.get_element()).style.display = 'block';
            $get('pnlErrorMessage',this.get_element()).style.display = 'none';
            $get('mailsTable',this.get_element()).style.display = 'none';
            $get('ReadYourMailLabel',this.get_element()).style.display = 'none';
         }
         else
            this.getMails(user,pwd);      
            
    },
 
    getMails:function(username,password)
    { 
        var server = this.get_server();
        var port = this.get_port();
        var reqSSL = this.get_requireSSL();
        var noOfMails = this.get_mailCount();
        var timeout = this.get_serverConnectionTimeOut();
        var forceRetrieve = true;
        var canDelay = false;
        Portal.ClientPop3EmailCheckerSvc.RetrieveMails(server,port,reqSSL,noOfMails,timeout,username,password,forceRetrieve,canDelay,this._callBackSuccessDelegate,this._callBackFailureDelegate);
    },
    
    callBackSuccessHandler: function(results)
    {   
        var tempResultArray = results;
        if(tempResultArray.length == 0)
        {
            $get('POP3Label',this.get_element()).style.display = 'none';
            //$get('POP3SignLabel').style.display = 'none';
            $get('POP3EditLabel',this.get_element()).style.display = 'none';
            $get('pnlErrorMessage',this.get_element()).style.display = 'none';
            $get('mailsTable',this.get_element()).style.display = 'none';
            $get('ReadYourMailLabel',this.get_element()).style.display = 'none'; 
            $get('NoMails',this.get_element()).style.display = 'block';          
        }
        else
        {
            if(tempResultArray[0].serverStatus == "Connected")
            {
                $get('NoMails',this.get_element()).style.display = 'none';
                $get('POP3Label',this.get_element()).style.display = 'none';
                //$get('POP3SignLabel').style.display = 'none';
                $get('POP3EditLabel',this.get_element()).style.display = 'none';
                $get('pnlErrorMessage',this.get_element()).style.display = 'none';
                $get('mailsTable',this.get_element()).style.display = 'block';
                $get('ReadYourMailLabel',this.get_element()).style.display = 'block';
                for(i=0;i<tempResultArray.length;i++)
                {   
                      this.addNewRow(tempResultArray[i]);  
                }
            }
            else
            {
                $get('NoMails',this.get_element()).style.display = 'none';
                $get('POP3Label',this.get_element()).style.display = 'block';
                //$get('POP3SignLabel').style.display = 'none';
                $get('pnlErrorMessage',this.get_element()).style.display = 'block';
                $get('POP3EditLabel',this.get_element()).style.display = 'none';
               
                $get('mailsTable',this.get_element()).style.display = 'none';
                $get('ReadYourMailLabel',this.get_element()).style.display = 'none';
                 
                var errorMsg = strClientPop3EmailChecker_ErrMsg;
                $get('lblMessage',this.get_element()).style.textAlign = "center";
                $get('lblMessage',this.get_element()).innerHTML=errorMsg;
                        
                
                this.get_module().set_showEditPart(true);
            }
        }
    },
    
    callBackFailureHandler: function(failureresult)
    {
            $get('NoMails',this.get_element()).style.display = 'none';
            $get('POP3Label',this.get_element()).style.display = 'block';
            //$get('POP3SignLabel').style.display = 'none';
            $get('POP3EditLabel',this.get_element()).style.display = 'none';
            $get('pnlErrorMessage',this.get_element()).style.display = 'block';
            $get('mailsTable',this.get_element()).style.display = 'none';
            $get('ReadYourMailLabel',this.get_element()).style.display = 'none';
            
           var errorMsg = strClientPop3EmailChecker_ErrMsg;
           $get('lblMessage',this.get_element()).style.textAlign = "center";
           $get('lblMessage',this.get_element()).innerHTML=errorMsg;
           $get('POP3EditLabel',this.get_element()).style.display = 'block';
           this.get_module().set_showEditPart(true);
    },
        
    addNewRow:function(row)
    {
        var myTable = $get('messagelst',this.get_element());
        var tBody = myTable.getElementsByTagName('tbody')[0];
        var newTR = document.createElement('tr');
        newTR.className = 'ptmodRowPadding';
        var newTD1 = document.createElement('td');
        var newTD2 = document.createElement('td');
        
        newTD1.className = 'ptmodRowPadding';
        newTD1.valign = "top";
        newTD1.innerHTML = "<div id='messagelstPanel1' class='tdcell'>"+
                                "<span id='messagelstLblFrom' class='emailSender'>"
                                    + row.fromName + 
                                "</span>"+
                                "<br/>"+
                                "<span id='messagelstLblSubject' class='emailSubject'>"
                                    + row.subject +
                                "</span>"+
                                "<br/>"+
                            "</div>";
        
        newTD2.className = 'ptmodRowPadding';
        newTD2.valign = "top";
        newTD2.innerHTML = "<div id='messagelstPanel3' class='tdcell'>"+
                                "<span id='messagelstLblDate'>"
                                    + row.date +
                                "</span>"+
                                "<br/>"+
                                "<span id='messagelstLblTime' class='cellTD_Time'>"
                                    + row.time +
                                "</span>"+
                            "</div>";
        
        newTR.appendChild (newTD1);
        newTR.appendChild (newTD2);
        tBody.appendChild(newTR);
    },
    
    dispose: function()
    {
        Insp.UI.ClientPop3EmailChecker.callBaseMethod(this,'dispose');
    }
      
}

Insp.UI.ClientPop3EmailChecker.registerClass('Insp.UI.ClientPop3EmailChecker',Insp.UI.ModuleContentCtl,Sys.IContainer);

Insp.UI.ClientPop3EmailCheckerParmsEdit = function(element)
{
    Insp.UI.ClientPop3EmailCheckerParmsEdit.initializeBase(this,[element]);
    
    this._username = "";
    this._password = "";
    this._moduleClientID = null;
    this._signCallbackDelegate = null;
    this._saveClickDelegate = null;
    this._cancelClickDelegate = null;
    this._saveCallbackSuccessDelegate = null;
    this._saveCallbackFailureDelegate = null;        
}

Insp.UI.ClientPop3EmailCheckerParmsEdit.prototype = {

    get_username: function(){ return this._username;},
    set_username: function(value){ this._username = value;this.raisePropertyChanged('username');},
    
    get_password: function(){ return this._password;},
    set_password: function(value){ this._password = value;this.raisePropertyChanged('password');},
    
    get_saveBtnID: function(){return this._saveBtnID;},
    set_saveBtnID: function(value){this._saveBtnID = value;this.raisePropertyChanged('saveBtnID');},

    get_cancelBtnID: function(){return this._cancelBtnID;},
    set_cancelBtnID: function(value){this._cancelBtnID = value;this.raisePropertyChanged('cancelBtnID');},

    get_updatePanelID: function(){return this._updatePanelID;},
    set_updatePanelID: function(value){this._updatePanelID = value;this.raisePropertyChanged('updatePanelID');},

    get_moduleClientID: function(){return this._moduleClientID;},
    set_moduleClientID: function(value){this._moduleClientID = value;this.raisePropertyChanged('moduleClientID');},
    
    /*ValidateTitle: function() 
    {    
        var titleTextBox =  $get('txtToDoListTitle',this.get_element());
        var currentTitle = this.get_title();
        var titletext = titleTextBox.value;
        if((titletext.trim().length == 0))
        {
                $get('lblToDoEditErrorMessage',this.get_element()).innerHTML="";
                $get('lblToDoEditErrorMessage',this.get_element()).style.display="none";
                titleTextBox.value = currentTitle;
                return false;
        }
        return true;      
    },*/
    
    
    dispose: function()
    {
        $removeHandler($get('BtnCancel',this.get_element()),'click',this._cancelClickDelegate);
        $removeHandler($get('BtnSave',this.get_element()),'click',this._saveClickDelegate);
    },
    
    initialize: function()
    {
        Insp.UI.ClientPop3EmailCheckerParmsEdit.callBaseMethod(this,'initialize');
        
        if (this._signCallbackDelegate === null) {
            this._signCallbackDelegate = Function.createDelegate(this, this._signCallbackHandler);
        }
        this._signCallbackHandler();
        
        if (this._cancelClickDelegate === null) {
            this._cancelClickDelegate = Function.createDelegate(this, this._cancelClickHandler);
        }
        $addHandler($get('BtnCancel',this.get_element()),'click',this._cancelClickDelegate);
        
        if (this._saveClickDelegate === null) {
            this._saveClickDelegate = Function.createDelegate(this, this._saveClickHandler);
        }
        $addHandler($get('BtnSave',this.get_element()),'click',this._saveClickDelegate);
        
        if (this._saveCallbackSuccessDelegate === null) {
            this._saveCallbackSuccessDelegate = Function.createDelegate(this, this._saveCallbackSuccessHandler);
        }
        
        if (this._saveCallbackFailureDelegate === null) {
            this._saveCallbackFailureDelegate = Function.createDelegate(this, this._saveCallbackFailureHandler);
        }
        
        //Handle Enter Key
        this.add_enterPressed(this._saveClickDelegate);
    },    
    
    updated: function()
    {
        Insp.UI.ClientPop3EmailCheckerParmsEdit.callBaseMethod(this,'updated');
    },
    
    _cancelClickHandler: function(eventObj)
    {
        this.get_module().set_showEditPart(false);
        this._initValues();
    },
    
    _initValues : function()
    {
        $get("txtUserName",this.get_element()).value = this.get_username();
        $get("txtPassword",this.get_element()).value = "";
        
    },
    
    _signCallbackHandler : function()
    {
        $get("txtUserName",this.get_element()).value = this.get_username();
        
    },
   
    _saveClickHandler: function(eventObj)
    {
        //var pop3mail= new Insp.UI.ClientPop3EmailChecker();
        var user = $get("txtUserName",this.get_element()).value; 
        var pwd =  $get("txtPassword",this.get_element()).value; 
        if(user=="")
           user = this.get_username();
        Portal.ClientPop3EmailCheckerSvc.saveUser(user,pwd,this.get_moduleClientID(),this._saveCallbackSuccessDelegate,this._saveCallbackFailureDelegate);
           
    },
    
     _saveCallbackSuccessHandler: function(result)
    {
        if(result == "success")
        {
            if(this.get_module())
            {
                this.get_module().refreshModule();
                this.get_module().set_showEditPart(false);
            }
        }
            
    },
    
    _saveCallbackFailureHandler: function()
    {
         
    }
}

Insp.UI.ClientPop3EmailCheckerParmsEdit.registerClass('Insp.UI.ClientPop3EmailCheckerParmsEdit',Insp.UI.ModuleEditCtl);
if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();

