﻿/* UPDATES THE USERLIST */
function updateUserList() {
    FilterViewRefresh('user_table');
}

//Used to temporarily store the object IDs of the selected user
var temporaryUserGuid;
var temporaryUserAction;

/*** ENABLE / DISABLE USERS ***/

function toggleUser(link, guid) {
    var linkObj = document.getElementById(link);
    var span = document.getElementById(guid).parentNode;
    
    temporaryUserAction = link;
    temporaryUserGuid = guid;
    
    if(linkObj.className.indexOf("enable") > -1) {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.ToggleUser(guid, OnDisableUser);
    } else if(linkObj.className.indexOf("disable") > -1) {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.ToggleUser(guid, OnEnableUser);
    }    
}

function OnDisableUser(results) {
    if(results.length == 0) {
        var guid = temporaryUserGuid;
        var link = temporaryUserAction;
        
        var linkObj = document.getElementById(link);
        var span = document.getElementById(guid).parentNode;
        
        var enableText = Translate("groups.enable_group");
        linkObj.className = "actions_icon icon_disable";
        linkObj.innerHTML = "<span>" + enableText + "</span>";
        linkObj.setAttribute("title",enableText);
        
        disableRow(span.parentNode);
        
    } else {
        createAlert(results);
    }
    
    temporaryUserAction = null;
    temporaryUserGuid = null;
}

function OnEnableUser(results) {
    if(results.length == 0) {
        var guid = temporaryUserGuid;
        var link = temporaryUserAction;
        
        var linkObj = document.getElementById(link);
        var span = document.getElementById(guid).parentNode;
        
        var disableText = Translate("groups.disable_group");
        linkObj.className = "actions_icon icon_enable";
        linkObj.innerHTML = "<span>" + disableText + "</span>";
        linkObj.setAttribute("title",disableText);
        
        enableRow(span.parentNode);
        
    } else {
        createAlert(results);
    }
    
    temporaryUserAction = null;
    temporaryUserGuid = null;
}

function toggleInvitedUser(link, guid) {
    var company = document.getElementById("default_company").value;
    
    var linkObj = document.getElementById(link);
    var span = document.getElementById(guid).parentNode;
    
    if(linkObj.className.indexOf("disable") > -1) {
        var enableText = Translate("groups.enable_group");
        linkObj.className = "actions_icon icon_enable";
        linkObj.innerHTML = "<span>" + enableText + "</span>";
        linkObj.setAttribute("title",enableText);
        disableRow(span.parentNode);
    } else if(linkObj.className.indexOf("enable") > -1) {
        var disableText = Translate("groups.disable_group");
        linkObj.className = "actions_icon icon_disable";
        linkObj.innerHTML = "<span>" + disableText + "</span>";
        linkObj.setAttribute("title",disableText);
        enableRow(span.parentNode);
    }
    
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.ToggleInvitedUser(guid, company, OnToggleInvitedUser);
}

function OnToggleInvitedUser() {
    
}

/*** Create user form ***/
function generateEmployeeForm(results, heading, prefix, numOfColumns, breakPoint, showGroups) {
    
    var groupId = "";
    var companyId = "";
    
    if(showGroups) {
        groupId = (results != null && results.GroupId > 0) ? results.GroupId : $get("default_group").value;
        companyId = (results != null && results.CompanyId > 0) ? results.CompanyId : $get("default_company").value;
    }
    
    var hasBroken = false;
    var start = 0;
       
    if(prefix == null) {
        prefix = "employee";
    }
    
    if(results != null) {
        valueArray = new Array(results.Fullname, results.SSN, results.Email, results.Phone, results.GroupId, results.Division, results.Position, results.Fax, results.CompanyId, results.Id);
    }
    else {
        valueArray = new Array("","","","",groupId,"","","",companyId,"-1");
    }
    
    var headingContent = (heading != null && heading.length > 0) ? heading : Translate("headings.new_user");
    
    var fieldsetContainer = generateCommonElement("fieldset","user_form","user",prefix);
    var headingContainer = generateCommonElement("h2","","employee_user_title");
    headingContainer.innerHTML = headingContent;
    fieldsetContainer.appendChild(headingContainer);
    
    var divArray = new Array("clear","clear","clear","clear","clear","clear","clear","clear");
    var inputArray = new Array("name_input","ssn_input","email_input","phone_input","group_input","division_input","position_input","fax_input","company_id","id_input");

    var groupType = (showGroups) ? "select" : "hidden";

    var typeArray = new Array("text","text","text","text",groupType,"text","text","text","hidden","hidden");
    var classArray = new Array("validate","optional ssn","validate email","validate","validate","","","","","");
    var maxLengthArray = new Array("40","10","120","20","","40","40","20","","");
    var headingArray = new Array(Translate("common.name"),Translate("common.ssn"), Translate("common.email"), Translate("common.phone_mobile"), Translate("common.group"), Translate("common.division"), Translate("common.position"), Translate("common.fax"),"","");

    for(var j = 0; j < numOfColumns; j++) {
        var columnContainer = generateCommonElement("div","columns");
        
        for(var i = start; i < inputArray.length; i++) {
            
            if(i == breakPoint && !hasBroken) {
                hasBroken = true;
                start = breakPoint;
                break;
            }            
                
            var container = generateCommonElement("div",divArray[i]);
            
            if(typeArray[i] != "hidden") {
                var mandatory = (classArray[i].indexOf("validate") > -1) ? " *" : "";
                var label = generateCommonLabel(prefix + "_" + inputArray[i], headingArray[i], mandatory);
                container.appendChild(label);                
            }
            
            var input;
            var div;
            
            if(inputArray[i] == "group_input" && showGroups) {
                input = document.createElement("select");
                input.setAttribute("id",prefix + "_" + inputArray[i]);
                input.className = "empty";
            } else {
                input = generateCommonElement("input", classArray[i], inputArray[i], prefix, typeArray[i], valueArray[i], maxLengthArray[i]);
            }
            
            container.appendChild(input);
            
            columnContainer.appendChild(container);
            
            if(inputArray[i] == "group_input" && showGroups) {
                fillGroupDropDown(input, -1, groupId, false);
            }
        }
        
        fieldsetContainer.appendChild(columnContainer);
    }
    return fieldsetContainer;
}



function createEmployeeForm(user, heading) {
    
    var html = '<div id="new_employee"></div><div class="clear">';
    html += '<a href="javascript:confirmEmployeeRegistration()" class="button_green"><span>' + Translate("forms.save") + '</span></a>';
    html += '<a href="javascript:deleteBox()" class="button_red"><span>' + Translate("forms.cancel") + '</span></a></div>';
        
    createBox(html);
    var formContainer = generateEmployeeForm(user, heading, "employee", 2, 4, true);    
    document.getElementById("new_employee").appendChild(formContainer);
}

/*** EDIT USER ***/

function editUser(guid, getFullUser) {
    if(getFullUser == null)
        getFullUser = false;
    
    if(getFullUser) {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetUser(guid, OnGetUserDetails);
    } else {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetUser(guid, OnGetCompanyUserDetails);
    }
}

