// Copyright (c) 2002-2007 Openwave Systems Inc. All rights reserved.
// 
// The copyright to the computer software herein is the property of
// Openwave Systems Inc. The software may be used and/or copied only
// with the written permission of Openwave Systems Inc. or in accordance
// with the terms and conditions stipulated in the agreement/contract
// under which the software has been supplied.
// 
// $Id: //webedge/webedge42-102-171-1/apps/src/webedge/docroot/lcommon/html/includes/common_js.jsp#7 $







// Temporary functions for disabled client side validation


function validateLoginForm(form) { return true; }

function validateMailSettingsBlockingForm(form) { return true; }

function validateComposeForm(form) { return true; }

function validateDestinationForm(form) { return true; }

function validateMailSettingsListExternalForm(form) { return true; }

function validateFamilyMboxForm(form) { return true; }

function validateFilterForm(form) { return true; }

function validateFilterListForm(form) { return true; }

function validateAddEditFolderForm(form) { return true; }

function validateMailSettingsFilterForm(form) { return true; }

function validateMailSettingsForwardingForm(form) { return true; }

function validateMailSettingsJunkMailForm(form) { return true; }

function validateMailSettingsJunkMailCMForm(form) { return true; }

function validateMailSettingsJunkMailCTForm(form) { return true; }

function validateMailSettingsAntivirusCTForm(form) { return true; }

function validateMailSettingsAntivirusForm(form) { return true; }

function validateMailSettingsAliasForm(form) { return true; }

function validateMailSettingsExternalForm(form) { return true; }

function validateMailSettingsPreferencesForm(form) { return true; }

function validateMessageSearchForm(form) { return true; }

function validateMailSettingsSignatureForm(form) { return true; }

function validateMailSettingsVacationForm(form) { return true; }

function validateNotificationForm(form) { return true; }

function validateMailSettingsReturnReceiptForm(form) { return true; }

function validateGeneralSettingsGreetingsForm(form) { return true; }

function validateGeneralSettingsPasswordForm(form) { return true; }

function validateGeneralSettingsPinForm(form) { return true; }

function validateGeneralSettingsTimeZoneForm(form) { return true; }

function validateGeneralSettingsUserLocaleForm(form) { return true; }

function validateMailSettingsSendersControlForm(form) { return true; }

function validateVoicemailSettingsPreferencesForm(form) { return true; }
 
function validateVoicemailSettingsFaxForm(form) { return true; }
 
function validateVoicemailSettingsLanguagesForm(form) { return true; }
 
function validateVoicemailSettingsPhoneNumberForm(form) { return true; }

function validateVoicemailSettingsFmfmForm(form) { return true; }

function validateVoicemailSettingsNewFmfmForm(form) { return true; }



// Displays a hint in the status line.
function hint(s) {
    window.status = (s ? s : '');
    return true;
}

// Move message(s) to folder
// page: specifies if the move operation is started from messagelist page ("list")
//       or from the message page ("msg")
function doMoveTop(page) {
    for (var i=0; i < document.topbar.top_folderid.length; i++) {
        if (document.topbar.top_folderid[i].selected) {
            document.TheForm.destfid.value = 
                document.topbar.top_folderid[i].value;
            i = document.topbar.top_folderid.length;
        }
    }

    document.TheForm.inbox_create_folder.value = 0;
    if(document.TheForm.destfid.value == '') {
        document.TheForm.inbox_create_folder.value = 1;
    }
    if (page == "list") {
        if (isMessageSelected()) {
            document.TheForm.action = '/do/mail/message/move?update=true&ref=list&name=x';
            document.TheForm.submit();
        }
    } else if (page == "search") {
        if (isMessageSelected()) {
            document.TheForm.action = '/do/mail/message/move?update=true&ref=search&name=x';
            document.TheForm.submit();
        }
    } else {
        document.TheForm.action = '/do/mail/message/move?update=true&ref=msg&name=x';
        document.TheForm.submit();
    }
}

function confirmDelete() {
    var page = "";
    var deleteNow = false;

    switch (arguments.length) {
      case 1:
        page = arguments[0];
        break;
      case 2:
        page = arguments[0];
        deleteNow = arguments[1];
        break;
    }

    if (page == "list") {
        if (isMessageSelected()) {
            if (confirm('Voulez-vous vraiment supprimer les messages sélectionnés?') ) {
                doDelete(page, deleteNow);
            }
        }
    } else {
        if (confirm('Voulez-vous vraiment supprimer ce message?') ) {
            doDelete(page, deleteNow);
        }
    }
}

function doDelete() {
    var page = "";
    var deleteNow = false;

    switch (arguments.length) {
      case 1:
        page = arguments[0];
        break;
      case 2:
        page = arguments[0];
        deleteNow = arguments[1];
        break;
    }

    if (page == "list") {
        if (isMessageSelected()) {
            if (deleteNow) {
                document.TheForm.action = '/do/mail/message/delete?update=true&ref=list&deleteNow=true';
            } else {
                document.TheForm.action = '/do/mail/message/delete?update=true&ref=list';
            }
            document.TheForm.submit();
        }
    } else {
        if (deleteNow) {
            document.TheForm.action = '/do/mail/message/delete?update=true&ref=msg&deleteNow=true';
        } else {
            document.TheForm.action = '/do/mail/message/delete?update=true&ref=msg';
        }
        document.TheForm.submit();
    }
}

