/***** Functions called from the user control *****/
function showCompanyForm() {
    var step1 = document.getElementById('step_companyinfo');
    var step2 = document.getElementById('step_userinfo');
    var step3 = document.getElementById('step_confirmation');
    step1.className = 'selected';
    step2.innerHTML = '<span>2. ' + Translate("headings.userinformation") + '</span>';
    step2.className = 'new company_step2';
    step3.innerHTML = step3.innerHTML.replace("#","3");
    step3.className = 'new company_step3';
    fillCountryDropDown(document.getElementById("company_country_input"));
    showForm('company');
    checkCountry(document.getElementById("company_country_input"), "company_ssn_input", "validate ssn");    
}

function showUserForm() {
    var step1 = document.getElementById('step_userinfo');
    step1.innerHTML = step1.innerHTML.replace("#","1");
    var step2 = document.getElementById('step_confirmation');
    step1.className = 'selected';
    step2.innerHTML = step2.innerHTML.replace("#","2");
    step2.className = 'new user_step2';
    fillCountryDropDown(document.getElementById("individual_country_input"));
    LoadCaptcha();
    showForm('individual_user');
}

function showEmployeeForm() {
    createEmployeeForm();
}

/*** Used to show the correct form ***/
function showForm(form) {
    var container = document.getElementById("form_container");
    var formContainer = $get(form);
    hideDivs(container, "fieldset");    
    
    formContainer.className = "show user_form";
    container.className = "show";    
}

var employeeFormHtml;

function showEmpForm(form) {
    var container = document.getElementById("new_user_container");
    
    if(container.innerHTML == "")
        container.innerHTML = employeeFormHtml;
    
    document.getElementById("employee_user_title").innerHTML = Translate("headings.new_user");
    var formContainer = document.getElementById(form);
    
    formContainer.className = "show user_form";
    employeeFormHtml = container.innerHTML;
    
    createWindow(employeeFormHtml);
    container.innerHTML = "";    
}

function convertIndividualToCompanyUser() {
    $get("is_company_user").value = "true";
    $get("companyStep1").className = "show_inline button_orange";
    document.getElementById('step_companyinfo').className = 'new';
    document.getElementById('step_userinfo').className = 'selected company_step2';
    hideContainer('company');
    fillCountryDropDown(document.getElementById("individual_country_input"));
    LoadCaptcha();
    showForm('individual_user');
}

/*** Functions used to validate the input ***/
function confirmEmployeeRegistration(isInCheckout) {
    if(isInCheckout == null || isInCheckout == undefined) {
        isInCheckout = false;
    }
    
    if(validateForm("employee_user",Translate("common.missing"),"", Translate("common.incorrect"))) {
        createCompanyUser(isInCheckout);
    }
}

function confirmIndividualRegistration() {
    if(validateForm("individual_user",Translate("common.missing"),"", Translate("common.incorrect"))) {
        createIndividualUser();
    }
}

function confirmIndividualUpdate() {
    if(validateForm("individual_user",Translate("common.missing"),"", Translate("common.incorrect"))) {
        updateIndividualUser();
    }
}

function confirmCompanyRegistration() {
    if(validateForm("company",Translate("common.missing"),"", Translate("common.incorrect"))) {
        convertIndividualToCompanyUser();        
    }
}

function confirmCompanyUpdate() {
    if(validateForm("company",Translate("common.missing"))) {
        updateCompany();        
    }
}

/***** CREATE / EDIT USERS ******/

/* company user */
function createCompanyUser(isInCheckout) {
    
    if(isInCheckout == null || isInCheckout == undefined) {
        isInCheckout = false;
    }
    
    var userId = $get("employee_id_input").value;
    var groupMenu = document.getElementById("employee_group_input");
    var ssn = $get("employee_ssn_input").value;
    var companyId = $get("employee_company_id").value;
    var fullname = $get("employee_name_input").value;
    var email = $get("employee_email_input").value;
    var phone = $get("employee_phone_input").value;
    var division = $get("employee_division_input").value;
    var position = $get("employee_position_input").value;
    var fax = $get("employee_fax_input").value;
    var groupId = groupMenu.value;
    
    if(companyId != "" && companyId != -1) {
        ShowCreateWindow();
        if(!isInCheckout) {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateCompanyUser(userId, companyId, fullname, ssn, email, phone, groupId, fax, division, position, OnCompanyUserCreated);
        } else {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateCompanyUser(userId, companyId, fullname, ssn, email, phone, groupId, fax, division, position, OnCheckoutUserUpdated);
        }
    } else {
        createAlert(Translate("error.notloggedin"));
    }
}

function OnCompanyUserCreated(results) {
    stopUpdateWindow();
    
    if(results != null) {
        deleteBox();
        //Get updated list
        updateUserList();
    }
    else {
        createAlert(Translate("error.user_exists"));
    }
}