function OnGetCompanyUserDetails(results) {
    if(results != null) {
        createEmployeeForm(results, Translate("headings.update_user"));
                
        document.getElementById("employee_name_input").focus();
    }
    else {
        deleteWindow();
        createAlert("User was not found");
    }
}

function OnGetUserDetails(results) {
    if(results != null) {
        var isCompanyUser = (results.UserType > 1) ? true : false;
        var countryMenu = $get("individual_country_input");
        $get("user_id_input").value = (results.Id != null) ? results.Id : "";
        $get("user_ssn_input").value = (results.SSN != null) ? results.SSN : "";
        $get("user_name_input").value = (results.Fullname != null) ? results.Fullname : "";
        $get("user_phone_input").value = (results.Phone != null) ? results.Phone : "";        
        $get("default_group").value = (results.GroupId != null) ? results.GroupId : "";
        
        if(isCompanyUser) {
            $get("employee_company_id").value = (results.CompanyId != null) ? results.CompanyId : "";
            $get("employee_division_input").value = (results.Division != null) ? results.Division : "";
            $get("employee_position_input").value = (results.Position != null) ? results.Position : "";
            $get("employee_fax_input").value = (results.Fax != null) ? results.Fax : "";
            
            fillValue(results.CompanyId, "company", "employee_company_input");
            fillValue(results.GroupId, "group", "employee_group_input");
            
            var formContainer = document.getElementById("individual_user");
            var labels = formContainer.getElementsByTagName("label");
            
            for(var i = 0; i < labels.length; i++) {
                var currLabel = labels[i];
                var labelFor = currLabel.getAttribute("for");
                
                if(labelFor == null) {
                    labelFor = currLabel.htmlFor;
                }
                
                if(labelFor != null) {
                    if(labelFor.indexOf("individual_") > -1) {
                        currLabel.innerHTML = currLabel.innerHTML.replace(" *","");
                        
                        var currInput = document.getElementById(labelFor);                    
                        currInput.className = "";
                    }
                }
            }
            
            showContainer("employee_column");
        }
        
        var defaultCountry = "";
        
        if(results.Address != null) {
            $get("individual_address1_input").value = results.Address.Address1;
            $get("individual_address2_input").value = results.Address.Address2;
            $get("individual_postcode_input").value = results.Address.PostalCode;
            $get("individual_place_input").value = results.Address.Place;
            defaultCountry = results.Address.Country;
        }
        
        fillCountryDropDown(countryMenu, defaultCountry);
    }
    else {
        deleteWindow();
        createAlert("User was not found");
    }
}

/*** DELETE USER ***/

function deleteUser(guid) {
     var html = '<p>' + Translate("groups.confirm_deleteuser") + '</p>' + 
    '<a class="button_green" href="javascript:confirmDeleteUser(\'' + guid + '\')"><span>' + Translate("forms.ok") + '</span></a> <span class="hide">|</span> <a class="button_red" href="javascript:deleteAlert()"><span>' + Translate("forms.cancel") + '</span></a>';
     createAlert(html);
}

function confirmDeleteUser(guid) {
    deleteAlert();
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.DeleteUser(guid, OnUserDeleted);
}

function OnUserDeleted(results) {
    if(results.length == 0) {
        updateUserList();
    } 
    else {
        createAlert(results);
    }
}

function deleteInvitedUser(guid) {
    var company = document.getElementById("employee_company_id").value;
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.DeleteInvitedUser(guid, company, OnDeleteInvitedUser);
}

function OnDeleteInvitedUser(results) {
    if(!results) {
        createAlert("Error");
    } else {
        updateUserList();
    }
}

/*** RESET PASSWORD ***/

function resetPassword(guid) {
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.ResetPassword(guid, OnPasswordReset);
}    

function OnPasswordReset(results) {
    if(results != null) {
        createAlert(Translate("users.reset_password_confirm"));
    }
}

/*** MULTIUSER ACTIONS ***/

//Used to pass the user list to SelectGroupValue function
var temporaryUserArray;

function multibleUserAction(selectMenu) {
    var selectedAction = selectMenu.options[selectMenu.selectedIndex].value;
    var companyId = document.getElementById("default_company").value;
    
    //Get selected users
    var container = document.getElementById("table_user_table");
    var inputs = document.getElementsByTagName("input");
    var selectedUsers = new Array();
    var arrayCount = 0;
    
    for(var i = 0; i < inputs.length; i++) {
        var currInput = inputs[i];
        var currType = currInput.getAttribute("type");
        var currId = currInput.getAttribute("id");
        var isChecked = currInput.checked;
        
        if(currType == "checkbox" && currId.indexOf("checkbox_") > -1 && isChecked) {
            selectedUsers[arrayCount] = currInput.getAttribute("id");
            arrayCount++;            
        }
    }
    
    if(selectedUsers.length > 0) {
        if(selectedAction == "move_users") {
            temporaryUserArray = selectedUsers;
            getMoveToGroup();        
        } else if(selectedAction == "disable_users") {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.DisableUsers(selectedUsers, companyId, OnUpdateUsers);
        } else if(selectedAction == "enable_users") {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.EnableUsers(selectedUsers, companyId, OnUpdateUsers);
        } else if(selectedAction == "delete_users") {
            if(confirm("Are you sure you want to delete all these users?")) {
                ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.DeleteUsers(selectedUsers, companyId, OnUpdateUsers);
            }
        }
    } else {
        createAlert(Translate("error.no_users_selected"));
    }
    
    //Reset menu
    selectMenu.selectedIndex = 0;
}

function getMoveToGroup() {
    var divContainer = document.createElement("div");
    
    var columnContainer = generateCommonElement("div","column user_form");
    var div = generateCommonElement("div");
    var label = generateCommonLabel("move_group_id",Translate("common.group"));
    var heading = generateCommonElement("h2");
    heading.innerHTML = Translate("users.movetonewgroup");    

    var selectMenu = document.createElement("select");
    selectMenu.setAttribute("id","move_group_id");
    var groupMenu = document.getElementById("group_menu");

    selectMenu.innerHTML = groupMenu.innerHTML;           
    selectMenu.options[0] = null;
    
    var okButton = generateCommonElement("div");
    okButton.innerHTML = '<a href="javascript:selectGroupValue()" class="button_green"><span>' + Translate("forms.save") + '</span></a>';

    var clearDiv = generateCommonElement("div","clear");
        
    columnContainer.appendChild(heading);    
    div.appendChild(label);
    div.appendChild(selectMenu);
    columnContainer.appendChild(div);    
    columnContainer.appendChild(okButton);
    columnContainer.appendChild(clearDiv);
    divContainer.appendChild(columnContainer);
    
    createAlert(divContainer.innerHTML);
}

function selectGroupValue() {
    var menu = document.getElementById("move_group_id");
    var companyId = document.getElementById("default_company").value;   
    var groupValue = menu.options[menu.selectedIndex].value;
    deleteRequest();
    
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.MoveUsers(groupValue, temporaryUserArray, companyId, OnUpdateUsers);
}

function OnUpdateUsers() {
    updateUserList();
    temporaryUserArray = new Array();    
}


/***** CUSTOMIZED FILTERS FOR THE USERLIST *****/


function passGroupValueIE() {
    var obj = window.event.srcElement;
    passGroupValue(obj);
}

