var Account = {
    currentlyOn: 'false',
    
    
    // Change call forward and close the popup
    changeCallForwardAndClose: function() {
    	Account.changeCallForward();
    	close_popup('popup_call_forward');
    },
    
    // Change callback and close the popup
    executeCallbackModificationAndClose: function() {
		Account.executeCallbackModification(); 
		close_popup('popup_auto_callback');
    },
    
    executeCallbackModification: function() {
        post_body = '';
        var opt = {
            // Use POST
            method: 'post',
            // Send this lovely data
            postBody: post_body,
            asynchronous: false,
            // Handle successful response
            onSuccess: function (t) {
                var callbackStatus_data = ('(' + t.responseText + ')').evalJSON();
                if (callbackStatus_data.result == 'ok') {
                    Account.modifyCallbackStatus(callbackStatus_data.newstatus);
                } else {
                    switch (callbackStatus_data.error_type)
                    {
                    case "sql" :
                        display_error_window(trad_error + callbackStatus_data.error_no, trad_error_title_unknow);
                        break;
                    case "not_connect" :
                        display_error_window(trad_error_not_connect, trad_error_title_connection);
                        break;
                    case "not_found" :
                        display_error_window(trad_error_not_found, trad_error_title_contact_notfound);
                        break;
                    default :
                        display_error_window(trad_error + callbackStatus_data.error_no, trad_error_title_unknow);
                    }
                }
            },
            // Handle 404
            on404: function (t) {
                display_error_window(trad_error_function, trad_error_title_server);
            },
            // Handle other errors
            onFailure: function (t) {
                display_error_window(trad_error_function, trad_error_title_server);
            }
        };
        var tmp = new Ajax.Request('/account/ajaxCallbackChange/', opt);
    },

    // Inject the HTML code inside "autocallbackAjax" element   
    modifyCallbackStatus: function(newStatus) {
        var status = document.getElementById('autocallbackAjax');
        var statusHTML = (newStatus == '1') ? '<span class="on">ON</span>' : '<span class="off">OFF</span>';
        
        status.innerHTML = statusHTML;
        
        return true;
    },
    
    changeCallForward: function()
    {
        post_body = '';
        var opt = {
            // Use POST
            method: 'post',
            // Send this lovely data
            postBody: post_body,
            asynchronous: false,
            // Handle successful response
            onSuccess: function (t) {
                var callforwardStatus_data = ('(' + t.responseText + ')').evalJSON();
                if (callforwardStatus_data.result == 'ok') {
                   // Enable phone change too ;-) (in case there wasn't any phone)
                   if( callforwardStatus_data.phoneNumber!='' ) {
                       FORWARD_NUMBER = callforwardStatus_data.phoneNumber;
                    }

                    Account.modifyCallforwardStatus(callforwardStatus_data.newstatus);
                } else {
                    switch (callforwardStatus_data.error_type)
                    {
                    case "sql" :
                        display_error_window(trad_error + callforwardStatus_data.error_no, trad_error_title_unknow);
                        break;
                    case "not_connect" :
                        display_error_window(trad_error_not_connect, trad_error_title_connection);
                        break;
                    case "not_found" :
                        display_error_window(trad_error_not_found, trad_error_title_contact_notfound);
                        break;
                    default :
                        display_error_window(trad_error + callforwardStatus_data.error_no, trad_error_title_unknow);
                    }
                }
            },
            // Handle 404
            on404: function (t) {
                display_error_window(trad_error_function, trad_error_title_server);
            },
            // Handle other errors
            onFailure: function (t) {
                display_error_window(trad_error_function, trad_error_title_server);
            }
        };
        var tmp = new Ajax.Request('/account/ajaxCallForwardChange/', opt);
    },
    
    // inject the HTML code inside "forwardcallAjax" element
    modifyCallforwardStatus: function(newStatus) 
    {
        var callLink  = document.getElementById('forwardcallAjax');
        var forwardLabel = document.getElementById('phoneForward');
        var forwardNumber = document.getElementById('forwardNumber');
        var statusHTML = (newStatus == '1') ? '<span class="on">ON</span>' : '<span class="off">OFF</span>';        

        callLink.innerHTML = statusHTML;
        
        if (newStatus == '1') {
            forwardNumber.innerHTML = FORWARD_NUMBER;

            forwardLabel.style.display = 'block';
            forwardLabel.style.visibility = 'visible';           
        } else {
            forwardLabel.style.display = 'none';
            forwardLabel.style.visibility = 'hidden';
        }
        
        return true;
    },
    
    modifyForwardNumber: function(newNumber)
    {
        post_body = 'numberUid=' + newNumber;
        
        var opt = {
            // Use POST
            method: 'post',
            // Send this lovely data
            postBody: post_body,
            asynchronous: false,
            // Handle successful response
            onSuccess: function (t) {
                var callforwardNumber_data = ('(' + t.responseText + ')').evalJSON();
                if (callforwardNumber_data.result == 'ok') {
                    Account.modifycallforwardLabel(callforwardNumber_data.newstatus);
                } else {
                    switch (callforwardNumber_data.error_type)
                    {
                    case "sql" :
                    case "nouid":
                    case "nophone":
                        display_error_window(trad_error + callforwardNumber_data.error_no, trad_error_title_unknow);
                        break;
                    case "not_connect" :
                        display_error_window(trad_error_not_connect, trad_error_title_connection);
                        break;
                    case "not_found" :
                        display_error_window(trad_error_not_found, trad_error_title_contact_notfound);
                        break;
                    default :
                        display_error_window(trad_error + callforwardNumber_data.error_no, trad_error_title_unknow);
                    }
                }
            },
            // Handle 404
            on404: function (t) {
                display_error_window(trad_error_function, trad_error_title_server);
            },
            // Handle other errors
            onFailure: function (t) {
                display_error_window(trad_error_function, trad_error_title_server);
            }
        };
        var tmp = new Ajax.Request('/account/ajaxCallForwardModify/', opt);
    },
    
    modifycallforwardLabel: function(number)
    {        
        //var forwardLabel = document.getElementById('phoneForward');
        //forwardLabel.style.display = 'block';
        //forwardLabel.style.visibility = 'visible';
        var e = $('forwardLabel');
        new Effect.Appear(e, {duration: 0.5});
        var forwardNumber = document.getElementById('forwardNumber');
        forwardNumber.innerHTML = '<a href="/directory/callmebutton/button/" title="Modify forward number">' + number + '</a>';
        
        return true;
    },
    
    showSelectBox: function()
    {
        if (Account.currentlyOn == 'true') {
            Account.currentlyOn = 'false';
        } else {
            Account.currentlyOn = 'true';
        }
    }
}