function confirmForwardAsSpam(page) {
    if (page == "list") {
        if (isMessageSelected()) {
            
            if (confirm('Voulez-vous transférer les messages sélectionnés à un centre de lutte contre les polluriels?') ) {
                doForwardAsSpam(page);
            }
            
        }
    } else {
        
        if (confirm('Voulez-vous transférer ce message à un centre de lutte contre les polluriels?') ) {
            doForwardAsSpam(page); 
        }
        
    }
}

function doForwardAsSpam(page) {
    if (page == "list") {
        if (isMessageSelected()) {
            document.TheForm.action = '/do/mail/message/forwardAsSpam?update=true&ref=list';
            document.TheForm.submit();
        }
    } else {
        document.TheForm.action = '/do/mail/message/forwardAsSpam?update=true&ref=msg';
        document.TheForm.submit();
    }
}

function confirmForwardAsPhishing(page) {
    if (page == "list") {
        if (isMessageSelected()) {
            
            if (confirm('Voulez-vous transférer les messages sélectionnés à un centre de lutte contre l&#039;hameçonnage?') ) {
                doForwardAsPhishing(page);
            }
            
        }
    } else {
        
        if (confirm('Voulez-vous transférer ce message à un centre de lutte contre l&#039;hameçonnage?') ) {
            doForwardAsPhishing(page); 
        }
        
    }
}

function doForwardAsPhishing(page) {
    if (page == "list") {
        if (isMessageSelected()) {
            document.TheForm.action = '/do/mail/message/forwardAsPhishing?update=true&ref=list';
            document.TheForm.submit();
        }
    } else {
        document.TheForm.action = '/do/mail/message/forwardAsPhishing?update=true&ref=msg';
        document.TheForm.submit();
    }
}

function selectAllCheckboxes(form, selection, checkboxname) {
    var length = document.forms[form].elements.length;
    var i = 0;
    if (document.forms[form].elements[selection].checked == false) {
        document.forms[form].elements[selection].checked = false;
        for (i=0; i < length; i++) {
            if (document.forms[form].elements[i].name == checkboxname) {
                document.forms[form].elements[i].checked = false;
            }
        }
    } else {
        document.forms[form].elements[selection].checked = true;
        for (i=0; i < length; i++) {
            if (document.forms[form].elements[i].name == checkboxname) {
                document.forms[form].elements[i].checked = true;
            }
        }
    }
}

function selectAllEnabledCheckboxes(form, selection, checkboxname) {
    var length = document.forms[form].elements.length;
    var i = 0;
    if (document.forms[form].elements[selection].checked == false) {
        document.forms[form].elements[selection].checked = false;
        for (i=0; i < length; i++) {
            if (document.forms[form].elements[i].name == checkboxname) {
                if (document.forms[form].elements[i].disabled == false) {
                    document.forms[form].elements[i].checked = false;
                }
            }
        }
    } else {
        document.forms[form].elements[selection].checked = true;
        for (i=0; i < length; i++) {
            if (document.forms[form].elements[i].name == checkboxname) {
                if (document.forms[form].elements[i].disabled == false) {
                    document.forms[form].elements[i].checked = true;
                }
            }
        }
    }
}

function capitalize(s) {
    initialCap = "";
    rest = "";

    if (s.length > 0) {
        initialCap = s.substr(0, 1).toUpperCase();
    }
    if (s.length > 1) {
        rest = s.substr(1);
    }
    
    return initialCap + rest;
}

// TODO: Remove below functions
function validateData(formObject, validationCommand, errorString) { 
    var equalPosition = validationCommand.search("="); 
    var command  = ""; 
    var commandValue = ""; 
    if(equalPosition >= 0) { 
     command  = validationCommand.substring(0,equalPosition); 
     commandValue = validationCommand.substr(equalPosition+1); 
    } else { 
     command = validationCommand; 
    } 

    switch(command) { 
        case "required": {       
            if (formObject.value.length == 0) { 
                alert(errorString); 
                return false; 
            }
            break;             
        }
        case "greaterthan": { 
            if(formObject.value.length > commandValue) {
                alert(errorString); 
                return false;                 
            }     
            break; 
        }
        case "greaterthanvalue": { 
            if(parseInt(formObject.value) > commandValue) {
                alert(errorString); 
                return false;                 
            }     
            break; 
        }
        case "lessthanvalue": { 
            if(parseInt(formObject.value) < commandValue) {
                alert(errorString); 
                return false;                 
            }     
            break; 
        }
    }
}