function passGroupValue(obj) {
    var menu = obj;
    
    if(menu != null) {
        var menuValue = menu.options[menu.selectedIndex].value;
        
        var groupInput = document.getElementById("filter_cell_group");
        groupInput.value = menuValue;
        
        FilterViewChangeSingle(groupInput, 'group','user_table');
        
        if($get("default_group")) {
            $get("default_group").value = menuValue;
        }
    }
}

function customizeFiltersForUsers() {    
    var defaultGroup = document.getElementById("default_group").value;
    var divTableContainer = $get('user_table');
    
    var isLoading = (divTableContainer.innerHTML == 'Loading...');
        
    if(!isLoading) {
        var selectMenu = document.createElement("select");
        selectMenu.setAttribute("id","group_menu");
        selectMenu.id = "group_menu";
        
        var option = document.createElement("option");
        option.setAttribute("value","");
        option.innerHTML = Translate("forms.getting_groups") + "...";
        
        if(selectMenu.attachEvent) {
            selectMenu.attachEvent("onchange",passGroupValueIE);
        } else {
            selectMenu.setAttribute("onchange","passGroupValue(this)");
        }
        
        selectMenu.appendChild(option);
        
        var groupInput = document.getElementById("filter_cell_group");
        
        if(groupInput != null) {
            var parent = groupInput.parentNode;
            parent.appendChild(selectMenu);
        }
        
        selectMenu.innerHTML = "";
        var firstOption = document.createElement("option");
        firstOption.setAttribute("value","");
        var firstText = document.createTextNode(Translate("groups.no_group"));
        firstOption.appendChild(firstText);
        selectMenu.appendChild(firstOption);
        
        fillGroupDropDown(selectMenu, -1, defaultGroup, false);
        addCustomizedStatusFilters();
    }    
    else {
        setTimeout("customizeFiltersForUsers()",100);
    }
}

function addCustomizedStatusFilters() {
    //add customized filter for user status
    var activeContainer = document.getElementById("filter_cell_active");
    
    var enabledCheckBox = document.createElement("input");
    enabledCheckBox.setAttribute("type","checkbox");
    enabledCheckBox.setAttribute("id","show_enabled_users");
    
    if(enabledCheckBox.attachEvent) {
        enabledCheckBox.attachEvent("onclick",toggleActiveUsers);
    } else {
        enabledCheckBox.setAttribute("onclick","toggleActiveUsers()");
    }
    
    var disabledCheckBox = document.createElement("input");
    disabledCheckBox.setAttribute("type","checkbox");
    disabledCheckBox.setAttribute("id","show_disabled_users");
    
    if(disabledCheckBox.attachEvent) {
        disabledCheckBox.attachEvent("onclick",toggleActiveUsers);
    } else {
        disabledCheckBox.setAttribute("onclick","toggleActiveUsers()");
    }
    
    var disabledLabel = document.createElement("label");
    disabledLabel.setAttribute("for","show_disabled_users");
    disabledLabel.innerHTML = Translate("users.disabled");

    var enabledLabel = document.createElement("label");
    enabledLabel.setAttribute("for","show_enabled_users");
    enabledLabel.innerHTML = Translate("users.enabled");
        
    if(activeContainer != null) {
        var parent = activeContainer.parentNode;
        parent.appendChild(enabledCheckBox);
        parent.appendChild(enabledLabel);
        parent.appendChild(disabledCheckBox)
        parent.appendChild(disabledLabel);
    }
}

function toggleActiveUsers() {
    var enabledCheckBox = document.getElementById("show_enabled_users");
    var disabledCheckBox = document.getElementById("show_disabled_users");
    var filter = document.getElementById("filter_cell_active");

    if(enabledCheckBox.checked && !disabledCheckBox.checked) {
        //filter only enabled users
        filter.value = "true";
        FilterViewChangeSingle(filter, 'active','user_table');
    } else if(!enabledCheckBox.checked && disabledCheckBox.checked) {
        //filter only disabled users
        filter.value = "false";
        FilterViewChangeSingle(filter, 'active','user_table');
    } else {
        //get both
        filter.value = "";
        FilterViewChangeSingle(filter, 'active','user_table');
    }
}

function exportUsers()
{
    //document.getElementById('ExportUserList').style.display='none';
    var filter = document.getElementById("filter_cell_active");
    var filters=FiltersArray(filter,'user_table');
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.ExportUserList(filters,OnExportUserList);        
 
}

function OnExportUserList(results)
{
    if(results)
    {
      document.getElementById('ExportUserList').style.display='block';
    }
    
}

/****** User Settings *******/

function updateUserView(obj, property) {
    var value = (obj.checked) ? "true" : "false";
    updateUserSettings(obj, property, value, '');
}

function updateUserVendorSettingsIE() {
    var currentBox = window.event.srcElement;
    updateUserVendorSettings(currentBox);
}

function updateUserVendorSettings(obj) {
    var vendor = obj.value;
    var vendorXML = document.getElementById("user_settings_vendors").value;
  
    var div = obj.parentNode;
    var parent = div.parentNode;


    /*var vendorContainer = document.getElementById("vendors_container");
    
    if(vendorContainer != null)
        deleteObject("vendors_container");*/
  
    if(!obj.checked) {

        parent.removeChild(div);
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.RemoveVendorFromGroup("", vendorXML, vendor, false, true, OnVendorSettingRemoved);        
    }            
}

function OnVendorSettingRemoved(results) {
    document.getElementById("user_settings_vendors").value = results;
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetVendors(results, OnGetSettingsList);
    
    OnUserSettingsUpdated();
}

function resetVendors() {
    var value = "<vendors />";
    var property = "Vendors";
    document.getElementById("user_settings_vendors").value = value;
    
    updateUserSettingsView(property, value);
    //document.getElementById("vendor_container").innerHTML = "<span> 0 " + Translate("vendors.many_selected") + ".</span>";
    
   var vendorContainer = document.getElementById("vendor_container");
    
    if(vendorContainer != null)
       vendorContainer.innerHTML = '';
        //deleteObject("vendors_container");
}

function updateUserSettings(obj, property, value, container) {
    ShowUpdateWindow();
    
    var selectedObject = obj;
    var parentObject = selectedObject.parentNode;    
    var fieldsetContainer = document.getElementById(container);
    
    if(container != '') {
        var inputs = fieldsetContainer.getElementsByTagName("input");
        
        for(var i = 0; i < inputs.length; i++) {
            var currInput = inputs[i];
            var currParent = currInput.parentNode;
            
            if(currInput.checked) {
                currParent.className = "highlight";
            }
            else if(currInput.getAttribute("id") == "user_settings_budget_prices") {
                currParent.className = "hide";
                //TODO: enable when Budget Prices are back in
            }
            else {
                currParent.className = "";
            }
        }
    } else {
        if(selectedObject.checked) {
            parentObject.className = "highlight";
        }
        else {
            parentObject.className = "";
        }
    }
    
    updateUserSettingsView(property, value);    
}
function updateUserSettingsView1(property, value) {
if(value=='true')
{

    document.getElementById("vsja_table").className='table_view_settingss';
    document.getElementById("vsja_grid").className='grid_view_settings';
    document.getElementById("cat_view").style.display="block";
}
else
{
    document.getElementById("vsja_table").className='table_view_settings';
    document.getElementById("vsja_grid").className='grid_view_settingss';
    document.getElementById("cat_view").style.display="none";
}

    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.UpdateUserSettings(property, value, OnUserSettingsUpdated);
}
function updateUserSettingsView(property, value) {

    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.UpdateUserSettings(property, value, OnUserSettingsUpdated);
}