/* individual user */
function updateIndividualUser() {
    hideContainer("registration_confirmation");
    //Get values from user form
    var userId = $get("user_id_input").value;
    var countryMenu = $get("individual_country_input");
    var ssn = $get("user_ssn_input").value;
    var fullname = $get("user_name_input").value;
    var phone = $get("user_phone_input").value;
    var address1 = $get("individual_address1_input").value;
    var address2 = $get("individual_address2_input").value;
    var postcode = $get("individual_postcode_input").value;
    var place = $get("individual_place_input").value;
    var country = countryMenu.options[countryMenu.selectedIndex].value;
    var companyId = $get("employee_company_id").value;
    var division = $get("employee_division_input").value;
    var position = $get("employee_position_input").value;
    var fax = $get("employee_fax_input").value;
    
    ShowCreateWindow();
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.UpdateUser(userId, ssn, fullname, phone, address1, address2, postcode, place, country, division, position, fax, OnIndividualUpdated);    
}

function OnIndividualUpdated(results) {
    stopUpdateWindow();
    
    if(results != null) {
        showContainer("registration_confirmation");
        updateLoggedInUser(results.Fullname);
    }
    else {
         createAlert(Translate("error.user_exists"));
    }
}
var userselect ;
/* individual and company */
function createIndividualUser() {
    //Get values from user form
    var isCompanyUser = $get("is_company_user").value;
    var countryMenu = $get("individual_country_input");
    var ssn = $get("individual_ssn_input").value;
    var fullname = $get("individual_name_input").value;
    var email = $get("individual_email_input").value;
    var phone = $get("individual_phone_input").value;
    var address1 = $get("individual_address1_input").value;
    var address2 = $get("individual_address2_input").value;
    var postcode = $get("individual_postcode_input").value;
    var place = $get("individual_place_input").value;
    var country = countryMenu.options[countryMenu.selectedIndex].value;
    var hash = $get("captchahash").value;
    var img = $get("captcha_input").value;
   
    
    if(isCompanyUser == "false") {
        ShowCreateWindow();
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateIndividualUser(ssn, fullname, email, phone, address1, address2, postcode, place, country, hash, img, OnRegistrationSuccess);
        userselect = "user";
    } else {
        var compCountryMenu = $get("company_country_input");
        var compSsn = $get("company_ssn_input").value;
        var compName = $get("company_name_input").value;
        var compSitename = $get("company_sitename_input").value;
        var compEmail = $get("company_email_input").value;
        var compPhone = $get("company_phone_input").value;
        var compAddress1 = $get("company_address1_input").value;
        var compAddress2 = $get("company_address2_input").value;
        var compPostcode = $get("company_postcode_input").value;
        var compPostbox = $get("company_postbox_input").value;
        var compPlace = $get("company_place_input").value;
        var compVat = $get("company_vat_input").value;
        var compFax = $get("company_fax_input").value;
        var compWebsite = $get("company_website_input").value;
        var compDescription = $get("company_description_input").value;
        var compVendorCheck = $get("company_vendor_input");
        var compGovernCheck = $get("company_govern_input");
        var compVendor = (compVendorCheck.checked) ? "1" : "0";
        var compGovern = (compGovernCheck.checked) ? "1" : "0";
        var compCountry = compCountryMenu.options[compCountryMenu.selectedIndex].value;

        userselect = "company";
        ShowCreateWindow();
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateCompany(ssn, fullname, email, phone, address1, address2, postcode, place, country, hash, img, compSsn, compName, compSitename, compEmail, compPhone, compAddress1, compAddress2, compPostcode, compPostbox, compPlace, compVat, compFax, compWebsite, compDescription, compVendor, compGovern, compCountry,1, OnRegistrationSuccess);
    }
}

function OnRegistrationSuccess(results) {
    stopUpdateWindow();
    
    if(results != "")
    {
        createAlert(results.replace("\n","<br/>"));        
    }
    else {
        var hoverContainer = $get("form_container");
        var confirmContainer = $get("registration_confirmation");
        hideDivs(hoverContainer, "fieldset");
        
        var userEmail = $get("individual_email_input").value;
        confirmContainer.innerHTML = confirmContainer.innerHTML.replace("%%email%%",userEmail);
        
        showObject(confirmContainer);
        
        if(userselect == "user"){
            var step_1 = document.getElementById("step_userinfo");
            step_1.className = "new";
            var step_2 = document.getElementById("step_confirmation");
            step_2.className = "selected user_step2";            
        }
        else if(userselect == "company") {
            var step_2 = document.getElementById("step_userinfo");
            step_2.className = "new company_step2";
            var step_3 = document.getElementById("step_confirmation");
            step_3.className = "selected company_step3";  
        }
    }
}


function SaveReportSettings()
{
    ShowCreateWindow();
    var subscribed = false;
    var receiver = '';
    var options = '';
    if(document.getElementById('send').checked)
    {
        subscribed = true;
        
        if(document.getElementById('daily').checked)
        {
            options = document.getElementById('daily').value;
        }
        else if(document.getElementById('weekly').checked)
        {
            options = document.getElementById('weekly').value;
        }
        else if(document.getElementById('monthly').checked)
        {
            options = document.getElementById('monthly').value;
        }
        
        receiver = document.getElementById('receiver').value;
        if(receiver == '')
        {
            receiver = 'johnpaul@ec.is';
        }
    }
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.SaveReportSettings(subscribed, options, receiver, OnSettingsSaved);
    
}

function OnSettingsSaved()
{
    stopUpdateWindow();
    createAlert(Translate("updates.updatesuccess"));
}