// This is a generic function that checks specified fields in a form (using 
// parameters from validationRules defined in each page's javascript.jsp), and
// either displays an error message or submits the form if there are no errors.
// validationRules provides the name of the field, the type of checking to be 
// done or a function name, and the error string.
function verifyAndSubmit(form, validationRules) { 
    for(var object=0; object < validationRules.length; object++) { 
        for (var rule=0; rule < validationRules[object].length; rule++) {
            var valFunction = validationRules[object][rule][1];
            if (typeof valFunction == "function") {
                if (valFunction(form) == false) {
                    return;
                }
            } else {
                if (validateData(document.forms[form].elements[validationRules[object][rule][0]], 
                    validationRules[object][rule][1], 
                    validationRules[object][rule][2]) == false) { 
                    document.forms[form].elements[validationRules[object][rule][0]].focus();
                    return; 
                }
            }
        }
    }
    document.forms[form].submit();
} 

// checks if some checkbox has been selected.
// If not selected then displays a error message and returns false.
function isCheckBoxSelected(form, checkboxName, errorString) {
    var length = document.forms[form].elements.length;
    var isSelected = false;
    for (var i=0; i < length; i++) {
        if (document.forms[form].elements[i].name == checkboxName &&
            document.forms[form].elements[i].checked) {
            isSelected = true;
        }
    }
    if(!isSelected) {
        alert(errorString);
    }
    return isSelected;
}

function validateSendersForm(error) {
    if(isCheckBoxSelected('addressesSendersControlForm', 'senders', error)) {
        document.addressesSendersControlForm.submit();
    }
}

function validateAddressesContactsForm(error) {
    if(isCheckBoxSelected('addressesAddEntriesForm', 'emails', error)) {
        document.addressesAddEntriesForm.submit();
    }
}

function openWin(dlink) {
  window.open(dlink, '_blank', 'toolbar=1,location=0,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=550,height=420,screenX=125,screenY=30,left=125,top=30' );
}


function navigating(elem) {
        if (checkedIds == null || checkedIds == "null") {
            checkedIds = "";
        }
        var idsElem = document.forms["addressesEntriesForm"].ids;
        if (idsElem.length > 0 ) {
            if (idsElem.length == 1 ) {
                if(idsElem.type == "checkbox") {
                    if (idsElem.checked) {
                        if (checkedIds.indexOf(idsElem.value +",") < 0) {
                            checkedIds += idsElem.value +",";
                        }
                    } else if(checkedIds.indexOf(idsElem.value +",") >= 0) {
                                checkedIds = checkedIds.replace(idsElem.value +",", "");
                    }
                }
        }
        else {
            for (i = 0; i < idsElem.length; i++)  {
                if(idsElem[i].type == "checkbox") {
                    if (idsElem[i].checked) {
                        if (checkedIds.indexOf(idsElem[i].value +",") < 0) {
                            checkedIds += idsElem[i].value +",";
                        }
                    } else if(checkedIds.indexOf(idsElem[i].value +",") >= 0) {
                        checkedIds = checkedIds.replace(idsElem[i].value +",", "");
                    }
                }
            }
        }
    }
        var formElemCheckedIds = document.createElement("input");
        formElemCheckedIds.name = "checkedIds";
        formElemCheckedIds.value = checkedIds;
        formElemCheckedIds.type = "hidden";
        document.forms["addressesEntriesForm"].appendChild(formElemCheckedIds);
        document.forms["addressesEntriesForm"].action = elem.href;
        document.forms["addressesEntriesForm"].method = "POST";
        elem.href = "#";
        document.forms["addressesEntriesForm"].submit();
}


function preserveSelectedAddresses() {
    var chkboxs = document.getElementsByName("ids");
    var checkedIdsArr = "";
    if (checkedIds && checkedIds != null && checkedIds != "null" && checkedIds != "") {
        checkedIdsArr = checkedIds.split(",");
    }
    if (checkedIdsArr != "" && checkedIdsArr.length > 0) {
        for (count = 0; count < checkedIdsArr.length; count++) {
            if (checkedIdsArr[count] && checkedIdsArr[count] != "") {
                if (document.getElementById("chkbox" + checkedIdsArr[count])) {
                    document.getElementById("chkbox" + checkedIdsArr[count]).checked = true;
                } else { // when click OK to compose a message, ids are read and passed on to compose page.
                   var chkboxOnOtherPage = document.createElement("input");
                    chkboxOnOtherPage.id = "chkbox" + checkedIdsArr[count];
                    chkboxOnOtherPage.name = "ids";
                    chkboxOnOtherPage.type = "hidden";
                    chkboxOnOtherPage.value = checkedIdsArr[count];
                    document.forms["addressesEntriesForm"].appendChild(chkboxOnOtherPage);
                }
            }
        }
    }

    if (chkboxs) {
        var chkSelAll = true;
        for (count = 0; count < chkboxs.length; count++) {
            if (chkboxs[count].type == 'checkbox' && chkboxs[count].checked == false) {
                chkSelAll = false;
                break;
            }
        }
        if (chkSelAll) {
            document.getElementsByName("selectAll")[0].checked = true;
        }
    }
}