var objt;
var propertyt;
var valuet;
var containert;
var sortb='false';
function updateUserSettingsHead(obj, property, value, container)
{

objt=obj;
propertyt=property;
valuet=value;
containert=container;
var id=container+"_"+value;
if(sortb=='false')
{
sortb='true';
}
else{
sortb='false';
}

ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.UpdateUserSettings('OrderBy',sortb,OnUserSettingsUpdatedHead);
//setTimeout("sortIcon(sortb,valuet)", 600);

}
function OnUserSettingsUpdatedHead(obj, property, value, container)
{
updateUserSettings(objt, propertyt, valuet, containert);

}
function sortIcon(status,value)
{
    
    if(value!=3)
    {
    (status=='false')?document.getElementById('sort_'+value).className='down':document.getElementById('sort_'+value).className='up';
    }
    else{
     (status=='false')?document.getElementById('sort_'+value).className='up':document.getElementById('sort_'+value).className='down';
    }
}

function OnUserSettingsUpdated() {

    try {
        UpdateProductView();
    } catch (e) {
        stopUpdateWindow();
    }
    
    EventHandler.Fire('usersettingsupdated');
    EventHandler.Fire('userbasketsupdated');
    EventHandler.Fire('usercategoryupdated');
}

function setVendorValue(value) {
    document.getElementById("user_settings_vendors").value = value;
}

function resetSettings() {
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.ResetUserSettings(OnSettingsReset);
}

function OnSettingsReset() {
   
    document.getElementById("user_settings_all_prices").checked = true;
    resetBackground('user_settings_all_prices');

    //TODO: Allow when Budget Prices are back in
    //document.getElementById("user_settings_budget_prices").checked = false;
    //resetBackground('user_settings_budget_prices');

    document.getElementById("user_settings_contract_prices").checked = false;
    resetBackground('user_settings_contract_prices');

    document.getElementById("user_settings_with_vat").checked = true;
    resetBackground('user_settings_with_vat');

    document.getElementById("user_settings_without_vat").checked = false;
    resetBackground('user_settings_without_vat');

    document.getElementById("user_settings_show_image").checked = true;
    resetBackground('user_settings_show_image');

    document.getElementById("user_settings_show_description").checked = true;
    resetBackground('user_settings_show_description');

    document.getElementById("user_settings_show_vendor").checked = true;
    resetBackground('user_settings_show_vendor');

    document.getElementById("user_settings_show_category").checked = true;
    resetBackground('user_settings_show_category');

    document.getElementById("user_settings_order_relevance").checked = true;
    resetBackground('user_settings_order_relevance');

    document.getElementById("user_settings_order_serial").checked = false;
    resetBackground('user_settings_order_serial');

    document.getElementById("user_settings_order_vendor").checked = false;
    resetBackground('user_settings_order_vendor');

    document.getElementById("user_settings_order_price").checked = false;
    resetBackground('user_settings_order_price');


    document.getElementById("user_settings_order_name").checked = false;
    resetBackground('user_settings_order_name');

    
    resetVendors();
}

function resetBackground(id)
{
    if(document.getElementById(id).checked){
         var checkbox_id = document.getElementById(id);
         var checkbox_parent = checkbox_id.parentNode;
         checkbox_parent.className = "highlight";
   }
    else if(!document.getElementById(id).checked){
        var checkbx_id = document.getElementById(id);
        var checkbx_parent = checkbx_id.parentNode;
        checkbx_parent.className = checkbx_parent.className.replace("highlight"," ");
   }      
}

function retrieveSettings() {
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetUserSettings(OnRetrieveSettings);
}

function OnRetrieveSettings(results) {
    document.getElementById("user_settings_all_prices").checked = (results.PriceView == 1) ? true : false;

    document.getElementById("user_settings_contract_prices").checked = (results.PriceView == 3) ? true : false;
    document.getElementById("user_settings_with_vat").checked = (results.VatView == 1) ? true : false;
    document.getElementById("user_settings_without_vat").checked = (results.VatView == 2) ? true : false;;
    document.getElementById("user_settings_show_image").checked = results.ShowImage;
    document.getElementById("user_settings_show_description").checked = results.ShowDescription;
    document.getElementById("user_settings_show_vendor").checked = results.ShowVendor;
    document.getElementById("user_settings_show_category").checked = results.ShowCategory;
    document.getElementById("user_settings_order_name").checked = (results.OrderView == 1) ? true : false;
    document.getElementById("user_settings_order_serial").checked = (results.OrderView == 2) ? true : false;
    document.getElementById("user_settings_order_vendor").checked = (results.OrderView == 3) ? true : false;
    document.getElementById("user_settings_order_price").checked = (results.OrderView == 4) ? true : false;    
    setVendorValue(results.Vendors);
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetVendors(results.Vendors, OnGetSettingsList);
    OnUserSettingsUpdated();    
}

/*********** Invited users **************/

function showInvitedUserForm() {
    var invitedContainer = document.getElementById("invited_container");
    
    //Check if the container has already been moved underneath the main document body
    if(invitedContainer.parentNode != document.body) {
        //Move the container underneath the body to prevent position:relative IE bug
        var newContainer = document.createElement("div");
        newContainer.setAttribute("id","invited_container");
        newContainer.className = "global_hover_container hide";
        newContainer.innerHTML = invitedContainer.innerHTML;
        
        invitedContainer.parentNode.removeChild(invitedContainer);
        document.body.appendChild(newContainer);
        
        createInvitedUserShadowBox();
    }
    
    hideContainer("invited_msg");
    showContainer("invited_search");
    
    var group = document.getElementById("group_menu");
    
    if(group != null) {
        var groupId = group.options[group.selectedIndex].value;
        
        if(groupId == "") {
            createAlert(Translate("error.mustselectusergroup"));
        } else {
            showContainer("invited_container");
        }    
    }    
}

function createInvitedUserShadowBox() {
    var shadowedBorder = RUZEE.ShadedBorder.create({ corner:5, shadow:20, border:2 });
    shadowedBorder.render('shadowed-border');
}

function inviteUser(guid) {
    var group = document.getElementById("group_menu");
    
    if(group != null) {
        var groupId = group.options[group.selectedIndex].value;
        
        if(groupId == "") {
            createAlert(Translate("error.mustselectusergroup"));
        } else {
            document.getElementById("invited_guid").value = guid;
            hideContainer("invited_search");
            hideContainer("invited_results");
            hideContainer("invited_desc");
            showContainer("invited_msg");            
        }
    } 
}

function sendInviteToUser() {
    var group = document.getElementById("group_menu");
    
    if(group != null) {
        var groupId = group.options[group.selectedIndex].value;
        
        if(groupId == "") {
            createAlert(Translate("error.mustselectusergroup"));
        } else {
            var guid = document.getElementById("invited_guid").value;
            var email = document.getElementById("invited_email").value;
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.InviteUser(guid, email, groupId, OnInvitedUser);
        }
    }    
}

function OnInvitedUser(results) {
    if(results == "") {
        createAlert("success");
        hideContainer("invited_container");
    } else {
        createAlert(results);
    }
}

function searchInvitedUser() {
    document.getElementById("invited_results").innerHTML = "";
    var invitedSSN = document.getElementById("invited_ssn").value;
    var invitedCompany = document.getElementById("invited_company").value;
    var invitedName = document.getElementById("invited_name").value;
    
    if(invitedCompany == "" && invitedSSN == "" && invitedName == "") {
        createAlert(Translate("error.searchcriteriamissing"));
    } else if(invitedCompany != "" && invitedSSN == "" && invitedName == "") {
        createAlert(Translate("error.cantsearchonlybycompany"));
    } else if(invitedSSN.length > 0 && invitedSSN.length != 10) {
        createAlert(Translate("error.ssnmustbe10chars"));
    } else if(invitedSSN.length > 0 && !validateSSN(invitedSSN)) {
        createAlert(Translate("error.ssnnotvalid"));
    } else if(invitedName.length > 0 && invitedName.length < 3) {
        createAlert(Translate("error.namemustbe3chars"));
    } else {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.SearchUsers(invitedSSN, invitedCompany, invitedName, OnSearchUsersResults);
    }
}

function OnSearchUsersResults(results) {
    var container = document.getElementById("invited_results");
    hideContainer("invited_desc");
    showContainer("invited_results");
    var scrollContainer = document.createElement("div");
    scrollContainer.className = "invited_scroll_container";
    
    if(results != null && results.length > 0) {        
        var heading = document.createElement("h2");
        heading.innerHTML = Translate("headings.invited_searchresults");
        
        var table = document.createElement("div");
        var tableWidth = (results.length < 7) ? "100%" : "95%";
        var html = '<table cellspacing="0" cellpadding="3" width="' + tableWidth + '">';
        html += '<tr><th>' + Translate("common.ssn") + '</th><th>' + Translate("common.company") + '</th><th>' + Translate("common.name") + '</th><th>&nbsp;</th>';
        
        for(var i = 0; i < results.length; i++) {
            var tdClass = (i%2==0) ? "alt" : "";
            
            html += '<tr><td class="' + tdClass + '" nowrap="nowrap">';
            html += (results[i].SSN != null && results[i].SSN != "") ? results[i].SSN : "&nbsp;";
            html += '</td><td class="' + tdClass + '" nowrap="nowrap">';
            html += (results[i].UserGroup != null && results[i].UserGroup.Name != "") ? results[i].UserGroup.Name : "&nbsp;";
            html += '</td>';
            html += '<td class="' + tdClass + '" nowrap="nowrap">' + results[i].Fullname + '</td>';
            html += '<td class="' + tdClass + '" nowrap="nowrap"><a href="javascript:inviteUser(\'' + results[i].EntryId + '\')" class="button_green right_button"><span>' + Translate("buttons.inviteuser") + '</span></a></td></tr>';
        }
        
        container.appendChild(heading);
        table.innerHTML = html;
        scrollContainer.appendChild(table);
        container.appendChild(scrollContainer);
        
    } else {
        container.innerHTML = '<h2>' + Translate("common.noresults") + '</h2>';
    }
}


/**** EDIT COMPANY *****/

function editCompany(id) {
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetCompanyByGuid(id,OnGetCompanyDetails);
}

function OnGetCompanyDetails(results) {
    var compCountryMenu = $get("company_country_input");
    var defaultCountry;
    
    if(results.Address != null) {
        defaultCountry = results.Address.Country;
    } else {
        defaultCountry = Translate("default.country");
    }
    
    fillCountryDropDown(compCountryMenu, defaultCountry);

    $get("company_id_input").value = results.EntryId;
    $get("company_ssn_input").value = results.SSN;
    $get("company_name_input").value = results.Name;
    $get("company_sitename_input").value = results.Shortname;
    $get("company_email_input").value = results.Email;
    $get("company_phone_input").value = results.Phone;
    
    if(results.Address != null) {
        $get("company_address1_input").value = results.Address.Address1;
        $get("company_address2_input").value = results.Address.Address2;
        $get("company_postcode_input").value = results.Address.PostalCode;
        $get("company_postbox_input").value = results.Address.PostBox;
        $get("company_place_input").value = results.Address.Place;
    }
    
    $get("company_vat_input").value = results.VAT;
    $get("company_fax_input").value = results.Fax;
    $get("company_website_input").value = results.Website;
    $get("company_description_input").value = results.Description;
    $get("company_vendor_input").checked = (results.IsVendor) ? true : false;
    $get("company_govern_input").checked = (results.IsGovernment) ? true : false;
}

function updateCompany() {
    hideContainer("registration_confirmation");
    var compCountryMenu = $get("company_country_input");
    var compId = $get("company_id_input").value;
    var compSsn = $get("company_ssn_input").value;
    var compName = $get("company_name_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) ? true : false;
    var compGovern = (compGovernCheck.checked) ? true : false;
    var compCountry = compCountryMenu.options[compCountryMenu.selectedIndex].value;
    
    ShowCreateWindow();    
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.UpdateCompany(compId, compSsn, compName, compEmail, compPhone, compAddress1, compAddress2, compPostcode, compPostbox, compPlace, compVat, compFax, compWebsite, compDescription, compVendor, compGovern, compCountry, OnCompanyUpdated);
}

function OnCompanyUpdated(results) {
    stopUpdateWindow();
    
    if(results == true) {
        showContainer("registration_confirmation");
    }
    else {
        createAlert(Translate("error.companynotupdated"));
    }
}


/**** COST CENTERS ****/

function editCostCenter(guid) {
    var detailContainer = document.getElementById("center_" + guid);
       
    //Check if the cost center has been fetched before
    
    if(detailContainer.className.indexOf("full") < 0) {
        //Hasn't been fetched - generate form and get cost center details
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetCostCenter(guid,OnGetCostCenterDetails);
    }
    else if(detailContainer.className.indexOf("hide") > -1) {
        //Has been fetched before - only show the container
        toggleHeaderIcons("cca_container", "header_" + guid);
        toggleExtraIcons("edit_button_" + guid, "Edit", "actions_icon icon_edit_on edit_cca", "actions_icon icon_edit");
        toggleExtraIcons("delete_button_" + guid, "Delete", "hide", "actions_icon icon_delete");
        hideAllButOne("cca_container","cca_details","center_" + guid, "div");
    } else {
        //Container is already open - hide it
        hideContainer(detailContainer.id);
        closeHeaderIcon("header_" + guid);
        resetIcon("edit_button_" + guid, "actions_icon icon_edit");
        resetIcon("delete_button_" + guid, "actions_icon icon_delete");
    }
}

function OnGetCostCenterDetails(results) {
    if(results != null) { 
        var addressContainer = document.getElementById("center_" + results.EntryId);
        addressContainer.className += " full";
        addressContainer.innerHTML = "";
        var address = generateCostCenterForm(results, true);
        addressContainer.appendChild(address);
        var clear = generateCommonElement("div","clear");
        addressContainer.appendChild(clear);
        
        hideAllButOne("cca_container","cca_details","center_" + results.EntryId, "div");
        toggleHeaderIcons("cca_container","header_" + results.EntryId);
        toggleExtraIcons("edit_button_" + results.EntryId, "Edit", "actions_icon icon_edit_on edit_cca", "actions_icon icon_edit");
        toggleExtraIcons("delete_button_" + results.EntryId, "Delete", "hide", "actions_icon icon_delete");
    } else {
        createAlert(Translate("error.nocostcenter"));
    }
}

function generateCostCenterForm(results, editable) {
    var prefix;
    var valueArray;
    
    if(results != null) {
        prefix = results.EntryId;
        valueArray = new Array(results.Name, results.Identification, results.ERP);
    }
    else {
        prefix = "new";
        valueArray = new Array("","","");
    }
    
    if(editable == null) {
        editable = false;
    }
    
    var columnContainer = generateCommonElement("div","column single");
    
    var inputArray = new Array("Name","Identification","ERP","Default");
    var classArray = new Array("validate","validate","validate","");
    var headingArray = new Array(Translate("costcenter.name"),Translate("costcenter.identification"), Translate("costcenter.erp"),"Default");
    var maxLengthArray = new Array("50","50","50","10");
    var tagArray = new Array("input","input","input","input");
    var typeArray = new Array("text","text","text","checkbox");
    
    for(var i = 0; i < inputArray.length; i++) {    
        var container = generateCommonElement("div", "clear");
        
        var mandatory = (classArray[i] == "validate") ? " *" : "";
        var label = generateCommonLabel(prefix + "_" + inputArray[i], headingArray[i], mandatory);
        var input = generateCommonElement(tagArray[i], classArray[i], inputArray[i], prefix, typeArray[i], valueArray[i], maxLengthArray[i]);
        
        if(editable) {
            input.setAttribute("db",inputArray[i]);
            input.setAttribute("entryid", prefix);        
            
            if(input.attachEvent) {
                input.attachEvent("onblur",updateCostCenterValueIE);
            } else {
                input.setAttribute("onblur","updateCostCenterValue(this)");
            }
        }
        
        container.appendChild(label);
        container.appendChild(input);
        
        columnContainer.appendChild(container);
    }
    
    return columnContainer;
}

function updateCostCenterValueIE() {
    var obj = window.event.srcElement;
    updateCostCenterValue(obj);
}

function updateCostCenterValue(obj) {
    var guid = obj.getAttribute("entryid");    

    if(validateForm("center_" + guid, Translate("common.missing"))) {
        var oldValue = obj.getAttribute("oldvalue");
        var objValue = obj.value;
        var objDb = obj.getAttribute("db");
        obj.setAttribute("oldvalue",objValue);
        
        if(objValue != null && oldValue != objValue) {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.UpdateCostCenter(guid, objDb, objValue, OnCostCenterUpdated);
            ShowCreateWindow();
            
            if(objDb == "Name") {
                document.getElementById("header_" + guid).innerHTML = objValue;
            }
        }
    }
}

function OnCostCenterUpdated() {
    stopUpdateWindow();
}

function deleteCostCenter(guid) {

    var html = '<p>' + Translate("groups.confirm_deletecoststation") + '</p>' + 
    '<a class="button_green" href="javascript:confirmDeleteCoststation(\'' + guid + '\')"><span>' + Translate("forms.ok") + '</span></a> <span class="hide">|</span> <a class="button_red" href="javascript:deleteAlert()"><span>' + Translate("forms.cancel") + '</span></a>';
    
    createAlert(html);
}

function confirmDeleteCoststation(guid) {
    deleteAlert();
    var container = document.getElementById("container_" + guid);
    container.parentNode.removeChild(container);
     ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.DeleteCostCenter(guid);
}

function createNewCostCenter(isInCheckout) {
    if(isInCheckout == null || isInCheckout == undefined)
        isInCheckout = false;
    
    var html = '<h2>' + Translate("headings.new_costcenter") + '</h2>';
    html += '<div id="new_costcenter" class="user_form"></div>';
    html += '<div class="clear">';
    html += '<a class="button_green" href="javascript:saveNewCostCenter(' + isInCheckout + ')"><span>' + Translate("forms.save") + '</span></a>';
    html += '<span class="hide"> | </span>';
    html += '<a class="button_red" href="javascript:deleteRequest()"><span>' + Translate("forms.cancel") + '</span></a>';
    html += '</div>';
    
    createRequest(html);
    
    var object = generateCostCenterForm();
    document.getElementById("new_costcenter").appendChild(object);
}

function saveNewCostCenter(isInCheckout) {
    if(validateForm("new_costcenter", Translate("common.missing"))) {
        var name = document.getElementById("new_Name").value;
        var identification = document.getElementById("new_Identification").value;
        var erp = document.getElementById("new_ERP").value;
        var defa=document.getElementById("new_Default").checked;
        ShowCreateWindow();
        
        if(isInCheckout) {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateCostCenter(name, identification, erp,defa, OnNewCostCenterInCheckout, OnCostCenterError);
        } else {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateCostCenter(name, identification, erp,defa, OnNewCostCenterCreated, OnCostCenterError);
        }
    }
}

function OnNewCostCenterCreated(results) {
    stopUpdateWindow();
    
    if(results != null) {
        deleteRequest();
        var addressContainer = document.getElementById("cca_container");
        
        var addressBlock = generateCommonElement("div","cca_block", results.EntryId, "container");
        var addressHeader = generateCommonElement("div","cca_header");
        
        var changeLabel = Translate("groups.edit_group");
        var deleteLabel = Translate("groups.delete_group");
        
        var html = '<h3 id="header_' + results.EntryId +'" class="group_icon closed_group" onclick="editCostCenter(\'' + results.EntryId + '\')" title="' + changeLabel + '">' + results.Name + '</h3>';
        html += '<a name="Edit" id="edit_button_' + results.EntryId + '" class="actions_icon icon_edit" href="javascript:editCostCenter(\'' + results.EntryId + '\')" title="' + changeLabel + '"><span>' + changeLabel + '</span></a>';
        html += '<a name="Delete" id="delete_button_' + results.EntryId + '" class="actions_icon icon_delete" href="javascript:deleteCostCenter(\'' + results.EntryId + '\')" title="' + deleteLabel + '"><span>' + deleteLabel + '</span></a>';        
        
        addressHeader.innerHTML = html;
        
        var addressDetails = generateCommonElement("div","cca_details user_form hide", results.EntryId, "center");
        
        addressBlock.appendChild(addressHeader);
        addressBlock.appendChild(addressDetails);        
        addressContainer.appendChild(addressBlock);
        
    } else {
        createAlert(Translate("error.nocostcentercreated"));
    }
}

function OnNewCostCenterInCheckout(results) {
    stopUpdateWindow();
    deleteRequest();
    
    //Update select menu
    var menu = document.getElementById("select_cost_center");
    menu.style.width = "100%";
    
    var newOption = document.createElement("option");
    newOption.value = results.EntryId;
    newOption.innerHTML = results.Name;
    
    menu.appendChild(newOption);
}

function OnCostCenterError(error) {
    stopUpdateWindow();
    createAlert(Translate("error.nocostcentercreated") + "<br/><br/>ERROR: " + error.get_message());
}


/**** ADDRESSES ****/

function editAddress(guid) {
    var addressDetailContainer = document.getElementById("address_" + guid);
    var editclassname = document.getElementById("edit_button_" + guid);
    //Check if the address has been fetched before
   
    if(addressDetailContainer.className.indexOf("full") < 0) {
        //Hasn't been fetched - generate address form and get address details
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetAddress(guid,OnGetAddressDetails);
    }
    else if(addressDetailContainer.className.indexOf("hide") > -1) {
	    //Has been fetched before - only show the container
        toggleHeaderIcons("cca_container", "header_" + guid);
        toggleExtraIcons("edit_button_" + guid, "Edit", "actions_icon icon_edit_on edit_cca", "actions_icon icon_edit");
        toggleExtraIcons("delete_button_" + guid, "Delete", "hide", "actions_icon icon_delete");
        
        hideAllButOne("cca_container","cca_details","address_" + guid, "div");
 
    } else {
        //Container is already open - hide it
		hideContainer(addressDetailContainer.id);
        closeHeaderIcon("header_" + guid);
        resetIcon("edit_button_" + guid, "actions_icon icon_edit");
        resetIcon("delete_button_" + guid, "actions_icon icon_delete");
    }   
}

function OnGetAddressDetails(results) {    
    if(results != null) { 
        var addressContainer = document.getElementById("address_" + results.EntryId);
        addressContainer.className += " full";
        addressContainer.innerHTML = "";
        var address = generateAddressForm(results, true);
        addressContainer.appendChild(address);
        var clear = generateCommonElement("div","clear");
        addressContainer.appendChild(clear);
        
        hideAllButOne("cca_container","cca_details","address_" + results.EntryId, "div");
        toggleHeaderIcons("cca_container","header_" + results.EntryId);
        toggleExtraIcons("edit_button_" + results.EntryId, "Edit", "actions_icon icon_edit_on edit_cca", "actions_icon icon_edit");
        toggleExtraIcons("delete_button_" + results.EntryId, "Delete", "hide", "actions_icon icon_delete");
    } else {
        createAlert(Translate("error.noaddress"));
    }
}

function generateAddressForm(results, editable) {
    var prefix;
    var valueArray;
    
    if(results != null) {
        prefix = results.EntryId;
        valueArray = new Array(results.Address1, results.Address2, results.PostalCode, results.PostBox, results.Place, results.Country, results.AddressType, results.DefaultAddress);
    }
    else {
        prefix = "new";
        valueArray = new Array("","","","","",Translate("default.country"),"0","true");
    }
    
    if(editable == null) {
        editable = false;
    }
    var columnContainer = generateCommonElement("div","column single");
    
    var divArray = new Array("clear","clear","left_form form_50 clear","right_form form_50","left_form form_60 clear","right_form form_40","left_form form_60 clear","right_form form_40");
    var inputArray = new Array("Address1","Address2","PostalCode","PostBox","Place","Country","AddressType","DefaultAddress");
    var classArray = new Array("validate","","validate","","validate","validate","","");
    var maxLengthArray = new Array("40","40","10","50","50","50","10","10");
    var tagArray = new Array("input","input","input","input","input","select","select","input");
    var typeArray = new Array("text","text","text","text","text","","","checkbox");
    var eventArray = new Array("onblur","onblur","onblur","onblur","onblur","onchange","onchange","onclick");
    
    var headingArray = new Array(Translate("common.address"),Translate("common.address"), Translate("common.postcode"), Translate("common.postbox"), Translate("common.place"), Translate("common.country"),"Address Type","Default");

    for(var i = 0; i < inputArray.length; i++) {    
        var container = generateCommonElement("div",divArray[i]);
        
        var mandatory = (classArray[i] == "validate") ? " *" : "";
        var label = generateCommonLabel(prefix + "_" + inputArray[i], headingArray[i], mandatory);
        var input;
        var div;
        
        input = generateCommonElement(tagArray[i], classArray[i], inputArray[i], prefix, typeArray[i], valueArray[i], maxLengthArray[i]);
            
        if(editable) {
            input.setAttribute("db",inputArray[i]);
            input.setAttribute("entryid", prefix);
            
            if(input.attachEvent) {
                input.attachEvent(eventArray[i],updateAddressValueIE);
            } else {
                input.setAttribute(eventArray[i],"updateAddressValue(this)");
            }                
        }
    
        container.appendChild(label);
        container.appendChild(input);
        
        columnContainer.appendChild(container);
        
        if(inputArray[i] == "Country") {
            fillCountryDropDown(input,valueArray[i]);
        }else if (inputArray[i] == "AddressType") {
            var option = document.createElement("option");
            option.setAttribute("value",0);
            if(valueArray[i] == 0) {
                option.setAttribute("selected","selected");
            }
            option.innerHTML = "Payment Address";
            input.appendChild(option);
            
            option = document.createElement("option");
            option.setAttribute("value",1);
            if(valueArray[i] == 1) {
                option.setAttribute("selected","selected");
            }
            option.innerHTML = "Shipping Address";
            input.appendChild(option);

	    option = document.createElement("option");
            option.setAttribute("value",2);
            if(valueArray[i] == 2) {
                option.setAttribute("selected","selected");
            }
            option.innerHTML = "Shipping and Payment Address";
            input.appendChild(option);
        } else if (inputArray[i] == "DefaultAddress") {
            if(editable) {
                if(results.DefaultAddress > 0) {
                    input.setAttribute("checked","checked");
                }
            }
        }
    }
    return columnContainer;
}

function updateAddressValueIE() {
    var obj = window.event.srcElement;
    updateAddressValue(obj);
}

function updateAddressValue(obj) {
    var guid = obj.getAttribute("entryid");    

    if(validateForm("address_" + guid, Translate("common.missing"))) {
        var oldValue = obj.getAttribute("oldvalue");
        var objValue = obj.value;

	if(obj.type == "checkbox" || obj.type == "radio") {
            objValue = obj.checked;
        }

        var objDb = obj.getAttribute("db");
        obj.setAttribute("oldvalue",objValue);
        
        if(objValue != null && oldValue != objValue) {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.UpdateAddress(guid, objDb, objValue, OnAddressUpdated);
            ShowUpdateWindow();
            
            if(objDb == "Address1") {
                document.getElementById("header_" + guid).innerHTML = objValue;
            }
        }
    }
}

function OnAddressUpdated() {
    stopUpdateWindow();
}

function deleteAddress(guid) {
    var html = '<p>' + Translate("groups.confirm_deleteaddress") + '</p>' + 
    '<a class="button_green" href="javascript:confirmDeleteAddress(\'' + guid + '\')"><span>' + Translate("forms.ok") + '</span></a> <span class="hide">|</span> <a class="button_red" href="javascript:deleteAlert()"><span>' + Translate("forms.cancel") + '</span></a>';
    
    createAlert(html);    
}

function confirmDeleteAddress(guid) {
    deleteAlert();
    var container = document.getElementById("container_" + guid);
    container.parentNode.removeChild(container);
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.DeleteAddress(guid);
}

function createNewAddress(isInCheckout, addressType, defaultAddress) {
    if(isInCheckout == null || isInCheckout == undefined)
        isInCheckout = false;

    if(defaultAddress == null || defaultAddress == undefined)
        defaultAddress = 0;
    else {
        defaultAddress = (defaultAddress == 'billing') ? 0 : 1;
    }            


    var html = '<h2>' + Translate("headings.new_address") + '</h2>';
    html += '<div id="new_address" class="user_form"></div>';
    html += '<div class="clear">';
    html += '<a class="button_green" href="javascript:saveNewAddress(' + isInCheckout + ',\'' + addressType + '\')"><span>' + Translate("forms.save") + '</span></a>';
    html += '<span class="hide"> | </span>';
    html += '<a class="button_red" href="javascript:deleteRequest()"><span>' + Translate("forms.cancel") + '</span></a>';
    html += '</div>';
    
    createRequest(html);
    
    var object = generateAddressForm();
    document.getElementById("new_address").appendChild(object);

    var addressDropDown = document.getElementById("new_AddressType");
    if(addressDropDown) addressDropDown.value = defaultAddress;

}

function clearCostCenterForm() {
    document.getElementById("new_Address1").value = "";
    document.getElementById("new_Address2").value = "";
    document.getElementById("new_PostalCode").value = "";
    document.getElementById("new_PostBox").value = "";
    document.getElementById("new_Place").value = "";
    
    var countryMenu = document.getElementById("new_Country");
    var defaultCountry = "<%=DefaultCountry%>";
  
    for(var i = 0; i < countryMenu.options.length; i++) {        
        if(countryMenu.options[i].value.toLowerCase() == defaultCountry.toLowerCase()) {
            countryMenu.selectedIndex = i;
        }
    }
}

function saveNewAddress(isInCheckout, addressType) {
    if(validateForm("new_address", Translate("common.missing"))) {
        var address1 = document.getElementById("new_Address1").value;
        var address2 = document.getElementById("new_Address2").value;
        var postalcode = document.getElementById("new_PostalCode").value;
        var postbox = document.getElementById("new_PostBox").value;
        var place = document.getElementById("new_Place").value;
        var country = document.getElementById("new_Country").value;
        var type = document.getElementById('new_AddressType').value;
        var defaultaddress = document.getElementById('new_DefaultAddress').checked;

        if(addressType == null || addressType == undefined)
            addressType = 'user';
        
        ShowCreateWindow();
        
        if(isInCheckout) {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateAddress(addressType, address1, address2, postalcode, postbox, place, country, type, defaultaddress, OnNewAddressInCheckout, OnAddressError);
        } else {
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateAddress(addressType, address1, address2, postalcode, postbox, place, country, type, defaultaddress, OnNewAddressCreated, OnAddressError);
        }
    }
}

function OnNewAddressCreated(results) {
    stopUpdateWindow();
    
    if(results != null) {
        deleteRequest();
        var addressContainer = document.getElementById("cca_container");
        
        var addressBlock = generateCommonElement("div","cca_block", results.EntryId, "container");
        //for curves
        var addresstopleftcurve = generateCommonElement("div","left_topcurve");
        var addresstoprightcurve = generateCommonElement("div","right_topcurve");
        
        var addressHeader = generateCommonElement("div","cca_header");
        
        var changeLabel = Translate("groups.edit_group");
        var deleteLabel = Translate("groups.delete_group");
        
        var html = '<h3 id="header_' + results.EntryId +'" class="group_icon closed_group" onclick="editAddress(\'' + results.EntryId + '\')" title="' + changeLabel + '">' + results.Address1 + '</h3>';
        html += '<a name="Edit" id="edit_button_' + results.EntryId + '" class="actions_icon icon_edit" href="javascript:editAddress(\'' + results.EntryId + '\')" title="' + changeLabel + '"><span>' + changeLabel + '</span></a>';
        html += '<a name="Delete" id="delete_button_' + results.EntryId + '" class="actions_icon icon_delete" href="javascript:deleteAddress(\'' + results.EntryId + '\')" title="' + deleteLabel + '"><span>' + deleteLabel + '</span></a>';        
        
        addressHeader.innerHTML = html;
        
        var addressDetails = generateCommonElement("div","cca_details user_form hide", results.EntryId, "address");
        
        var addressbottomleftcurve = generateCommonElement("div","left_bottomcurve");
        var addressbottomrightcurve = generateCommonElement("div","right_bottomcurve");
        
        addressBlock.appendChild(addresstopleftcurve);
        addressBlock.appendChild(addresstoprightcurve);
        
        addressBlock.appendChild(addressHeader);
        addressBlock.appendChild(addressDetails);        
        addressContainer.appendChild(addressBlock);
        
        addressBlock.appendChild(addressbottomleftcurve);
        addressBlock.appendChild(addressbottomrightcurve);
        
    } else {
        createAlert(Translate("error.noaddresscreated"));
    }
} 

function OnNewAddressInCheckout(results) {
    deleteRequest();
    stopUpdateWindow();
    
    var menu;
    var menu2;
    
    if(results.CompanyId > 0) {
        menu = document.getElementById("select_billing_address");
        menu2 = document.getElementById("select_company_shipping");
    } else {
        menu = document.getElementById("select_user_shipping");
    }
    
    var newOption = document.createElement("option");
    newOption.value = results.EntryId;
    newOption.innerHTML = results.Address1;
    
    if(menu != null) {
        menu.appendChild(newOption);
        menu.style.width = "100%";
    }
        
    if(menu2 != null) {
        var option2 = newOption.cloneNode(true);
        menu2.appendChild(option2);
        menu2.style.width = "100%";
    }

    RefreshDropDown();
}

function RefreshDropDown() {
    if(document.getElementById("select_billing_address")) {
        fillAddressDropDown(document.getElementById("select_billing_address"), document.getElementById("company_id_input"), true);
    }
    
    if(document.getElementById("select_company_shipping")) {
        fillAddressDropDown(document.getElementById("select_company_shipping"), document.getElementById("company_id_input"), true);
    }
    
    if(document.getElementById("select_user_shipping")) {
        fillAddressDropDown(document.getElementById("select_user_shipping"), document.getElementById("user_id_input"), true);
    }
}

function OnAddressError(error) {
    stopUpdateWindow();
    
    createAlert(Translate("error.noaddresscreated") + "<br/><br/>ERROR: " + error.get_message());
}

function ShowHelp(id) {
	var container = $get(id);
	if(container) {
		createAlert(container.innerHTML);
	}
}

function OpenCloseSettings() {
    var container = $get('filter_content');
    if(container) {
        if(container.className.indexOf('show') > 0)
            container.className = container.className.replace('show', 'hide');
        else
            container.className = container.className.replace('hide', 'show');
    }
}

function open_help_window()
{
   var url_add
   if(readCookie('language') != 'en')
   {
     url_add = 'http://is05.ecweb.is/ishelp/';
   }
   else
   {
     url_add = 'http://is05.ecweb.is/enhelp/';
   }

   window.open(url_add,'welcome','width=1000,height=550,menubar=no,status=no,location=no,toolbar=yes,scrollbars=yes');
}
