<!--
function update_help_content(article, update_article_pick_list)
{
    // if article is undefined, then set to the default, which is index
    if ((article === undefined) || (article == '')) {
        article = 'index';
    }
    
    // update content in help dialog
    $.get(
        'get_help_content.php',
        {article: article},
        function(data) {
            document.getElementById('help_dialog_content').innerHTML = data;
            
            // if article picklist needs to be updated, then update it.
            if (update_article_pick_list == true) {
                document.getElementById('help_dialog_pick_list').value = article;
            }
        });
    
    help_dialog_article = article;
}

function get_scroll_height()
{
    var height = 0;
    
    if (window.pageYOffset) {
        height = window.pageYOffset;
    } else if (document.body.scrollTop) {
        height = document.body.scrollTop;
    } else if (document.documentElement.scrollTop) {
        height = document.documentElement.scrollTop;
    }
    
    return height;
}

$(document).ready(function() {
    // if the help button exists, initialize help system
    if (document.getElementById("help_link")) {
        // store original property values for help dialog so that we can determine if values have been changed later
        var original_help_dialog_enabled = help_dialog_enabled;
        var original_help_dialog_width = help_dialog_width;
        var original_help_dialog_height = help_dialog_height;
        var original_help_dialog_top = help_dialog_top;
        var original_help_dialog_left = help_dialog_left;
        var original_help_dialog_update = help_dialog_update;
        var original_help_dialog_article = help_dialog_article;
        
        function update_help_dialog_variables()
        {
            // get properties
            help_dialog_width = $('.standard.ui-dialog').css('width');
            help_dialog_height = $('.standard.ui-dialog').css('height');
            help_dialog_top = $('.standard.ui-dialog').css('top');
            help_dialog_left = $('.standard.ui-dialog').css('left');
            
            // remove "px" from properties
            help_dialog_width = help_dialog_width.substring(0, help_dialog_width.lastIndexOf('p'));
            help_dialog_height = help_dialog_height.substring(0, help_dialog_height.lastIndexOf('p'));
            help_dialog_top = help_dialog_top.substring(0, help_dialog_top.lastIndexOf('p'));
            help_dialog_left = help_dialog_left.substring(0, help_dialog_left.lastIndexOf('p'));
            
            // calculate the height for the help dialog content container and apply it to the help dialog content container
            document.getElementById("help_dialog_content").style.height = parseInt(document.getElementById("help_dialog").style.height) - parseInt($('#help_dialog_header').css('height')) + "px";
        }
        
        // get software directory
        var url = window.location.href;
        var url_parts = url.split('/');
        var software_directory = url_parts[3];
        
        $('#help_dialog').dialog({
            autoOpen: help_dialog_enabled,
            width: help_dialog_width,
            height: help_dialog_height,
            position: [help_dialog_left, help_dialog_top],
            title: 'Help',
            dialogClass: 'standard',
            open: function() {
                $('.standard.ui-dialog').css({
                    top: help_dialog_top + 'px',
                    left: help_dialog_left + 'px',
                    position: 'fixed'
                });
                
                update_help_content(help_dialog_article, false);
                
                $("#help_dialog").css("display", "block");
                
                // calculate the height for the help dialog content container and apply it to the help dialog content container
                document.getElementById("help_dialog_content").style.height = parseInt(document.getElementById("help_dialog").style.height) - parseInt($('#help_dialog_header').css('height')) + "px";
                
                help_dialog_enabled = true;
            },
            close: function() {
                help_dialog_enabled = false;
            },
            dragStop: function() {
                update_help_dialog_variables();
            },
            resizeStop: function() {
                // get the absolute top, so that we can adjust the top based on the scroll height
                // if we don't adjust the top, then the help dialog jumps after resize
                var absolute_top = $('.standard.ui-dialog').css('top');
                absolute_top = absolute_top.substring(0, absolute_top.lastIndexOf('p'));
                
                $('.standard.ui-dialog').css({
                    top: absolute_top - get_scroll_height() + 'px',
                    position: 'fixed'
                });
                
                update_help_dialog_variables();
            }
        });
        
        // when the help link is clicked open the help dialog
        $('#help_link').click(function() {
            $('#help_dialog').dialog('open');
            return false;
        });
        
        document.getElementById('help_dialog_pick_list').onchange = function() {
            update_help_content(this.options[this.selectedIndex].value, false);
        }
        
        // if the pin article check box should be checked, then check it
        if (help_dialog_update == false) {
            document.getElementById('help_dialog_pin_article').checked = true;
        }
        
        document.getElementById('help_dialog_pin_article').onclick = function() {
            // if the pin article check box is checked, then set update to false
            if (document.getElementById('help_dialog_pin_article').checked == true) {
                help_dialog_update = false;
                
            // else the pin article check box is not checked, so set update to true
            } else {
                help_dialog_update = true;
            }
        }
    }
    
    // when the user browses away from this page, check to see if various properties need to be saved
    window.onbeforeunload = function() {
        // if the help button exists and if any of the help dialog properties have changed, then save changes
        if (
            (document.getElementById("help_link"))
            &&
            (
                (original_help_dialog_enabled != help_dialog_enabled)
                || (original_help_dialog_width != help_dialog_width)
                || (original_help_dialog_height != help_dialog_height)
                || (original_help_dialog_top != help_dialog_top)
                || (original_help_dialog_left != help_dialog_left)
                || (original_help_dialog_update != help_dialog_update)
                || ((original_help_dialog_article != help_dialog_article) && (help_dialog_update == false))
            )
        ) {
            // send an AJAX POST in order to save the help dialog properties in the session
            // async is set to false so that the request is sent before the browser window goes to the next page
            $.ajax({
                type: 'POST',
                url: 'save_help_dialog_properties.php',
                data: 'enabled=' + help_dialog_enabled + '&width=' + help_dialog_width + '&height=' + help_dialog_height + '&top=' + help_dialog_top + '&left=' + help_dialog_left + '&update=' + help_dialog_update + '&article=' + help_dialog_article,
                async: false
            });
        }
    };
    
    // Search the document for all tables.
    var chart_table = document.getElementsByTagName("table");
    
    // Loop through the table results.
    for (var i=0; i<=chart_table.length; i++) {
        
        // If a table exists and the class is chart.
        if (chart_table[i] && chart_table[i].className == "chart") {
            
            // Get the rows of that table.
            var chart_table_row = chart_table[i].getElementsByTagName("tr");
            
            // Loop through the table row results.
            for (var x=0; x<=chart_table_row.length; x++) {
                
                // If a table row exists.
                if (chart_table_row[x]) {
                    
                    // Set background variable
                    var background = '';
                    
                    // Check to see if the row contains a table head.
                    if ((chart_table_row[x].firstChild.tagName != 'TH') && (chart_table_row[x].innerHTML.match("<th") == null)) {
                        
                        // Add jquery listener for mouseover.
                        $(chart_table_row[x]).mouseover( function () {
                            
                            // Save background color.
                            background = $(this).css("background-color");
                            // Change the background color.
                            this.style.background = "#FBEDA3";
                        });
                        
                        // Add jquery listener for mouseout.
                        $(chart_table_row[x]).mouseout( function () {
                            
                            // Replace the background color.
                            this.style.background = background;
                        });
                    }
                }
            }
        }
    }
    
    // Add a listener to the select button.
    $("#select_all").click( function () {
        
        // The cycle number is the amount of times we have looped through the results
        var cycle_number = "0";
        
        // Loop through the results
        for (var i=0; i<=chart_table.length; i++) {
            
            // If a table exists and the class is chart.
            if ((chart_table[i]) && (chart_table[i].className == "chart")) {
                
                // Search the document for table cells.
                var chart_table_cell = chart_table[i].getElementsByTagName("td");
                
                // Loop through the results.
                for (var x=0; x<=chart_table_cell.length; x++) {
                    
                    // If table cell exists, if it is not empty, and if the class is checkbox.
                    if ((chart_table_cell[x]) && (chart_table_cell[x].firstChild) && (chart_table_cell[x].firstChild.className == "checkbox")) {
                        
                        // Compaire the Select button to see if the class is Select.
                        if (this.className == "Select" && cycle_number == "0") {
                            
                            // Set the checked variable to true.
                            var checked = true;
                            // Change the Select button's class name to clear.
                            this.className = "Deselect";
                            // Changes the Select button's value to Clear
                            this.firstChild.nodeValue = "Deselect";
                            // sets the cycle number to 1
                            cycle_number = "1";
                        
                        // If the Select button's class is not Select check to see if the class is Clear.
                        } else if (this.className == "Deselect" && cycle_number == "0") {
                            // Set the checked variable to true.
                            var checked = false;
                            // Change the Select button's class name to Select.
                            this.className = "Select";
                            // Changes the Select button's value to Select
                            this.firstChild.nodeValue = "Select";
                            // sets the cycle number to 1
                            cycle_number = "1";
                        
                        // If neither assume that the button's class name is Select
                        } else if (!this.className && cycle_number == "0") {
                            // Set the checked variable to true.
                            var checked = true;
                            // Change the Select button's class name to clear.
                            this.className = "Deselect";
                            // Changes the Select button's value to Clear
                            this.firstChild.nodeValue = "Deselect";
                            cycle_number = "1";
                            // sets the cycle number to 1
                        }
                        
                        // If checked variable is false.
                        if (chart_table_cell[x].firstChild.disabled != true) {
                            if(checked == false) {
                                // Uncheck all checkboxes.
                                chart_table_cell[x].firstChild.checked = false;
                            // If checked variable is true.
                            } else {
                                // Check all checkboxes.
                                chart_table_cell[x].firstChild.checked = true;
                            }
                        }
                    }
                }
            }
        }
    });
});

function check_all(field_name)
{
    for (var i = 0; i < document.forms.length; i++) {
        for (var j = 0; j < document.forms[i].length; j++) {
            if (document.forms[i].elements[j].name == field_name) {
                document.forms[i].elements[j].checked = true;
            }
        }
    }
}

function uncheck_all(field_name)
{
    for (var i = 0; i < document.forms.length; i++) {
        for (var j = 0; j < document.forms[i].length; j++) {
            if (document.forms[i].elements[j].name == field_name) {
                document.forms[i].elements[j].checked = false;
            }
        }
    }
}

function edit_pages(action)
{
    var result;

    switch (action) {
        case 'edit':
            document.form.action.value = 'edit';
            break;
            
        case 'delete':
            document.form.action.value = 'delete';
            result = confirm('WARNING: The selected page(s) will be permanently deleted.')
            break;
    }

    // if user select ok to confirmation, submit form
    if (result == true) {
        document.form.submit();
    }
}

function edit_files(action)
{
    var result;

    switch (action) {
        case 'delete':
            document.form.action.value = 'delete';
            result = confirm('WARNING: The selected files(s) will be permanently deleted.')
            break;
    }

    // if user select ok to confirmation, submit form
    if (result == true) {
        document.form.submit();
    }
}

function edit_contacts(action)
{
    var result;

    switch (action) {
        case 'optin':
            document.form.action.value = 'optin';
            result = confirm('WARNING: The selected contact(s) will be opted-in.')
            break;

        case 'optout':
            document.form.action.value = 'optout';
            result = confirm('WARNING: The selected contact(s) will be opted-out.')
            break;

        case 'delete':
            document.form.action.value = 'delete';
            result = confirm('WARNING: The selected contact(s) will be permanently deleted.')
            break;
            
        case 'merge':
            document.form.action.value = 'merge';
            result = confirm('WARNING: The selected duplicate contact(s) will be merged together.')
            break;
    }

    // if user select ok to confirmation, submit form
    if (result == true) {
        document.form.submit();
    }
}

function change_page_type($page_type)
{
    // hide all objects
    document.getElementById('email_a_friend_submit_button_label_row').style.display = 'none';
    document.getElementById('email_a_friend_next_page_id_row').style.display = 'none';
    document.getElementById('photo_gallery_number_of_thumbnails_row').style.display = 'none';
    document.getElementById('photo_gallery_slideshow_interval_row').style.display = 'none';
    document.getElementById('photo_gallery_thumbnail_width_row').style.display = 'none';
    document.getElementById('photo_gallery_thumbnail_height_row').style.display = 'none';
    document.getElementById('photo_gallery_photo_width_row').style.display = 'none';
    document.getElementById('photo_gallery_photo_height_row').style.display = 'none';
    
    // if e-commerce is on
    if (document.getElementById('order_form_product_layout_row_1')) {
        document.getElementById('catalog_product_group_id_row').style.display = 'none';
        document.getElementById('catalog_menu_row').style.display = 'none';
        document.getElementById('catalog_search_row').style.display = 'none';
        document.getElementById('catalog_number_of_featured_items_row').style.display = 'none';
        document.getElementById('catalog_number_of_new_items_row').style.display = 'none';
        document.getElementById('catalog_number_of_columns_row').style.display = 'none';
        document.getElementById('catalog_image_width_row').style.display = 'none';
        document.getElementById('catalog_image_height_row').style.display = 'none';
        document.getElementById('catalog_back_button_label_row').style.display = 'none';
        document.getElementById('catalog_catalog_detail_page_id_row').style.display = 'none';
        document.getElementById('catalog_detail_allow_customer_to_add_product_to_order_row').style.display = 'none';
        document.getElementById('catalog_detail_add_button_label_row').style.display = 'none';
        document.getElementById('catalog_detail_back_button_label_row').style.display = 'none';
        document.getElementById('catalog_detail_next_page_id_row').style.display = 'none';
        document.getElementById('express_order_shopping_cart_label_row').style.display = 'none';
        document.getElementById('express_order_quick_add_label_row').style.display = 'none';
        document.getElementById('express_order_quick_add_product_group_id_row').style.display = 'none';
        document.getElementById('express_order_shipping_address_and_arrival_page_id_row').style.display = 'none';
        document.getElementById('express_order_special_offer_code_label_row').style.display = 'none';
        document.getElementById('express_order_special_offer_code_message_row').style.display = 'none';
        document.getElementById('express_order_custom_field_1_label_row').style.display = 'none';
        document.getElementById('express_order_custom_field_2_label_row').style.display = 'none';
        document.getElementById('express_order_po_number_row').style.display = 'none';
        document.getElementById('express_order_card_verification_number_page_id_row').style.display = 'none';
        
        if (document.getElementById('express_order_offline_payment_label_row')) {
            document.getElementById('express_order_offline_payment_label_row').style.display = 'none';
        }
        
        document.getElementById('express_order_terms_page_id_row').style.display = 'none';
        document.getElementById('express_order_update_button_label_row').style.display = 'none';
        document.getElementById('express_order_purchase_now_button_label_row').style.display = 'none';
        document.getElementById('express_order_next_page_id_row').style.display = 'none';
        document.getElementById('order_form_product_layout_row_1').style.display = 'none';
        document.getElementById('order_form_product_group_id_row').style.display = 'none';
        document.getElementById('order_form_product_layout_row_1').style.display = 'none';
        document.getElementById('order_form_product_layout_row_2').style.display = 'none';
        document.getElementById('order_form_add_button_label_row').style.display = 'none';
        document.getElementById('order_form_add_button_next_page_id_row').style.display = 'none';
        document.getElementById('order_form_skip_button_label_row').style.display = 'none';
        document.getElementById('order_form_skip_button_next_page_id_row').style.display = 'none';
        
        // if the search results rows exist (i.e. if user has more than a user role), then hide them
        if (document.getElementById('search_results_search_catalog_items_row')) {
            document.getElementById('search_results_search_catalog_items_row').style.display = 'none';
            document.getElementById('search_results_product_group_id_row').style.display = 'none';
            document.getElementById('search_results_catalog_detail_page_id_row').style.display = 'none';
        }
        
        document.getElementById('shopping_cart_shopping_cart_label_row').style.display = 'none';
        document.getElementById('shopping_cart_quick_add_label_row').style.display = 'none';
        document.getElementById('shopping_cart_quick_add_product_group_id_row').style.display = 'none';
        document.getElementById('shopping_cart_special_offer_code_label_row').style.display = 'none';
        document.getElementById('shopping_cart_special_offer_code_message_row').style.display = 'none';
        document.getElementById('shopping_cart_update_button_label_row').style.display = 'none';
        document.getElementById('shopping_cart_checkout_button_label_row').style.display = 'none';
        document.getElementById('shopping_cart_next_page_id_with_shipping_row').style.display = 'none';
        document.getElementById('shopping_cart_next_page_id_without_shipping_row').style.display = 'none';
        document.getElementById('shipping_address_and_arrival_submit_button_label_row').style.display = 'none';
        document.getElementById('shipping_address_and_arrival_next_page_id_row').style.display = 'none';
        document.getElementById('shipping_method_submit_button_label_row').style.display = 'none';
        document.getElementById('shipping_method_next_page_id_row').style.display = 'none';
        document.getElementById('billing_information_custom_field_1_label_row').style.display = 'none';
        document.getElementById('billing_information_custom_field_2_label_row').style.display = 'none';
        document.getElementById('billing_information_po_number_row').style.display = 'none';
        document.getElementById('billing_information_submit_button_label_row').style.display = 'none';
        document.getElementById('billing_information_next_page_id_row').style.display = 'none';
        document.getElementById('order_preview_card_verification_number_page_id_row').style.display = 'none';
        
        if (document.getElementById('order_preview_offline_payment_label_row')) {
            document.getElementById('order_preview_offline_payment_label_row').style.display = 'none';
        }
        
        document.getElementById('order_preview_terms_page_id_row').style.display = 'none';
        document.getElementById('order_preview_submit_button_label_row').style.display = 'none';
        document.getElementById('order_preview_next_page_id_row').style.display = 'none';
    }
    
    // if forms is on
    if (document.getElementById('custom_form_form_name_row')) {
        document.getElementById('custom_form_form_name_row').style.display = 'none';
        document.getElementById('custom_form_enabled_row').style.display = 'none';
        document.getElementById('custom_form_quiz_row').style.display = 'none';
        document.getElementById('custom_form_quiz_pass_percentage_row').style.display = 'none';
        document.getElementById('custom_form_label_column_width_row').style.display = 'none';
        document.getElementById('custom_form_submit_button_label_row').style.display = 'none';
        document.getElementById('custom_form_submitter_email_row').style.display = 'none';
        document.getElementById('custom_form_submitter_email_page_id_row').style.display = 'none';
        document.getElementById('custom_form_submitter_email_from_email_address_row').style.display = 'none';
        document.getElementById('custom_form_submitter_email_subject_row').style.display = 'none';
        document.getElementById('custom_form_administrator_email_row').style.display = 'none';
        document.getElementById('custom_form_administrator_email_page_id_row').style.display = 'none';
        document.getElementById('custom_form_administrator_email_to_email_address_row').style.display = 'none';
        document.getElementById('custom_form_administrator_email_bcc_email_address_row').style.display = 'none';
        document.getElementById('custom_form_administrator_email_subject_row').style.display = 'none';
        document.getElementById('custom_form_contact_group_id_row').style.display = 'none';
        document.getElementById('custom_form_membership_days_row').style.display = 'none';
        document.getElementById('custom_form_next_page_id_row').style.display = 'none';
        document.getElementById('custom_form_confirmation_custom_form_page_id_row').style.display = 'none';
        document.getElementById('custom_form_confirmation_continue_button_label_row').style.display = 'none';
        document.getElementById('custom_form_confirmation_next_page_id_row').style.display = 'none';
        document.getElementById('form_list_view_custom_form_page_id_row').style.display = 'none';
        document.getElementById('form_item_view_custom_form_page_id_row').style.display = 'none';
        document.getElementById('form_item_view_submitted_form_editable_by_registered_user_row').style.display = 'none';
        document.getElementById('form_item_view_submitted_form_editable_by_submitter_row').style.display = 'none';
    }
    
    // if calendars is on
    if (document.getElementById('calendar_view_default_view_row')) {
        document.getElementById('calendar_view_calendars_row').style.display = 'none';
        document.getElementById('calendar_view_default_view_row').style.display = 'none';
        document.getElementById('calendar_view_calendar_event_view_page_id_row').style.display = 'none';
        document.getElementById('calendar_event_view_calendars_row').style.display = 'none';
        document.getElementById('calendar_view_number_of_upcoming_events_row').style.display = 'none';
        document.getElementById('calendar_event_view_notes_row').style.display = 'none';
        document.getElementById('calendar_event_view_back_button_label_row').style.display = 'none';
    }

    // if affiliate program is on
    if (document.getElementById('affiliate_sign_up_form_terms_page_id_row')) {
        document.getElementById('affiliate_sign_up_form_terms_page_id_row').style.display = 'none';
        document.getElementById('affiliate_sign_up_form_submit_button_label_row').style.display = 'none';
        document.getElementById('affiliate_sign_up_form_next_page_id_row').style.display = 'none';
    }

    // show needed objects
    switch ($page_type) {
        case 'email a friend':
            document.getElementById('email_a_friend_submit_button_label_row').style.display = '';
            document.getElementById('email_a_friend_next_page_id_row').style.display = '';
            break;
            
        case 'photo gallery':
            document.getElementById('photo_gallery_number_of_thumbnails_row').style.display = '';
            document.getElementById('photo_gallery_slideshow_interval_row').style.display = '';
            document.getElementById('photo_gallery_thumbnail_width_row').style.display = '';
            document.getElementById('photo_gallery_thumbnail_height_row').style.display = '';
            document.getElementById('photo_gallery_photo_width_row').style.display = '';
            document.getElementById('photo_gallery_photo_height_row').style.display = '';
            break;
            
        case 'custom form':
            document.getElementById('custom_form_form_name_row').style.display = '';
            document.getElementById('custom_form_enabled_row').style.display = '';
            document.getElementById('custom_form_quiz_row').style.display = '';
            
            show_or_hide_quiz();
            
            document.getElementById('custom_form_label_column_width_row').style.display = '';
            document.getElementById('custom_form_submit_button_label_row').style.display = '';
            document.getElementById('custom_form_submitter_email_row').style.display = '';
            document.getElementById('custom_form_submitter_email_page_id_row').style.display = '';
            document.getElementById('custom_form_submitter_email_from_email_address_row').style.display = '';
            document.getElementById('custom_form_submitter_email_subject_row').style.display = '';
            document.getElementById('custom_form_administrator_email_row').style.display = '';
            document.getElementById('custom_form_administrator_email_page_id_row').style.display = '';
            document.getElementById('custom_form_administrator_email_to_email_address_row').style.display = '';
            document.getElementById('custom_form_administrator_email_bcc_email_address_row').style.display = '';
            document.getElementById('custom_form_administrator_email_subject_row').style.display = '';
            document.getElementById('custom_form_contact_group_id_row').style.display = '';
            document.getElementById('custom_form_membership_days_row').style.display = '';
            document.getElementById('custom_form_next_page_id_row').style.display = '';
            break;
        
        case 'custom form confirmation':
            document.getElementById('custom_form_confirmation_custom_form_page_id_row').style.display = '';
            document.getElementById('custom_form_confirmation_continue_button_label_row').style.display = '';
            document.getElementById('custom_form_confirmation_next_page_id_row').style.display = '';
            break;
            
        case 'form list view':
            document.getElementById('form_list_view_custom_form_page_id_row').style.display = '';
            break;
            
        case 'form item view':
            document.getElementById('form_item_view_custom_form_page_id_row').style.display = '';
            document.getElementById('form_item_view_submitted_form_editable_by_registered_user_row').style.display = '';
            show_or_hide_form_item_view_editor();
            break;
            
        case 'calendar view':
            document.getElementById('calendar_view_calendars_row').style.display = '';
            document.getElementById('calendar_view_default_view_row').style.display = '';
            document.getElementById('calendar_view_calendar_event_view_page_id_row').style.display = '';
            
            show_or_hide_calendar_view_number_of_upcoming_events();
            break;
            
        case 'calendar event view':
            document.getElementById('calendar_event_view_calendars_row').style.display = '';
            document.getElementById('calendar_event_view_notes_row').style.display = '';
            document.getElementById('calendar_event_view_back_button_label_row').style.display = '';
            break;
            
        case 'catalog':
            document.getElementById('catalog_product_group_id_row').style.display = '';
            document.getElementById('catalog_menu_row').style.display = '';
            document.getElementById('catalog_search_row').style.display = '';
            document.getElementById('catalog_number_of_featured_items_row').style.display = '';
            document.getElementById('catalog_number_of_new_items_row').style.display = '';
            document.getElementById('catalog_number_of_columns_row').style.display = '';
            document.getElementById('catalog_image_width_row').style.display = '';
            document.getElementById('catalog_image_height_row').style.display = '';
            document.getElementById('catalog_back_button_label_row').style.display = '';
            document.getElementById('catalog_catalog_detail_page_id_row').style.display = '';
            break;
            
        case 'catalog detail':
            document.getElementById('catalog_detail_allow_customer_to_add_product_to_order_row').style.display = '';
            show_or_hide_allow_customer_to_add_product_to_order();
            document.getElementById('catalog_detail_back_button_label_row').style.display = '';
            break;

        case 'express order':
            document.getElementById('express_order_shopping_cart_label_row').style.display = '';
            document.getElementById('express_order_quick_add_label_row').style.display = '';
            document.getElementById('express_order_quick_add_product_group_id_row').style.display = '';
            document.getElementById('express_order_shipping_address_and_arrival_page_id_row').style.display = '';
            document.getElementById('express_order_special_offer_code_label_row').style.display = '';
            document.getElementById('express_order_special_offer_code_message_row').style.display = '';
            document.getElementById('express_order_custom_field_1_label_row').style.display = '';
            document.getElementById('express_order_custom_field_2_label_row').style.display = '';
            document.getElementById('express_order_po_number_row').style.display = '';
            document.getElementById('express_order_card_verification_number_page_id_row').style.display = '';
            
            if (document.getElementById('express_order_offline_payment_label_row')) {
                document.getElementById('express_order_offline_payment_label_row').style.display = '';
            }
            
            document.getElementById('express_order_terms_page_id_row').style.display = '';
            document.getElementById('express_order_update_button_label_row').style.display = '';
            document.getElementById('express_order_purchase_now_button_label_row').style.display = '';
            document.getElementById('express_order_next_page_id_row').style.display = '';
            break;
        
        case 'order form':
            document.getElementById('order_form_product_group_id_row').style.display = '';
            document.getElementById('order_form_product_layout_row_1').style.display = '';
            document.getElementById('order_form_product_layout_row_2').style.display = '';
            document.getElementById('order_form_add_button_label_row').style.display = '';
            document.getElementById('order_form_add_button_next_page_id_row').style.display = '';
            document.getElementById('order_form_skip_button_label_row').style.display = '';
            document.getElementById('order_form_skip_button_next_page_id_row').style.display = '';
            break;

        case 'search results':
            // if e-commerce is on, then show e-commerce fields for search results
            if (document.getElementById('search_results_search_catalog_items_row')) {
                document.getElementById('search_results_search_catalog_items_row').style.display = '';
            
                show_or_hide_search_catalog_items();
            }
            break;

        case 'shopping cart':
            document.getElementById('shopping_cart_shopping_cart_label_row').style.display = '';
            document.getElementById('shopping_cart_quick_add_label_row').style.display = '';
            document.getElementById('shopping_cart_quick_add_product_group_id_row').style.display = '';
            document.getElementById('shopping_cart_special_offer_code_label_row').style.display = '';
            document.getElementById('shopping_cart_special_offer_code_message_row').style.display = '';
            document.getElementById('shopping_cart_update_button_label_row').style.display = '';
            document.getElementById('shopping_cart_checkout_button_label_row').style.display = '';
            document.getElementById('shopping_cart_next_page_id_with_shipping_row').style.display = '';
            document.getElementById('shopping_cart_next_page_id_without_shipping_row').style.display = '';
            break;

        case 'shipping address and arrival':
            document.getElementById('shipping_address_and_arrival_submit_button_label_row').style.display = '';
            document.getElementById('shipping_address_and_arrival_next_page_id_row').style.display = '';
            break;

        case 'shipping method':
            document.getElementById('shipping_method_submit_button_label_row').style.display = '';
            document.getElementById('shipping_method_next_page_id_row').style.display = '';
            break;

        case 'billing information':
            document.getElementById('billing_information_custom_field_1_label_row').style.display = '';
            document.getElementById('billing_information_custom_field_2_label_row').style.display = '';
            document.getElementById('billing_information_po_number_row').style.display = '';
            document.getElementById('billing_information_submit_button_label_row').style.display = '';
            document.getElementById('billing_information_next_page_id_row').style.display = '';
            break;

        case 'order preview':
            document.getElementById('order_preview_card_verification_number_page_id_row').style.display = '';
            
            if (document.getElementById('order_preview_offline_payment_label_row')) {
                document.getElementById('order_preview_offline_payment_label_row').style.display = '';
            }
            
            document.getElementById('order_preview_terms_page_id_row').style.display = '';
            document.getElementById('order_preview_submit_button_label_row').style.display = '';
            document.getElementById('order_preview_next_page_id_row').style.display = '';
            break;
            
        case 'affiliate sign up form':
            document.getElementById('affiliate_sign_up_form_terms_page_id_row').style.display = '';
            document.getElementById('affiliate_sign_up_form_submit_button_label_row').style.display = '';
            document.getElementById('affiliate_sign_up_form_next_page_id_row').style.display = '';
            break;
    }
    
    show_or_hide_form_item_view_comment_fields();
    
    // Get the save button
    var create_button = document.getElementById("create_button");
    
    // If page type equals custom form.
    if (($page_type == 'custom form') && ((document.getElementById("original_form_state") && (document.getElementById("original_form_state").value == "0")))) {
        // Change the save button to save and continue.
        create_button.value = "Save & Continue";
        // Set the current form state to on.
        document.getElementById("current_form_state").value = "1";
    
    // Else if page type does not equal custom form and the save button says save and continue.
    } else if (($page_type == 'custom form') && (!document.getElementById("original_form_state")) && (create_button.value == "Save")) {
        // Change the save button to save and continue.
        create_button.value = "Save & Continue";
        // Set the current form state to on.
        document.getElementById("current_form_state").value = "1";
    } else if (create_button.value = "Save & Continue"){
        // Change the save and continue button to say save.
        create_button.value = "Save";
        // Set the current form state to off.
        document.getElementById("current_form_state").value = "0";
    }
}

function show_or_hide_recurring() {
    if (document.getElementById('recurring').checked == true) {
        document.getElementById('recurring_schedule_editable_by_customer_row').style.display = '';
        
        if (document.getElementById('start_row')) {
            document.getElementById('start_row').style.display = '';
        }
        
        document.getElementById('number_of_payments_row').style.display = '';
        document.getElementById('payment_period_row').style.display = '';
        
        if (document.getElementById('recurring_profile_disabled_perform_actions_row')) {
            document.getElementById('recurring_profile_disabled_perform_actions_row').style.display = '';
            show_or_hide_recurring_profile_disabled_perform_actions();
        }
        
    } else {
        document.getElementById('recurring_schedule_editable_by_customer_row').style.display = 'none';
        
        if (document.getElementById('start_row')) {
            document.getElementById('start_row').style.display = 'none';
        }
        
        document.getElementById('number_of_payments_row').style.display = 'none';
        document.getElementById('payment_period_row').style.display = 'none';
        
        if (document.getElementById('recurring_profile_disabled_perform_actions_row')) {
            document.getElementById('recurring_profile_disabled_perform_actions_row').style.display = 'none';
            document.getElementById('recurring_profile_disabled_expire_membership_row').style.display = 'none';
            document.getElementById('recurring_profile_disabled_revoke_private_access_row').style.display = 'none';
            document.getElementById('recurring_profile_disabled_email_row').style.display = 'none';
            document.getElementById('recurring_profile_disabled_email_subject_row').style.display = 'none';
            document.getElementById('recurring_profile_disabled_email_page_id_row').style.display = 'none';
        }
    }
}

function show_or_hide_recurring_profile_disabled_perform_actions()
{
    if (document.getElementById('recurring_profile_disabled_perform_actions').checked == true) {
        document.getElementById('recurring_profile_disabled_expire_membership_row').style.display = '';
        document.getElementById('recurring_profile_disabled_revoke_private_access_row').style.display = '';
        document.getElementById('recurring_profile_disabled_email_row').style.display = '';
        show_or_hide_recurring_profile_disabled_email();
        
    } else {
        document.getElementById('recurring_profile_disabled_expire_membership_row').style.display = 'none';
        document.getElementById('recurring_profile_disabled_revoke_private_access_row').style.display = 'none';
        document.getElementById('recurring_profile_disabled_email_row').style.display = 'none';
        document.getElementById('recurring_profile_disabled_email_subject_row').style.display = 'none';
        document.getElementById('recurring_profile_disabled_email_page_id_row').style.display = 'none';
    }
}

function show_or_hide_recurring_profile_disabled_email()
{
    if (document.getElementById('recurring_profile_disabled_email').checked == true) {
        document.getElementById('recurring_profile_disabled_email_subject_row').style.display = '';
        document.getElementById('recurring_profile_disabled_email_page_id_row').style.display = '';
        
    } else {
        document.getElementById('recurring_profile_disabled_email_subject_row').style.display = 'none';
        document.getElementById('recurring_profile_disabled_email_page_id_row').style.display = 'none';
    }
}

function show_or_hide_grant_private_access() {
    if (document.getElementById('grant_private_access').checked == true) {
        document.getElementById('private_folder_row').style.display = '';
        document.getElementById('send_to_page_row').style.display = '';
    } else {
        document.getElementById('private_folder_row').style.display = 'none';
        document.getElementById('send_to_page_row').style.display = 'none';
    }
}

function show_or_hide_form() {
    // Put create button in variable to be used by function.
    var create_button = document.getElementById('create_button');
    var current_form_state = document.getElementById('current_form_state');

    if (document.getElementById('product_form').checked == true) {
        document.getElementById('form_name_row').style.display = '';
        document.getElementById('form_label_column_width_row').style.display = '';
        document.getElementById('form_quantity_type_row').style.display = '';
        
        // If the page was loaded with the form turned form off.
        if ((!document.getElementById('original_form_state')) || (document.getElementById('original_form_state').value == "0")) {
            
            // Show form notice
            document.getElementById('form_notice').style.display = '';
            
            // If the user is on the edit product page comeback
            if (document.URL.match("edit_product") == "edit_product") {
                // Change the submit button's value to Save and Continue.
                create_button.value = "Save & Continue";
            
            // Else user is on the add product page.
            } else {
                // Change the submit button's value to Create and Continue.
                create_button.value = "Create & Continue";
            }
            // Change value of form state hidden field.
            current_form_state.value = "1";
        }
        
    } else {
        document.getElementById('form_name_row').style.display = 'none';
        document.getElementById('form_label_column_width_row').style.display = 'none';
        document.getElementById('form_quantity_type_row').style.display = 'none';
        
        // Hide form notice
        if (document.getElementById('form_notice').style.display != 'none') {
            document.getElementById('form_notice').style.display = 'none';
        }
        
        // If the user is on the edit product page comeback
        if (document.URL.match("edit_product") == "edit_product") {
            // Change the submit button's value to Save and Continue.
            create_button.value = "Save";
            
        // Else user is on the add product page.
        } else {
            
            // Change the submit button's value to Create.
            create_button.value = "Create";
        }
        // Change value of form state hidden field.
        current_form_state.value = "0";
    }
}

function show_or_hide_membership_expiration_warning_email() {
    if (document.getElementById('membership_expiration_warning_email').checked == true) {
        document.getElementById('membership_expiration_warning_email_subject').style.display = '';
        document.getElementById('membership_expiration_warning_email_page_id').style.display = '';
        document.getElementById('membership_expiration_warning_email_days_before_expiration').style.display = '';
    } else {
        document.getElementById('membership_expiration_warning_email_subject').style.display = 'none';
        document.getElementById('membership_expiration_warning_email_page_id').style.display = 'none';
        document.getElementById('membership_expiration_warning_email_days_before_expiration').style.display = 'none';
    }
}

function show_or_hide_ecommerce() {
    if (document.getElementById('ecommerce').checked == true) {
        document.getElementById('ecommerce_multicurrency_row').style.display = '';
        document.getElementById('ecommerce_tax_row').style.display = '';
        show_or_hide_ecommerce_tax();
        document.getElementById('ecommerce_shipping_row').style.display = '';
        show_or_hide_ecommerce_shipping();
        document.getElementById('ecommerce_next_order_number_row').style.display = '';
        document.getElementById('ecommerce_email_address_row').style.display = '';
        document.getElementById('ecommerce_gift_card_row').style.display = '';
        show_or_hide_ecommerce_gift_card();
        document.getElementById('ecommerce_payment_methods_row').style.display = '';
        document.getElementById('ecommerce_credit_debit_card_row').style.display = '';
        show_or_hide_ecommerce_credit_debit_card();
        document.getElementById('ecommerce_paypal_express_checkout_row').style.display = '';
        show_or_hide_ecommerce_paypal_express_checkout();
        document.getElementById('ecommerce_offline_payment_row').style.display = '';
        show_or_hide_ecommerce_offline_payment();
        document.getElementById('ecommerce_retrieve_order_next_page_id_row').style.display = '';
        document.getElementById('ecommerce_banned_ip_addresses_id_row').style.display = '';
        
    } else {
        document.getElementById('ecommerce_multicurrency_row').style.display = 'none';
        document.getElementById('ecommerce_tax_row').style.display = 'none';
        document.getElementById('ecommerce_tax_exempt_row').style.display = 'none';
        document.getElementById('ecommerce_tax_exempt_label_row').style.display = 'none';
        document.getElementById('ecommerce_shipping_row').style.display = 'none';
        document.getElementById('ecommerce_recipient_mode_row').style.display = 'none';
        document.getElementById('ecommerce_address_verification_row').style.display = 'none';
        document.getElementById('ecommerce_address_verification_usps_user_id_row').style.display = 'none';
        document.getElementById('ecommerce_product_restriction_message_row').style.display = 'none';
        document.getElementById('ecommerce_no_shipping_methods_message_row').style.display = 'none';
        document.getElementById('ecommerce_end_of_day_time_row').style.display = 'none';
        document.getElementById('ecommerce_next_order_number_row').style.display = 'none';
        document.getElementById('ecommerce_email_address_row').style.display = 'none';
        document.getElementById('ecommerce_gift_card_row').style.display = 'none';
        document.getElementById('ecommerce_givex_primary_hostname_row').style.display = 'none';
        document.getElementById('ecommerce_givex_secondary_hostname_row').style.display = 'none';
        document.getElementById('ecommerce_givex_user_id_row').style.display = 'none';
        document.getElementById('ecommerce_givex_password_row').style.display = 'none';
        document.getElementById('ecommerce_payment_methods_row').style.display = 'none';
        document.getElementById('ecommerce_credit_debit_card_row').style.display = 'none';
        document.getElementById('ecommerce_accepted_cards_row').style.display = 'none';
        document.getElementById('ecommerce_store_card_number_row').style.display = 'none';
        document.getElementById('ecommerce_payment_gateway_row').style.display = 'none';
        document.getElementById('ecommerce_payment_gateway_transaction_type_row').style.display = 'none';
        document.getElementById('ecommerce_payment_gateway_mode_row').style.display = 'none';
        document.getElementById('ecommerce_authorizenet_api_login_id_row').style.display = 'none';
        document.getElementById('ecommerce_authorizenet_transaction_key_row').style.display = 'none';
        document.getElementById('ecommerce_clearcommerce_client_id_row').style.display = 'none';
        document.getElementById('ecommerce_clearcommerce_user_id_row').style.display = 'none';
        document.getElementById('ecommerce_clearcommerce_password_row').style.display = 'none';
        document.getElementById('ecommerce_linkpoint_store_number_row').style.display = 'none';
        document.getElementById('ecommerce_linkpoint_pem_file_name_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_payflow_pro_partner_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_payflow_pro_merchant_login_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_payflow_pro_user_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_payflow_pro_password_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_website_payments_pro_gateway_mode_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_website_payments_pro_api_username_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_website_payments_pro_api_password_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_website_payments_pro_api_signature_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_express_checkout_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_express_checkout_transaction_type_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_express_checkout_mode_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_express_checkout_api_username_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_express_checkout_api_password_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_express_checkout_api_signature_row').style.display = 'none';
        document.getElementById('ecommerce_offline_payment_row').style.display = 'none';
        document.getElementById('ecommerce_offline_payment_only_specific_orders_row').style.display = 'none';
        document.getElementById('ecommerce_retrieve_order_next_page_id_row').style.display = 'none';
        document.getElementById('ecommerce_banned_ip_addresses_id_row').style.display = 'none';
    }
}

function show_or_hide_ecommerce_tax() {
    if (document.getElementById('ecommerce_tax').checked == true) {
        document.getElementById('ecommerce_tax_exempt_row').style.display = '';
        show_or_hide_ecommerce_tax_exempt();
    } else {
        document.getElementById('ecommerce_tax_exempt_row').style.display = 'none';
        document.getElementById('ecommerce_tax_exempt_label_row').style.display = 'none';
    }
}

function show_or_hide_ecommerce_tax_exempt() {
    if (document.getElementById('ecommerce_tax_exempt').checked == true) {
        document.getElementById('ecommerce_tax_exempt_label_row').style.display = '';
    } else {
        document.getElementById('ecommerce_tax_exempt_label_row').style.display = 'none';
    }
}

function show_or_hide_search_catalog_items()
{
    if (document.getElementById('search_results_search_catalog_items').checked == true) {
        document.getElementById('search_results_product_group_id_row').style.display = '';
        document.getElementById('search_results_catalog_detail_page_id_row').style.display = '';
        
    } else {
        document.getElementById('search_results_product_group_id_row').style.display = 'none';
        document.getElementById('search_results_catalog_detail_page_id_row').style.display = 'none';
    }
}

function show_or_hide_calendar_view_number_of_upcoming_events()
{
    if ((document.getElementById('calendar_view_default_view').options[document.getElementById('calendar_view_default_view').selectedIndex].value == 'upcoming')
        && (document.getElementById('calendar_view_number_of_upcoming_events_row').style.display == 'none')) {
        document.getElementById('calendar_view_number_of_upcoming_events_row').style.display = '';
        
    } else {
        document.getElementById('calendar_view_number_of_upcoming_events_row').style.display = 'none';
    }
}

function show_or_hide_ecommerce_shipping() {
    if (document.getElementById('ecommerce_shipping').checked == true) {
        document.getElementById('ecommerce_recipient_mode_row').style.display = '';
        document.getElementById('ecommerce_address_verification_row').style.display = '';
        show_or_hide_ecommerce_address_verification();
        document.getElementById('ecommerce_product_restriction_message_row').style.display = '';
        document.getElementById('ecommerce_no_shipping_methods_message_row').style.display = '';
        document.getElementById('ecommerce_end_of_day_time_row').style.display = '';
    } else {
        document.getElementById('ecommerce_recipient_mode_row').style.display = 'none';
        document.getElementById('ecommerce_address_verification_row').style.display = 'none';
        document.getElementById('ecommerce_address_verification_usps_user_id_row').style.display = 'none';
        document.getElementById('ecommerce_product_restriction_message_row').style.display = 'none';
        document.getElementById('ecommerce_no_shipping_methods_message_row').style.display = 'none';
        document.getElementById('ecommerce_end_of_day_time_row').style.display = 'none';
    }
}

function show_or_hide_ecommerce_address_verification() {
    if (document.getElementById('ecommerce_address_verification').checked == true) {
        document.getElementById('ecommerce_address_verification_usps_user_id_row').style.display = '';
    } else {
        document.getElementById('ecommerce_address_verification_usps_user_id_row').style.display = 'none';
    }
}

function show_or_hide_ecommerce_gift_card()
{
    if (document.getElementById('ecommerce_gift_card').checked == true) {
        document.getElementById('ecommerce_givex_primary_hostname_row').style.display = '';
        document.getElementById('ecommerce_givex_secondary_hostname_row').style.display = '';
        document.getElementById('ecommerce_givex_user_id_row').style.display = '';
        document.getElementById('ecommerce_givex_password_row').style.display = '';
        
    } else {
        document.getElementById('ecommerce_givex_primary_hostname_row').style.display = 'none';
        document.getElementById('ecommerce_givex_secondary_hostname_row').style.display = 'none';
        document.getElementById('ecommerce_givex_user_id_row').style.display = 'none';
        document.getElementById('ecommerce_givex_password_row').style.display = 'none';
    }
}

function show_or_hide_ecommerce_credit_debit_card()
{
    if (document.getElementById('ecommerce_credit_debit_card').checked == true) {
        document.getElementById('ecommerce_accepted_cards_row').style.display = '';
        document.getElementById('ecommerce_store_card_number_row').style.display = '';
        document.getElementById('ecommerce_payment_gateway_row').style.display = '';
    } else {
        document.getElementById('ecommerce_accepted_cards_row').style.display = 'none';
        document.getElementById('ecommerce_store_card_number_row').style.display = 'none';
        document.getElementById('ecommerce_payment_gateway_row').style.display = 'none';
    }
    
    show_or_hide_ecommerce_payment_gateway();
}

function show_or_hide_ecommerce_offline_payment()
{
    if (document.getElementById('ecommerce_offline_payment').checked == true) {
        document.getElementById('ecommerce_offline_payment_only_specific_orders_row').style.display = '';
    } else {
        document.getElementById('ecommerce_offline_payment_only_specific_orders_row').style.display = 'none';
    }
}

function show_or_hide_ecommerce_paypal_express_checkout()
{
    if (document.getElementById('ecommerce_paypal_express_checkout').checked == true) {
        document.getElementById('ecommerce_paypal_express_checkout_transaction_type_row').style.display = '';
        document.getElementById('ecommerce_paypal_express_checkout_mode_row').style.display = '';
        document.getElementById('ecommerce_paypal_express_checkout_api_username_row').style.display = '';
        document.getElementById('ecommerce_paypal_express_checkout_api_password_row').style.display = '';
        document.getElementById('ecommerce_paypal_express_checkout_api_signature_row').style.display = '';
    } else {
        document.getElementById('ecommerce_paypal_express_checkout_transaction_type_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_express_checkout_mode_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_express_checkout_api_username_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_express_checkout_api_password_row').style.display = 'none';
        document.getElementById('ecommerce_paypal_express_checkout_api_signature_row').style.display = 'none';
    }
}

function show_or_hide_ecommerce_payment_gateway() {
    // hide all payment gateway fields until we determine which should be displayed
    document.getElementById('ecommerce_payment_gateway_transaction_type_row').style.display = 'none';
    document.getElementById('ecommerce_payment_gateway_mode_row').style.display = 'none';
    document.getElementById('ecommerce_authorizenet_api_login_id_row').style.display = 'none';
    document.getElementById('ecommerce_authorizenet_transaction_key_row').style.display = 'none';
    document.getElementById('ecommerce_clearcommerce_client_id_row').style.display = 'none';
    document.getElementById('ecommerce_clearcommerce_user_id_row').style.display = 'none';
    document.getElementById('ecommerce_clearcommerce_password_row').style.display = 'none';
    document.getElementById('ecommerce_linkpoint_store_number_row').style.display = 'none';
    document.getElementById('ecommerce_linkpoint_pem_file_name_row').style.display = 'none';
    document.getElementById('ecommerce_paypal_payflow_pro_partner_row').style.display = 'none';
    document.getElementById('ecommerce_paypal_payflow_pro_merchant_login_row').style.display = 'none';
    document.getElementById('ecommerce_paypal_payflow_pro_user_row').style.display = 'none';
    document.getElementById('ecommerce_paypal_payflow_pro_password_row').style.display = 'none';
    document.getElementById('ecommerce_paypal_website_payments_pro_gateway_mode_row').style.display = 'none';
    document.getElementById('ecommerce_paypal_website_payments_pro_api_username_row').style.display = 'none';
    document.getElementById('ecommerce_paypal_website_payments_pro_api_password_row').style.display = 'none';
    document.getElementById('ecommerce_paypal_website_payments_pro_api_signature_row').style.display = 'none';
    
    // if credit/debit card is checked, the prepare to show fields
    if (document.getElementById('ecommerce_credit_debit_card').checked == true) {
        // show different fields depending on payment gateway choice
        switch (document.getElementById('ecommerce_payment_gateway').options[document.getElementById('ecommerce_payment_gateway').selectedIndex].value) {
            case 'Authorize.Net':
                document.getElementById('ecommerce_payment_gateway_transaction_type_row').style.display = '';
                document.getElementById('ecommerce_payment_gateway_mode_row').style.display = '';
                document.getElementById('ecommerce_authorizenet_api_login_id_row').style.display = '';
                document.getElementById('ecommerce_authorizenet_transaction_key_row').style.display = '';
                break;
                
            case 'ClearCommerce':
                document.getElementById('ecommerce_payment_gateway_transaction_type_row').style.display = '';
                document.getElementById('ecommerce_payment_gateway_mode_row').style.display = '';
                document.getElementById('ecommerce_clearcommerce_client_id_row').style.display = '';
                document.getElementById('ecommerce_clearcommerce_user_id_row').style.display = '';
                document.getElementById('ecommerce_clearcommerce_password_row').style.display = '';
                break;
                
            case 'LinkPoint':
                document.getElementById('ecommerce_payment_gateway_transaction_type_row').style.display = '';
                document.getElementById('ecommerce_payment_gateway_mode_row').style.display = '';
                document.getElementById('ecommerce_linkpoint_store_number_row').style.display = '';
                document.getElementById('ecommerce_linkpoint_pem_file_name_row').style.display = '';
                break;
            
            case 'PayPal Payflow Pro':
                document.getElementById('ecommerce_payment_gateway_transaction_type_row').style.display = '';
                document.getElementById('ecommerce_payment_gateway_mode_row').style.display = '';
                document.getElementById('ecommerce_paypal_payflow_pro_partner_row').style.display = '';
                document.getElementById('ecommerce_paypal_payflow_pro_merchant_login_row').style.display = '';
                document.getElementById('ecommerce_paypal_payflow_pro_user_row').style.display = '';
                document.getElementById('ecommerce_paypal_payflow_pro_password_row').style.display = '';
                break;
                
            case 'PayPal Website Payments Pro':
                document.getElementById('ecommerce_payment_gateway_transaction_type_row').style.display = '';
                document.getElementById('ecommerce_paypal_website_payments_pro_gateway_mode_row').style.display = '';
                document.getElementById('ecommerce_paypal_website_payments_pro_api_username_row').style.display = '';
                document.getElementById('ecommerce_paypal_website_payments_pro_api_password_row').style.display = '';
                document.getElementById('ecommerce_paypal_website_payments_pro_api_signature_row').style.display = '';
                break;
        }
    }
}

function show_or_hide_shippable() {
    if (document.getElementById('shippable').checked == true) {
        document.getElementById('primary_weight_points_row').style.display = '';
        document.getElementById('secondary_weight_points_row').style.display = '';
        document.getElementById('preparation_time_row').style.display = '';
        document.getElementById('free_shipping_row').style.display = '';
        show_or_hide_free_shipping();
        document.getElementById('allowed_zones_row').style.display = '';
    } else {
        document.getElementById('primary_weight_points_row').style.display = 'none';
        document.getElementById('secondary_weight_points_row').style.display = 'none';
        document.getElementById('preparation_time_row').style.display = 'none';
        document.getElementById('free_shipping_row').style.display = 'none';
        document.getElementById('extra_shipping_cost_row').style.display = 'none';
        document.getElementById('allowed_zones_row').style.display = 'none';
    }
}

function show_or_hide_free_shipping() {
    if (document.getElementById('free_shipping').checked == true) {
        document.getElementById('extra_shipping_cost_row').style.display = 'none';
    } else {
        document.getElementById('extra_shipping_cost_row').style.display = '';
    }
}

function show_or_hide_commissionable() {
    if (document.getElementById('commissionable').checked == true) {
        document.getElementById('commission_rate_limit_row').style.display = '';
    } else {
        document.getElementById('commission_rate_limit_row').style.display = 'none';
    }
}

function show_or_hide_affiliate_program() {
    if (document.getElementById('affiliate_program').checked == true) {
        document.getElementById('affiliate_default_commission_rate_row').style.display = '';
        document.getElementById('affiliate_automatic_approval_row').style.display = '';
        document.getElementById('affiliate_contact_group_id_row').style.display = '';
        document.getElementById('affiliate_email_address_row').style.display = '';
    } else {
        document.getElementById('affiliate_default_commission_rate_row').style.display = 'none';
        document.getElementById('affiliate_automatic_approval_row').style.display = 'none';
        document.getElementById('affiliate_contact_group_id_row').style.display = 'none';
        document.getElementById('affiliate_email_address_row').style.display = 'none';
    }
}

function show_or_hide_translation() {
    if (document.getElementById('translation').checked == true) {
        document.getElementById('translation_api_id_row').style.display = '';
        document.getElementById('translation_source_language_row').style.display = '';
        document.getElementById('translation_target_language_row').style.display = '';
    } else {
        document.getElementById('translation_api_id_row').style.display = 'none';
        document.getElementById('translation_source_language_row').style.display = 'none';
        document.getElementById('translation_target_language_row').style.display = 'none';
    }
}

function show_or_hide_upsell() {
    if (document.getElementById('upsell').checked == true) {
        document.getElementById('upsell_message_row').style.display = '';
        document.getElementById('upsell_triggers_row').style.display = '';
        document.getElementById('upsell_trigger_subtotal_row').style.display = '';
        document.getElementById('upsell_and_or_row').style.display = '';
        document.getElementById('upsell_trigger_quantity_row').style.display = '';
        document.getElementById('upsell_action_button_label_row').style.display = '';
        document.getElementById('upsell_action_page_id_row').style.display = '';
    } else {
        document.getElementById('upsell_message_row').style.display = 'none';
        document.getElementById('upsell_triggers_row').style.display = 'none';
        document.getElementById('upsell_trigger_subtotal_row').style.display = 'none';
        document.getElementById('upsell_and_or_row').style.display = 'none';
        document.getElementById('upsell_trigger_quantity_row').style.display = 'none';
        document.getElementById('upsell_action_button_label_row').style.display = 'none';
        document.getElementById('upsell_action_page_id_row').style.display = 'none';
    }
}

function show_or_hide_multiple_recipients() {
    if (document.getElementById('order').checked == true) {
        document.getElementById('multiple_recipients_row').style.display = 'none';
    } else {
        document.getElementById('multiple_recipients_row').style.display = '';
    }
}

function show_or_hide_email_subscription() {
    if (document.getElementById('email_subscription').checked == true) {
        document.getElementById('email_subscription_type_row').style.display = '';
        document.getElementById('description_row').style.display = '';
        document.getElementById('description_heading_row').style.display = '';
    } else {
        document.getElementById('email_subscription_type_row').style.display = 'none';
        document.getElementById('description_row').style.display = 'none';
        document.getElementById('description_heading_row').style.display = 'none';
    }
}

function show_or_hide_contact_group_opt_in(contact_group_id) {
    if (document.getElementById('contact_group_' + contact_group_id).checked == true) {
        document.getElementById('contact_group_opt_in_cell_' + contact_group_id).style.display = '';
    } else {
        document.getElementById('contact_group_opt_in_cell_' + contact_group_id).style.display = 'none';
    }
}

function show_or_hide_calendar_access() {
    if (document.getElementById('manage_calendars').checked == true) {
        document.getElementById('calendar_access').style.display = '';
        document.getElementById('publish_calendar_events_container').style.display = '';
    } else {
        document.getElementById('calendar_access').style.display = 'none';
        document.getElementById('publish_calendar_events_container').style.display = 'none';
    }
}

function show_or_hide_contact_group_access() {
    if ((document.getElementById('manage_contacts').checked == true) || (document.getElementById('manage_emails').checked == true)) {
        document.getElementById('contact_group_access').style.display = '';
    } else {
        document.getElementById('contact_group_access').style.display = 'none';
    }
}

function show_or_hide_quiz() {
    if (document.getElementById('custom_form_quiz').checked == true) {
        document.getElementById('custom_form_quiz_pass_percentage_row').style.display = '';
    } else {
        document.getElementById('custom_form_quiz_pass_percentage_row').style.display = 'none';
    }
}

function show_or_hide_allow_customer_to_add_product_to_order() {
    if (document.getElementById('catalog_detail_allow_customer_to_add_product_to_order').checked == true) {
        document.getElementById('catalog_detail_add_button_label_row').style.display = '';
        document.getElementById('catalog_detail_next_page_id_row').style.display = '';
    } else {
        document.getElementById('catalog_detail_add_button_label_row').style.display = 'none';
        document.getElementById('catalog_detail_next_page_id_row').style.display = 'none';
    }
}

function show_or_hide_quiz_question() {
    if (document.getElementById('quiz_question').checked == true) {
        document.getElementById('quiz_answer_row').style.display = '';
    } else {
        document.getElementById('quiz_answer_row').style.display = 'none';
    }
}

function show_or_hide_custom() {
    if (document.getElementById('custom').checked == true) {
        document.getElementById('custom_maximum_arrival_date_row').style.display = '';
    } else {
        document.getElementById('custom_maximum_arrival_date_row').style.display = 'none';
    }
}

function show_or_hide_comments()
{
    // if comments is checked then prepare to show rows
    if (document.getElementById('comments').checked == true) {
        document.getElementById('comments_automatic_publish_row').style.display = '';
        document.getElementById('comments_administrator_email_row').style.display = '';
        document.getElementById('comments_administrator_email_to_email_address_row').style.display = '';
        document.getElementById('comments_administrator_email_subject_row').style.display = '';
        
        show_or_hide_form_item_view_comment_fields();
    
    // else hide all rows
    } else {
        document.getElementById('comments_automatic_publish_row').style.display = 'none';
        document.getElementById('comments_administrator_email_row').style.display = 'none';
        document.getElementById('comments_administrator_email_to_email_address_row').style.display = 'none';
        document.getElementById('comments_administrator_email_subject_row').style.display = 'none';
        document.getElementById('comments_administrator_email_conditional_administrators_row').style.display = 'none';
        document.getElementById('comments_submitter_email_row').style.display = 'none';
        document.getElementById('comments_submitter_email_page_id_row').style.display = 'none';
        document.getElementById('comments_submitter_email_subject_row').style.display = 'none';
    }
}

function show_or_hide_form_item_view_comment_fields()
{
    // get page type
    var page_type = document.getElementById('page_type').options[document.getElementById('page_type').selectedIndex].value;
    
    // if comments are enabled and the page type is form item view then show rows
    if ((document.getElementById('comments').checked == true) && (page_type == 'form item view')) {
        document.getElementById('comments_administrator_email_conditional_administrators_row').style.display = '';
        document.getElementById('comments_submitter_email_row').style.display = '';
        document.getElementById('comments_submitter_email_page_id_row').style.display = '';
        document.getElementById('comments_submitter_email_subject_row').style.display = '';
        
    // else hide rows
    } else {
        document.getElementById('comments_administrator_email_conditional_administrators_row').style.display = 'none';
        document.getElementById('comments_submitter_email_row').style.display = 'none';
        document.getElementById('comments_submitter_email_page_id_row').style.display = 'none';
        document.getElementById('comments_submitter_email_subject_row').style.display = 'none';
    }
}

function move_options(left_element_id, right_element_id, direction) {
    left = document.getElementById(left_element_id);
    right = document.getElementById(right_element_id);

    if (direction != 'left') {
        var tmp;
        tmp = left;
        left = right;
        right = tmp;
    }

    while(right.selectedIndex != -1) {
        left.options[left.options.length] = new Option(right.options[right.selectedIndex].text, right.options[right.selectedIndex].value);
        right.options[right.selectedIndex] = null;
    }
}

function prepare_selects(elements) {
    for (i = 0; i < elements.length; i++) {
        if (document.getElementById(elements[i])) {
            if (document.getElementById(elements[i] + "_hidden").value == '') {
                for (x = 0; x < document.getElementById(elements[i]).options.length; x++) {
                    document.getElementById(elements[i] + "_hidden").value += document.getElementById(elements[i]).options[x].value + ",";
                }
            }
        }
    }
    return true;
}

function change_offer_action_type($offer_action_type)
{
    // hide all objects
    document.getElementById('discount_order').style.display = 'none';
    document.getElementById('discount_product').style.display = 'none';
    document.getElementById('add_product').style.display = 'none';
    document.getElementById('discount_shipping').style.display = 'none';

    // show needed objects
    switch ($offer_action_type) {
        case 'discount order':
            document.getElementById('discount_order').style.display = '';
            break;

        case 'discount product':
            document.getElementById('discount_product').style.display = '';
            break;

        case 'add product':
            document.getElementById('add_product').style.display = '';
            break;
            
        case 'discount shipping':
            document.getElementById('discount_shipping').style.display = '';
            break;
    }
}

function change_field_type($field_type)
{
    // hide all objects
    document.getElementById('name_row').style.display = 'none';
    if (document.getElementById('rss_field_row')) {
        document.getElementById('rss_field_heading').style.display = 'none';
        document.getElementById('rss_field_row').style.display = 'none';
    }
    document.getElementById('name_row_header').style.display = 'none';
    document.getElementById('label_row').style.display = 'none';
    document.getElementById('label_row_header').style.display = 'none';
    document.getElementById('required_row').style.display = 'none';
    document.getElementById('required_row_header').style.display = 'none';
            
    // if upload_folder_id_row exists
    if (document.getElementById('upload_folder_id_row')) {
        document.getElementById('upload_folder_id_row').style.display = 'none';
        document.getElementById('upload_folder_id_row_header').style.display = 'none';
    }

    document.getElementById('default_value_row').style.display = 'none';
    document.getElementById('default_value_row_header').style.display = 'none';
    document.getElementById('position_row').style.display = 'none';
    document.getElementById('size_row').style.display = 'none';
    document.getElementById('maxlength_row').style.display = 'none';
    document.getElementById('wysiwyg_row').style.display = 'none';
    document.getElementById('wysiwyg_row_header').style.display = 'none';
    document.getElementById('rows_row').style.display = 'none';
    document.getElementById('rows_row_header').style.display = 'none';
    document.getElementById('cols_row').style.display = 'none';
    document.getElementById('multiple_row').style.display = 'none';
    document.getElementById('multiple_row_header').style.display = 'none';
    document.getElementById('spacing_row').style.display = 'none';
    
    // if contact_field_row exists
    if (document.getElementById('contact_field_row')) {
        document.getElementById('contact_field_row').style.display = 'none';
        document.getElementById('contact_field_row_header').style.display = 'none';
    }
    
    // if office_use_only_row exists
    if (document.getElementById('office_use_only_row')) {
        document.getElementById('office_use_only_row').style.display = 'none';
        document.getElementById('office_use_only_row_header').style.display = 'none';
    }
    
    // if quiz is enabled for this custom form
    if (document.getElementById('quiz_question_row')) {
        document.getElementById('quiz_question_row').style.display = 'none';
        document.getElementById('quiz_answer_row').style.display = 'none';
    }
    
    document.getElementById('choices_row').style.display = 'none';
    document.getElementById('information_row').style.display = 'none';

    // show needed objects
    switch ($field_type) {
        case 'text box':
            document.getElementById('name_row').style.display = '';
            if (document.getElementById('rss_field_row')) {
                document.getElementById('rss_field_heading').style.display = '';
                document.getElementById('rss_field_row').style.display = '';
            }
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('label_row_header').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('required_row_header').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('default_value_row_header').style.display = '';
            document.getElementById('size_row').style.display = '';
            document.getElementById('maxlength_row').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if contact_field_row exists
            if (document.getElementById('contact_field_row')) {
                document.getElementById('contact_field_row').style.display = '';
                document.getElementById('contact_field_row_header').style.display = '';
            }
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }
            
            // if quiz is enabled for this custom form
            if (document.getElementById('quiz_question_row')) {
                document.getElementById('quiz_question_row').style.display = '';
                show_or_hide_quiz_question();
            }
            
            break;
        
        case 'text area':
            document.getElementById('name_row').style.display = '';
            if (document.getElementById('rss_field_row')) {
                document.getElementById('rss_field_heading').style.display = '';
                document.getElementById('rss_field_row').style.display = '';
            }
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('label_row_header').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('required_row_header').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('default_value_row_header').style.display = '';
            document.getElementById('wysiwyg_row').style.display = '';
            document.getElementById('wysiwyg_row_header').style.display = '';
            document.getElementById('rows_row').style.display = '';
            document.getElementById('rows_row_header').style.display = '';
            document.getElementById('cols_row').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if contact_field_row exists
            if (document.getElementById('contact_field_row')) {
                document.getElementById('contact_field_row').style.display = '';
                document.getElementById('contact_field_row_header').style.display = '';
            }
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }
            break;

        case 'pick list':
            document.getElementById('name_row').style.display = '';
            if (document.getElementById('rss_field_row')) {
                document.getElementById('rss_field_heading').style.display = '';
                document.getElementById('rss_field_row').style.display = '';
            }
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('label_row_header').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('required_row_header').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('default_value_row_header').style.display = '';
            document.getElementById('size_row').style.display = '';
            document.getElementById('multiple_row').style.display = '';
            document.getElementById('multiple_row_header').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if contact_field_row exists
            if (document.getElementById('contact_field_row')) {
                document.getElementById('contact_field_row').style.display = '';
                document.getElementById('contact_field_row_header').style.display = '';
            }
            
            document.getElementById('choices_row').style.display = '';
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }
            
            // if quiz is enabled for this custom form
            if (document.getElementById('quiz_question_row')) {
                document.getElementById('quiz_question_row').style.display = '';
                show_or_hide_quiz_question();
            }
            
            break;

        case 'radio button':
            document.getElementById('name_row').style.display = '';
            if (document.getElementById('rss_field_row')) {
                document.getElementById('rss_field_heading').style.display = '';
                document.getElementById('rss_field_row').style.display = '';
            }
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('label_row_header').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('required_row_header').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('default_value_row_header').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if contact_field_row exists
            if (document.getElementById('contact_field_row')) {
                document.getElementById('contact_field_row').style.display = '';
                document.getElementById('contact_field_row_header').style.display = '';
            }
            
            document.getElementById('choices_row').style.display = '';
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }

            // if quiz is enabled for this custom form
            if (document.getElementById('quiz_question_row')) {
                document.getElementById('quiz_question_row').style.display = '';
                show_or_hide_quiz_question();
            }
            
            break;

        case 'check box':
            document.getElementById('name_row').style.display = '';
            if (document.getElementById('rss_field_row')) {
                document.getElementById('rss_field_heading').style.display = '';
                document.getElementById('rss_field_row').style.display = '';
            }
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('label_row_header').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('required_row_header').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('default_value_row_header').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if contact_field_row exists
            if (document.getElementById('contact_field_row')) {
                document.getElementById('contact_field_row').style.display = '';
                document.getElementById('contact_field_row_header').style.display = '';
            }
            document.getElementById('choices_row').style.display = '';
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }

            // if quiz is enabled for this custom form
            if (document.getElementById('quiz_question_row')) {
                document.getElementById('quiz_question_row').style.display = '';
                show_or_hide_quiz_question();
            }
            
            break;
            
        case 'file upload':
            document.getElementById('name_row').style.display = '';
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('label_row_header').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('required_row_header').style.display = '';
            document.getElementById('upload_folder_id_row').style.display = '';
            document.getElementById('upload_folder_id_row_header').style.display = '';
            document.getElementById('size_row').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }
            break;
            
        case 'date':
            document.getElementById('name_row').style.display = '';
            if (document.getElementById('rss_field_row')) {
                document.getElementById('rss_field_heading').style.display = '';
                document.getElementById('rss_field_row').style.display = '';
            }
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('label_row_header').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('required_row_header').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('default_value_row_header').style.display = '';
            document.getElementById('size_row').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }

            // if quiz is enabled for this custom form
            if (document.getElementById('quiz_question_row')) {
                document.getElementById('quiz_question_row').style.display = '';
                show_or_hide_quiz_question();
            }
            
            break;
            
        case 'date and time':
            document.getElementById('name_row').style.display = '';
            if (document.getElementById('rss_field_row')) {
                document.getElementById('rss_field_heading').style.display = '';
                document.getElementById('rss_field_row').style.display = '';
            }
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('label_row_header').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('required_row_header').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('default_value_row_header').style.display = '';
            document.getElementById('size_row').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }

            // if quiz is enabled for this custom form
            if (document.getElementById('quiz_question_row')) {
                document.getElementById('quiz_question_row').style.display = '';
                show_or_hide_quiz_question();
            }
            
            break;
            
        case 'email address':
            document.getElementById('name_row').style.display = '';
            if (document.getElementById('rss_field_row')) {
                document.getElementById('rss_field_heading').style.display = '';
                document.getElementById('rss_field_row').style.display = '';
            }
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('label_row_header').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('required_row_header').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('default_value_row_header').style.display = '';
            document.getElementById('size_row').style.display = '';
            document.getElementById('maxlength_row').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if contact_field_row exists
            if (document.getElementById('contact_field_row')) {
                document.getElementById('contact_field_row').style.display = '';
                document.getElementById('contact_field_row_header').style.display = '';
            }
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }

            // if quiz is enabled for this custom form
            if (document.getElementById('quiz_question_row')) {
                document.getElementById('quiz_question_row').style.display = '';
                show_or_hide_quiz_question();
            }
            
            break;

        case 'information':
            document.getElementById('name_row').style.display = '';
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('information_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }
            
            if (tinyMCE.getInstanceById('information') == null) {
                tinyMCE.execCommand('mceAddControl', false, 'information');
            }
            
            break;
            
        case 'time':
            document.getElementById('name_row').style.display = '';
            if (document.getElementById('rss_field_row')) {
                document.getElementById('rss_field_heading').style.display = '';
                document.getElementById('rss_field_row').style.display = '';
            }
            document.getElementById('name_row_header').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('label_row_header').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('required_row_header').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('default_value_row_header').style.display = '';
            document.getElementById('size_row').style.display = '';
            document.getElementById('spacing_row').style.display = '';
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
                document.getElementById('office_use_only_row_header').style.display = '';
            }

            // if quiz is enabled for this custom form
            if (document.getElementById('quiz_question_row')) {
                document.getElementById('quiz_question_row').style.display = '';
                show_or_hide_quiz_question();
            }
            
            break;
    }
}

function createXMLHttpRequest() {
    if (window.XMLHttpRequest) {
        try {
            return new XMLHttpRequest();
        } catch(error) {
            return false;
        }
    } else if (window.ActiveXObject) {
        try {
            return new ActiveXObject("Microsoft.XMLHTTP");
        } catch(error) {
            return false;
        }
    }
}

function check_upload(file_path)
{
    // get file name
    if (file_path.indexOf('/') > -1) {
        var file_name = file_path.substring(file_path.lastIndexOf('/') + 1);
    } else {
        var file_name = file_path.substring(file_path.lastIndexOf('\\') + 1);
    }
    
    // get file extension
    var file_name_parts = file_name.split('.');
    var file_extension = file_name_parts[file_name_parts.length - 1];
    
    // if this upload form allows for zip file extraction and file is a zip file, then ask user if user wants to extract zip file
    if (document.form.extract && (file_extension == 'zip')) {
        if (confirm('Would you like to extract the ZIP file?  If a file name already exists, the new file will be given a unique name.') == true) {
            document.form.extract.value = 'true';
        }
    }
    
    // if the file is not being extracted, then check if file exists
    if (!document.form.extract || (document.form.extract.value != 'true')) {
        var requester = createXMLHttpRequest();

        requester.onreadystatechange =
            function ()
            {
                // if XMLHttpRequest communication is complete
                if (requester.readyState == 4) {
                    var temp = requester.responseXML.getElementsByTagName("response");
                    var response = temp[0].firstChild.nodeValue;
                    
                    if (response == 'upload') {
                        document.form.submit();
                        
                    } else if (response == 'overwrite') {
                        if (confirm('There is already a file named "' + file_name + '".  Would you like to replace the existing file?') == true) {
                            document.form.overwrite.value = 'true';
                            document.form.submit();
                        }
                        
                    } else if (response == 'access denied') {
                        alert('There is already a file named "' + file_name + '".  You do not have access to replace the file. Please rename the file on your computer and try again.');
                    }
                }
            };
        
        // get software directory
        var url = window.location.href;
        var url_parts = url.split('/');
        var software_directory = url_parts[3];

        requester.open("GET", "/" + software_directory + "/check_if_file_exists.php?file_name=" + encodeURIComponent(file_name));
        requester.send(null);
        
        return false;
        
    // else the file is being extracted
    } else {
        return true;
    }
}

function export_forms()
{
    if (document.getElementById('custom_form')) {
        if (document.getElementById('custom_form').value != '[All]') {
            return true;
        } else {
            alert('You may only export forms from one custom form at a time. Please select only one custom form in the filters and try again.');
            return false;
        }
        
    } else {
        var number_of_selected_custom_forms = 0;

        for (var i = 0; i < document.forms.length; i++) {
            for (var j = 0; j < document.forms[i].length; j++) {
                if ((document.forms[i].elements[j].name == 'custom_forms[]') && (document.forms[i].elements[j].checked == true)) {
                    number_of_selected_custom_forms++;
                }
            }
        }
        
        if (number_of_selected_custom_forms == 1) {
            return true;
            
        } else if (number_of_selected_custom_forms == 0) {
            alert('Please select a custom form in the advanced filters.');
            return false;
            
        } else {
            alert('You may only export forms from one custom form at a time. Please select only one custom form in the advanced filters and try again.');
            return false;
        }
    }
}

function change_user_role(user_role)
{
    // if user role was selected, then show certain access fields
    if (user_role == 3) {
        if (document.getElementById('manage_ecommerce_heading_row')) {
            document.getElementById('manage_ecommerce_heading_row').style.display = '';
            document.getElementById('manage_ecommerce_row').style.display = '';
        }
        
        if (document.getElementById('manage_calendars_heading_row')) {
            document.getElementById('manage_calendars_heading_row').style.display = '';
            document.getElementById('manage_calendars_row').style.display = '';
        }
        
        document.getElementById('manage_visitors_heading_row').style.display = '';
        document.getElementById('manage_visitors_row').style.display = '';
        document.getElementById('edit_access_heading_row').style.display = '';
        document.getElementById('edit_access_row').style.display = '';
        document.getElementById('shared_content_access_rights_heading_row').style.display = '';
        document.getElementById('common_regions_access_row').style.display = '';
        document.getElementById('menus_access_row').style.display = '';
        show_or_hide_calendar_access();
        document.getElementById('manage_contacts_and_manage_emails_heading_row').style.display = '';
        document.getElementById('manage_contacts_and_manage_emails_row').style.display = '';
        show_or_hide_contact_group_access();
        document.getElementById('manage_ad_regions_heading_row').style.display = '';
        document.getElementById('manage_ad_regions_row').style.display = '';
        document.getElementById('view_access_heading_row').style.display = '';
        document.getElementById('view_access_row').style.display = '';
        
    // else administrator, designer, or manager role was selected, so hide certain access fields
    } else {
        if (document.getElementById('manage_ecommerce_heading_row')) {
            document.getElementById('manage_ecommerce_heading_row').style.display = 'none';
            document.getElementById('manage_ecommerce_row').style.display = 'none';
        }
        
        if (document.getElementById('manage_calendars_heading_row')) {
            document.getElementById('manage_calendars_heading_row').style.display = 'none';
            document.getElementById('manage_calendars_row').style.display = 'none';
        }

        document.getElementById('manage_visitors_heading_row').style.display = 'none';
        document.getElementById('manage_visitors_row').style.display = 'none';
        document.getElementById('edit_access_heading_row').style.display = 'none';
        document.getElementById('edit_access_row').style.display = 'none';
        document.getElementById('shared_content_access_rights_heading_row').style.display = 'none';
        document.getElementById('common_regions_access_row').style.display = 'none';
        document.getElementById('menus_access_row').style.display = 'none';
        document.getElementById('calendar_access').style.display = 'none';
        document.getElementById('manage_contacts_and_manage_emails_heading_row').style.display = 'none';
        document.getElementById('manage_contacts_and_manage_emails_row').style.display = 'none';
        document.getElementById('manage_ad_regions_heading_row').style.display = 'none';
        document.getElementById('manage_ad_regions_row').style.display = 'none';
        document.getElementById('view_access_heading_row').style.display = 'none';
        document.getElementById('view_access_row').style.display = 'none';
    }
}



function getOffsetTop(element)
{
    el = document.getElementById(element);
    xPos = el.offsetTop;
    tempEl = el.offsetParent;
    while (tempEl != null) {
        xPos += tempEl.offsetTop;
        tempEl = tempEl.offsetParent;
    }
    return xPos;
}

function getOffsetLeft(element)
{
    el = document.getElementById(element);
    xPos = el.offsetLeft;
    tempEl = el.offsetParent;
    while (tempEl != null) {
        xPos += tempEl.offsetLeft;
        tempEl = tempEl.offsetParent;
    }
    return xPos;
}

function init_folder_tree()
{
    update_folder_tree(0);
}

function update_folder_tree(folder_id, expand_all)
{
    var expanded_folders_cookie = get_cookie_value('software[view_folders][expanded_folders]');
    expanded_folders = new Array();
    
    if (expanded_folders_cookie) {
        expanded_folders = expanded_folders_cookie.split(',');
    }
    
    // if folder is collapsed, expand folder
    if ((document.getElementById('ul_' + folder_id).style.display == 'none') || (expand_all == true)) {
        expanded_folders[expanded_folders.length] = folder_id;
        
        document.getElementById('ul_' + folder_id).innerHTML = '<li class="loading"><img src="images/loading.gif" width="16" height="16" border="0" alt="" />&nbsp;&nbsp;Loading...</li>';
        document.getElementById('ul_' + folder_id).style.display = 'block';
        
        var requester = createXMLHttpRequest();
        
        requester.onreadystatechange =
            function ()
            {
                // if XMLHttpRequest communication is complete
                if (requester.readyState == 4) {
                    var temp = requester.responseXML.getElementsByTagName("root");
                    var root = temp[0];
                    
                    document.getElementById('ul_' + folder_id).innerHTML = get_folder_content(root, expand_all);
                    
                    if (document.getElementById('image_' + folder_id)) {
                        document.getElementById('image_' + folder_id).src = 'images/icon_folder_expanded.gif';
                    }
                    
                    save_expanded_folders_cookie();
                }
            };

        if (expand_all == true) {
            expand_all_value = 'true';
        } else {
            expand_all_value = 'false';
        }

        requester.open("GET", "get_folder_tree.php?folder_id=" + folder_id + "&expand_all=" + expand_all_value);
        requester.send(null);
    
    // else folder is not expanded, so collapse folder
    } else {
        // remove items in this folder
        document.getElementById('ul_' + folder_id).innerHTML = '';
        
        // collapse folder
        document.getElementById('ul_' + folder_id).style.display = 'none';
        
        // change status image to plus icon
        if (document.getElementById('image_' + folder_id)) {
            document.getElementById('image_' + folder_id).src = 'images/icon_folder_collapsed.gif';
        }
        
        // loop through all expanded folders, so we can remove collapsed folder
        for (var i = 0; i < expanded_folders.length; i++) {
            // if this folder is the collapsed folder, remove folder from array
            if (expanded_folders[i] == folder_id) {
                expanded_folders.splice(i, 1);
            }
        }
        
        save_expanded_folders_cookie();
    }
    
    function get_folder_content(parent, expand_all)
    {
        var content = '';
        
        for (var i = 0; i < parent.childNodes.length; i++) {
            switch (parent.childNodes[i].tagName) {
                case 'folder':
                    for (var j = 0; j < parent.childNodes[i].childNodes.length; j++) {
                        if (parent.childNodes[i].childNodes[j].tagName == 'id') {
                            id = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'name') {
                            name = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'style') {
                            if (parent.childNodes[i].childNodes[j].firstChild) {
                                style = " || Page Style: " + parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                            }
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'access_control_type') {
                            access_control_type = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                    }
                    
                    // Get user friendly access control type names
                    access_control_type_name = get_access_control_name (access_control_type)
                        
                    // if folder should be expanded
                    if ((expand_all == true) || (in_array(id, expanded_folders) == true) || (id == 1)) {
                        expanded_collapsed_icon = '<img id="image_' + id + '" src="images/icon_folder_expanded.gif" width="25" height="25" border="0" class="icon_folder" alt="" />';
                        display = 'block';
                        expanded_folders[expanded_folders.length] = id;
                    } else {
                        expanded_collapsed_icon = '<img id="image_' + id + '" src="images/icon_folder_collapsed.gif" width="25" height="25" border="0" class="icon_folder" alt="" />';
                        display = 'none';
                    }
                    
                    var last_class;
                    
                    // if this is the last li in this ul
                    if (i == (parent.childNodes.length - 1)) {
                        last_class = ' last';
                    } else {
                        last_class = '';
                    }
                    content += '<li class="' + access_control_type + last_class + ' heading"><span onclick="update_folder_tree(' + id + ')" onmouseover="this.className=\'highlight\'" onmouseout="this.className=\'\'">' + expanded_collapsed_icon + '</span><span onmouseover="this.className=\'highlight\'" onmouseout="this.className=\'\'"><span id="folder_' + id + '" class="object" onmouseover="document.getElementById(\'folder_properties_' + id + '\').style.visibility = \'visible\';" onmouseout="document.getElementById(\'folder_properties_' + id + '\').style.visibility = \'hidden\';"><span onclick="window.location.href=\'edit_folder.php?id=' + id + '\'"><span class="folder">' + prepare_content_for_html(name) + '</span><span id="folder_properties_' + id + '" style="visibility: hidden"> || Access Control: ' + access_control_type_name + style + '</span></span></span></span><ul id="ul_' + id + '" style="display: ' + display + '">';
                    content += get_folder_content(parent.childNodes[i], expand_all);
                    content += '</ul></li>';
                    break;
                    
                case 'page':
                    for (var j = 0; j < parent.childNodes[i].childNodes.length; j++) {
                        if (parent.childNodes[i].childNodes[j].tagName == 'id') {
                            id = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'name') {
                            name = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'style') {
                            if (parent.childNodes[i].childNodes[j].firstChild && (parent.childNodes[i].childNodes[j].firstChild.nodeValue != '&nbsp;')) {
                                style = " || Page Style Override: " + parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                            } else {
                                style = '';
                            }
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'home') {
                            home = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'type') {
                            if (parent.childNodes[i].childNodes[j].firstChild) {
                                type = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                            } else {
                                type = '';
                            }
                        }
                    }
                    
                    if (home == 'true') {
                        page_icon = '<img src="images/icon_home_page.gif" width="16" height="14" border="0" align="absbottom" class="icon_home_page" alt="" />';
                    } else {
                        page_icon = '<img src="images/icon_page.gif" width="12" height="14" border="0" align="absbottom" class="icon_page" alt="" />';
                    }
                    
                    var last_class;
                    
                    // if this is the last li in this ul
                    if (i == (parent.childNodes.length - 1)) {
                        last_class = ' class="last"';
                    } else {
                        last_class = '';
                    }
                    
                    var query_string_from = '';
                    
                    // if page type is a certain page type, then prepare from
                    switch(type) {
                        case 'view order':
                        case 'custom form confirmation':
                        case 'form item view':
                        case 'calendar event view':
                        case 'catalog detail':
                        case 'shipping address and arrival':
                        case 'shipping method':
                        case 'login':
                        case 'logout':
                        case 'registration entrance':
                        case 'membership entrance':
                            query_string_from = '?from=control_panel';
                            break;
                    }
                    
                    content += '<li' + last_class + '><span onclick="window.location.href=\'/pages/' + name + query_string_from + '\'" onmouseover="this.className=\'highlight\'" onmouseout="this.className=\'\'"><span id="page_' + id + '" class="object" onmouseover="document.getElementById(\'page_properties_' + id + '\').style.visibility = \'visible\';" onmouseout="document.getElementById(\'page_properties_' + id + '\').style.visibility = \'hidden\';">' + page_icon + '<span class="file">' + prepare_content_for_html(name) + '</span><span id="page_properties_' + id + '" style="visibility: hidden"> ' + style + '</span></span></span></li>';
                    break;
                    
                case 'file':
                    for (var j = 0; j < parent.childNodes[i].childNodes.length; j++) {
                        if (parent.childNodes[i].childNodes[j].tagName == 'id') {
                            id = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'name') {
                            name = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                    }
                    
                    var last_class;
                    
                    // if this is the last li in this ul
                    if (i == (parent.childNodes.length - 1)) {
                        last_class = ' class="last"';
                    } else {
                        last_class = '';
                    }
                    
                    content += '<li' + last_class + '><span onclick="window.location.href=\'edit_file.php?id=' + id + '\'" onmouseover="this.className=\'highlight\'" onmouseout="this.className=\'\'"><span id="file_' + id + '" class="object"><img src="images/icon_file.gif" width="12" height="14" border="0" align="absbottom" class="icon_file" alt="" /><span class="no_style">' + prepare_content_for_html(name) + '</span></span></span></li>';
                    break;
            }
        }
        
        return content;
    }
}

function init_product_group_tree()
{
    update_product_group_tree(0);
}

function update_product_group_tree(product_group_id, expand_all)
{
    var expanded_product_groups_cookie = get_cookie_value('software[product_group_tree][expanded_product_groups]');
    expanded_product_groups = new Array();
    
    if (expanded_product_groups_cookie) {
        expanded_product_groups = expanded_product_groups_cookie.split(',');
    }
    
    // if product_group is collapsed, expand product_group
    if ((document.getElementById('ul_' + product_group_id).style.display == 'none') || (expand_all == true)) {
        expanded_product_groups[expanded_product_groups.length] = product_group_id;
        
        document.getElementById('ul_' + product_group_id).innerHTML = '<li class="loading"><img src="images/loading.gif" width="16" height="16" border="0" alt="" />&nbsp;&nbsp;Loading...</li>';
        document.getElementById('ul_' + product_group_id).style.display = 'block';
        
        var requester = createXMLHttpRequest();
        
        requester.onreadystatechange =
            function ()
            {
                // if XMLHttpRequest communication is complete
                if (requester.readyState == 4) {
                    var temp = requester.responseXML.getElementsByTagName("root");
                    var root = temp[0];
                    
                    document.getElementById('ul_' + product_group_id).innerHTML = get_product_group_content(root, expand_all);
                    
                    if (document.getElementById('image_' + product_group_id)) {
                        document.getElementById('image_' + product_group_id).src = 'images/icon_product_group_expanded.gif';
                    }
                    
                    save_expanded_product_groups_cookie();
                }
            };

        if (expand_all == true) {
            expand_all_value = 'true';
        } else {
            expand_all_value = 'false';
        }

        requester.open("GET", "get_product_group_tree.php?product_group_id=" + product_group_id + "&expand_all=" + expand_all_value);
        requester.send(null);
    
    // else product_group is expanded, so collapse product_group
    } else {
        // remove items in this product_group
        document.getElementById('ul_' + product_group_id).innerHTML = '';
        
        // collapse product_group
        document.getElementById('ul_' + product_group_id).style.display = 'none';
        
        // change status image to plus icon
        if (document.getElementById('image_' + product_group_id)) {
            document.getElementById('image_' + product_group_id).src = 'images/icon_product_group_collapsed.gif';
        }
        
        // loop through all expanded product_groups, so we can remove collapsed product_group
        for (var i = 0; i < expanded_product_groups.length; i++) {
            // if this product_group is the collapsed product_group, remove product_group from array
            if (expanded_product_groups[i] == product_group_id) {
                expanded_product_groups.splice(i, 1);
            }
        }
        
        save_expanded_product_groups_cookie();
    }
    
    function get_product_group_content(parent, expand_all)
    {
        // get software directory
        var url = window.location.href;
        var url_parts = url.split('/');
        var software_directory = url_parts[3];
        
        var content = '';
        
        for (var i = 0; i < parent.childNodes.length; i++) {
            switch (parent.childNodes[i].tagName) {
                case 'product_group':
                    for (var j = 0; j < parent.childNodes[i].childNodes.length; j++) {
                        if (parent.childNodes[i].childNodes[j].tagName == 'id') {
                            id = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'name') {
                            name = '';
                            
                            // if there is a name, then set name
                            if (parent.childNodes[i].childNodes[j].firstChild) {
                                name = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                            }
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'seo_score') {
                            if (parent.childNodes[i].childNodes[j].firstChild.nodeValue != '0') {
                                seo_score = " || SEO Score: " + parent.childNodes[i].childNodes[j].firstChild.nodeValue + "%&nbsp;";
                            } else {
                                seo_score = '';
                            }
                        }
                    }
                    
                    // if product_group should be expanded
                    if ((expand_all == true) || (in_array(id, expanded_product_groups) == true) || (id == 1)) {
                        expanded_collapsed_icon = '<img id="image_' + id + '" src="images/icon_product_group_expanded.gif" width="35" height="35" border="0" alt="" class="icon_product_group" />';
                        display = 'block';
                        expanded_product_groups[expanded_product_groups.length] = id;
                    } else {
                        expanded_collapsed_icon = '<img id="image_' + id + '" src="images/icon_product_group_collapsed.gif" width="35" height="35" border="0" alt="" class="icon_product_group" />';
                        display = 'none';
                    }
                    
                    var last_class;
                    
                    // if this is the last li in this ul
                    if (i == (parent.childNodes.length - 1)) {
                        last_class = ' last';
                    } else {
                        last_class = '';
                    }
                    
                    content += '<li class="' + last_class + '"><span onclick="update_product_group_tree(' + id + ')" onmouseover="this.className=\'highlight\'" onmouseout="this.className=\'\'">' + expanded_collapsed_icon +'</span><span onmouseover="this.className=\'highlight\'" onmouseout="this.className=\'\'"><span id="product_group_' + id + '" class="object" onmouseover="document.getElementById(\'product_group_properties_' + id + '\').style.visibility = \'visible\';" onmouseout="document.getElementById(\'product_group_properties_' + id + '\').style.visibility = \'hidden\';"><span onclick="window.location.href=\'edit_product_group.php?id=' + id + '\'"><span class="product_group">' + prepare_content_for_html(name) + '</span><span id="product_group_properties_' + id + '" style="visibility: hidden"> ' + seo_score + '</span></span></span></span><ul id="ul_' + id + '" style="display: ' + display + '">';
                    content += get_product_group_content(parent.childNodes[i], expand_all);
                    content += '</ul></li>';
                    break;
                    
                case 'product':
                    for (var j = 0; j < parent.childNodes[i].childNodes.length; j++) {
                        if (parent.childNodes[i].childNodes[j].tagName == 'id') {
                            id = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'parent_id') {
                            parent_id = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'name') {
                            name = '';
                            
                            // if there is a name, then set name
                            if (parent.childNodes[i].childNodes[j].firstChild) {
                                name = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                            }
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'short_description') {
                            short_description = '';
                            
                            // if there is a short description, then set short description
                            if (parent.childNodes[i].childNodes[j].firstChild) {
                                short_description = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                            }
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'seo_score') {
                            if (parent.childNodes[i].childNodes[j].firstChild.nodeValue != '0') {
                                seo_score = " || SEO Score: " + parent.childNodes[i].childNodes[j].firstChild.nodeValue + "%&nbsp;";
                            } else {
                                seo_score = '';
                            }
                        }
                    }
                    
                    var last_class;
                    
                    // if this is the last li in this ul
                    if (i == (parent.childNodes.length - 1)) {
                        last_class = ' class="last"';
                    } else {
                        last_class = '';
                    }
                    
                    content += '<li' + last_class + '><span onclick="window.location.href=\'edit_product.php?id=' + id + '&send_to=' + encodeURIComponent('/' + software_directory + '/') + 'view_product_groups.php\'" onmouseover="this.className=\'highlight\'" onmouseout="this.className=\'\'"><span id="product_' + id + '" class="object" onmouseover="document.getElementById(\'product_properties_' + id + '\').style.visibility = \'visible\';" onmouseout="document.getElementById(\'product_properties_' + id + '\').style.visibility = \'hidden\';"><img width="25" height="25" border="0" align="absbottom" alt="" class="icon_product" src="images/icon_product.gif"/> ' + prepare_content_for_html(name) + ' - ' + prepare_content_for_html(short_description) + '<span id="product_properties_' + id + '" style="visibility: hidden"> ' + seo_score + '</span></span></span></li>';
                    break;
            }
        }
        
        return content;
    }
}

// Create user friendly access control names.
function get_access_control_name(access_control_type) {
    switch (access_control_type) {
        case 'public':
            return 'Public';
            break;
            
        case 'guest':
            return 'Guest';
            break;
        
        case 'private':
            return 'Private';
            break;
        
        case 'registration':
            return 'Registration';
            break;
        
        case 'membership':
            return 'Membership';
            break;
    }
}

function collapse_folder_tree()
{
    alluls = document.getElementsByTagName('UL');
    for (i = 0; i < alluls.length; i++) {
        ul = alluls[i];
        if (ul.parentNode.tagName == 'LI') {
            id = ul.id.substr(3);

            image_id = 'image_' + id;
            image = document.getElementById(image_id);

            ul.style.display = 'none';
            image.src = 'images/icon_folder_collapsed.gif';
        }
    }

    expanded_folders = new Array();

    // set cookie to remember that this folder is collapsed
    document.cookie = "software[view_folders][expanded_folders]=0; expires=Tue, 01 Jan 2030 06:00:00 GMT";
}

function collapse_product_group_tree()
{
    alluls = document.getElementsByTagName('UL');
    for (i = 0; i < alluls.length; i++) {
        ul = alluls[i];
        if (ul.parentNode.tagName == 'LI') {
            id = ul.id.substr(3);

            image_id = 'image_' + id;
            image = document.getElementById(image_id);

            ul.style.display = 'none';
            image.src = 'images/icon_product_group_collapsed.gif';
        }
    }

    expanded_product_groups = new Array();

    // set cookie to remember that this product_group is collapsed
    document.cookie = "software[product_group_tree][expanded_product_groups]=0; expires=Tue, 01 Jan 2030 06:00:00 GMT";
}

function get_cookie_value(name)
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function in_array(value, array) {
    for (var i = 0; i < array.length; i++) {
        if (array[i] == value) {
            return true;
        }
    }
    
    return false;
}

function save_expanded_folders_cookie()
{
    // sort expanded folders
    expanded_folders.sort();
    
    var expanded_folders_cookie = '';
    
    // loop through all expanded folders
    for (var i = 0; i < expanded_folders.length; i++) {
        // if this folder is not a duplicate then add to cookie value
        if (expanded_folders[i] != expanded_folders[i - 1]) {
            expanded_folders_cookie += expanded_folders[i] + ',';
        }
    }
        
    // remove last comma
    expanded_folders_cookie = expanded_folders_cookie.substring(0, expanded_folders_cookie.length - 1);
    
    // save cookie
    document.cookie = "software[view_folders][expanded_folders]=" + expanded_folders_cookie + "; expires=Tue, 01 Jan 2030 06:00:00 GMT";
}

function save_expanded_product_groups_cookie()
{
    // sort expanded product_groups
    expanded_product_groups.sort();
    
    var expanded_product_groups_cookie = '';
    
    // loop through all expanded product_groups
    for (var i = 0; i < expanded_product_groups.length; i++) {
        // if this product_group is not a duplicate then add to cookie value
        if (expanded_product_groups[i] != expanded_product_groups[i - 1]) {
            expanded_product_groups_cookie += expanded_product_groups[i] + ',';
        }
    }
        
    // remove last comma
    expanded_product_groups_cookie = expanded_product_groups_cookie.substring(0, expanded_product_groups_cookie.length - 1);
    
    // save cookie
    document.cookie = "software[product_group_tree][expanded_product_groups]=" + expanded_product_groups_cookie + "; expires=Tue, 01 Jan 2030 06:00:00 GMT";
}

function prepare_content_for_html(content)
{
    var chars = new Array ('&','à','á','â','ã','ä','å','æ','ç','è','é',
                         'ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô',
                         'õ','ö','ø','ù','ú','û','ü','ý','þ','ÿ','À',
                         'Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë',
                         'Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö',
                         'Ø','Ù','Ú','Û','Ü','Ý','Þ','€','\"','ß','<',
                         '>','¢','£','¤','¥','¦','§','¨','©','ª','«',
                         '¬','­','®','¯','°','±','²','³','´','µ','¶',
                         '·','¸','¹','º','»','¼','½','¾');

    var entities = new Array ('amp','agrave','aacute','acirc','atilde','auml','aring',
                            'aelig','ccedil','egrave','eacute','ecirc','euml','igrave',
                            'iacute','icirc','iuml','eth','ntilde','ograve','oacute',
                            'ocirc','otilde','ouml','oslash','ugrave','uacute','ucirc',
                            'uuml','yacute','thorn','yuml','Agrave','Aacute','Acirc',
                            'Atilde','Auml','Aring','AElig','Ccedil','Egrave','Eacute',
                            'Ecirc','Euml','Igrave','Iacute','Icirc','Iuml','ETH','Ntilde',
                            'Ograve','Oacute','Ocirc','Otilde','Ouml','Oslash','Ugrave',
                            'Uacute','Ucirc','Uuml','Yacute','THORN','euro','quot','szlig',
                            'lt','gt','cent','pound','curren','yen','brvbar','sect','uml',
                            'copy','ordf','laquo','not','shy','reg','macr','deg','plusmn',
                            'sup2','sup3','acute','micro','para','middot','cedil','sup1',
                            'ordm','raquo','frac14','frac12','frac34');

    for (var i = 0; i < chars.length; i++) {
        myRegExp = new RegExp();
        myRegExp.compile(chars[i],'g');
        content = content.replace (myRegExp, '&' + entities[i] + ';');
    }

    return content;
}

function show_or_hide_search()
{
    if (document.getElementById('search').checked == true) {
        document.getElementById('search_keywords').style.display = '';
    } else {
        document.getElementById('search_keywords').style.display = 'none';
    }
}

function show_or_hide_form_item_view_editor()
{
    if (document.getElementById('form_item_view_submitted_form_editable_by_registered_user').checked == true) {
        document.getElementById('form_item_view_submitted_form_editable_by_submitter_row').style.display = 'none';
    } else {
        document.getElementById('form_item_view_submitted_form_editable_by_submitter_row').style.display = '';
    }
}

function show_or_hide_effect(option)
{
    if (option == "Pop-up") {
        document.getElementById('popup_properties_heading_row').style.display = '';
        document.getElementById('first_level_popup_position_row').style.display = '';
        document.getElementById('second_level_popup_position_row').style.display = '';
    } else {
        document.getElementById('popup_properties_heading_row').style.display = 'none';
        document.getElementById('first_level_popup_position_row').style.display = 'none';
        document.getElementById('second_level_popup_position_row').style.display = 'none';
    }
}

function show_or_hide_display_type(option)
{
    // if the clicked option is static, then hide dynamic rows
    if (option == 'static') {
        document.getElementById('transition_type_row').style.display = 'none';
        document.getElementById('transition_duration_row').style.display = 'none';
        document.getElementById('slideshow_row').style.display = 'none';
        document.getElementById('slideshow_interval_row').style.display = 'none';
    
    // else if the option is dynamic, then show dynamic rows
    } else if (option == 'dynamic') {
        document.getElementById('transition_type_row').style.display = '';
        document.getElementById('transition_duration_row').style.display = '';
        document.getElementById('slideshow_row').style.display = '';
        show_or_hide_slideshow();
    }
}

function show_or_hide_slideshow()
{
    // if slideshow is checked, then show slideshow interval row
    if (document.getElementById('slideshow').checked == true) {
        document.getElementById('slideshow_interval_row').style.display = '';
        
    // else slideshow is not checked, so hide slideshow interval row
    } else {
        document.getElementById('slideshow_interval_row').style.display = 'none';
    }
}

function show_or_hide_product_group_display_type(option)
{
    // if the clicked option is browse, then hide select rows
    if (option == 'browse') {
        document.getElementById('details_row').style.display = 'none';
        document.getElementById('keywords_row').style.display = 'none';
    
    // else the option is select, so show select rows
    } else {
        document.getElementById('details_row').style.display = '';
        document.getElementById('keywords_row').style.display = '';
    }
}

function change_order_by(number)
{
    var order_by = document.getElementById('order_by_' + number).options[document.getElementById('order_by_' + number).selectedIndex].value;
    
    // if order by is blank or random, then hide ascending/descending pick list
    if ((order_by == '') || (order_by == 'random')) {
        document.getElementById('order_by_' + number + '_asc_or_desc').style.display = 'none';
        
    // else order by is not blank or random, so show ascending/descending pick list
    } else {
        document.getElementById('order_by_' + number + '_asc_or_desc').style.display = 'inline';
    }
}

// loop through all filters in order to create rows for filters
function initialize_filters()
{
    for (var i = 0; i < filters.length; i++) {
        create_filter(filters[i]);
    }
}

// create row for filter
function create_filter(properties)
{
    // if no properties were passed, then set blank values
    if (!properties) {
        var properties = new Array();
        properties['field'] = '';
        properties['operator'] = '';
        properties['value'] = '';
        properties['dynamic_value'] = '';
        properties['dynamic_value_attribute'] = '';
    }
    
    // get filter number by adding one to the current number of filters
    var filter_number = last_filter_number + 1;
    
    var tbody = document.getElementById('filter_table').getElementsByTagName('tbody')[0]; 
    var tr = document.createElement('tr');
    
    // prepare content for field cell
    var field_cell_html =
        '<select id="filter_' + filter_number + '_field" name="filter_' + filter_number + '_field" onchange="update_value_cell(' + filter_number + '); update_dynamic_value(' + filter_number + ')">\n\
            <option value=""></option>';
    
    // loop through all field options in order to prepare field options for pick list
    for (var i = 0; i < field_options.length; i++) {
        // if the option is a starting optgroup, then prepare starting optgroup
        if (field_options[i]['value'] == '<optgroup>') {
            field_cell_html += '<optgroup label="' + prepare_content_for_html(field_options[i]['name']) + '">';
            
        // else if option is an ending optgroup, then prepare ending optgroup
        } else if (field_options[i]['value'] == '</optgroup>') {
            field_cell_html += '</optgroup>';
            
        // else option is a standard option, so prepare standard option
        } else {
            var status = '';
            
            // if this option should be selected by default, then select option by default
            if (properties['field'] == field_options[i]['value']) {
                status = ' selected="selected"';
            }
            
            field_cell_html += '<option value="' + field_options[i]['value'] + '"' + status + '>' + prepare_content_for_html(field_options[i]['name']) + '</option>';
        }
    }
    
    field_cell_html += '</select>';
    
    // insert content into field cell
    var td_1 = document.createElement('td');
    td_1.innerHTML = field_cell_html;
    
    // prepare content for operator cell
    var operator_cell_html = '<select name="filter_' + filter_number + '_operator">';
    
    // create array for operator options
    var operators = new Array(
        '',
        'contains',
        'does not contain',
        'is equal to',
        'is not equal to',
        'is less than',
        'is less than or equal to',
        'is greater than',
        'is greater than or equal to');
    
    // loop through all operators in order to prepare options
    for (var i = 0; i < operators.length; i++) {
        var status = '';
        
        // if this operator should be selected by default, then select operator by default
        if (properties['operator'] == operators[i]) {
            status = ' selected="selected"';
        }
        
        operator_cell_html += '<option value="' + operators[i] + '"' + status + '>' + operators[i] + '</option>';
    }
    
    operator_cell_html += '</select>';
    
    // insert content into operator cell
    var td_2 = document.createElement('td');
    td_2.innerHTML = operator_cell_html;
    
    var td_3 = document.createElement('td');
    td_3.id = 'filter_' + filter_number + '_value_cell';
    
    // prepare content for dynamic value cell
    var dynamic_value_cell_html =
        '<input id="filter_' + filter_number + '_dynamic_value_attribute" name="filter_' + filter_number + '_dynamic_value_attribute" type="text" value="' + prepare_content_for_html(properties['dynamic_value_attribute']) + '" size="2" maxlength="10" style="display: none" />\n\
        <select id="filter_' + filter_number + '_dynamic_value" name="filter_' + filter_number + '_dynamic_value" style="display: none" onchange="update_dynamic_value_attribute(' + filter_number + '); clear_value(' + filter_number + ')"></select>';
    
    // insert content into dynamic value cell
    var td_4 = document.createElement('td');
    td_4.innerHTML = dynamic_value_cell_html;
    
    // prepare content for delete cell
    var delete_cell_html = '<a href="javascript:void(0)" onclick="delete_filter(this.parentNode.parentNode)" class="button">Delete</a>';
    
    var td_5 = document.createElement('td');
    td_5.innerHTML = delete_cell_html;
    
    tr.appendChild(td_1);
    tr.appendChild(td_2);
    tr.appendChild(td_3);
    tr.appendChild(td_4);
    tr.appendChild(td_5);
    
    tbody.appendChild(tr);
    
    update_value_cell(filter_number, properties['value']); 
    update_dynamic_value(filter_number, properties['dynamic_value'], properties['dynamic_value_attribute']);
    
    // update number of filters
    last_filter_number++;
    document.getElementById('last_filter_number').value = last_filter_number;
    
}

function delete_filter(tr)
{
    tbody = tr.parentNode;
    tbody.removeChild(tr);
}

function update_value_cell(filter_number, value)
{
    // if value is not defined, then set value to empty string
    if (!value) {
        value = '';
    }
    
    // get field value for filter
    var field_value = document.getElementById('filter_' + filter_number + '_field').value;
    
    // loop through field options in order to determine if there are value options for field
    
    for (var i = 0; i < field_options.length; i++) {
        // if the option is the currently selected option, then prepare value cell HTML
        if (field_options[i]['value'] == field_value) {
            var value_cell_html = '';
            
            // if there are value options for the field, then create HTML for pick list of value options
            if (field_options[i]['value_options']) {
                value_cell_html =
                    '<select id="filter_' + filter_number + '_value" name="filter_' + filter_number + '_value">\n\
                        <option value=""></option>';
                
                // loop through all value options in order to prepare values options for pick list
                for (var j = 0; j < field_options[i]['value_options'].length; j++) {
                    var status = '';
                    
                    // if this option should be selected by default, then select option by default
                    if (value == field_options[i]['value_options'][j]['value']) {
                        status = ' selected="selected"';
                    }
                    
                    value_cell_html += '<option value="' + field_options[i]['value_options'][j]['value'] + '"' + status + '>' + prepare_content_for_html(field_options[i]['value_options'][j]['name']) + '</option>';
                }
                
                value_cell_html += '</select>';
                
            // else there are not value options for the field, so create HTML for value text box
            } else {
                value_cell_html = '<input id="filter_' + filter_number + '_value" name="filter_' + filter_number + '_value" type="text" value="' + prepare_content_for_html(value) + '" maxlength="255" />';
            }
            
            // update value cell with HTML
            document.getElementById('filter_' + filter_number + '_value_cell').innerHTML = value_cell_html;
            
            break;
        }
    }
}

function update_dynamic_value(filter_number, dynamic_value, dynamic_value_attribute)
{
    // get field value for filter
    field_value = document.getElementById('filter_' + filter_number + '_field').value;
    
    // get field type
    var field_type = '';
    
    // loop through all field options in order to find type
    for (var i = 0; i < field_options.length; i++) {
        // if this field option is the selected field option, then set type
        if (field_options[i]['value'] == field_value) {
            field_type = field_options[i]['type'];
            break;
        }
    }
    
    // create array for dynamic value options
    var dynamic_value_options = new Array();
    
    dynamic_value_options[0] = new Array();
    dynamic_value_options[0]['name'] = '';
    dynamic_value_options[0]['value'] = '';
    
    // if field type is date then add options for date
    if (field_type == 'date') {
        var index = dynamic_value_options.length;
        dynamic_value_options[index] = new Array();
        dynamic_value_options[index]['name'] = 'Current Date';
        dynamic_value_options[index]['value'] = 'current date';
    }
    
    // if field type is date and time then add options for date and time
    if (field_type == 'date and time') {
        var index = dynamic_value_options.length;
        dynamic_value_options[index] = new Array();
        dynamic_value_options[index]['name'] = 'Current Date & Time';
        dynamic_value_options[index]['value'] = 'current date and time';
    }
    
    // if field type is date and time then add options for date and time
    if ((field_type == 'date') || (field_type == 'date and time')) {
        var index = dynamic_value_options.length;
        dynamic_value_options[index] = new Array();
        dynamic_value_options[index]['name'] = 'Day(s) Ago';
        dynamic_value_options[index]['value'] = 'days ago';
    }
    
    // if field type is time then add options for time
    if (field_type == 'time') {
        var index = dynamic_value_options.length;
        dynamic_value_options[index] = new Array();
        dynamic_value_options[index]['name'] = 'Current Time';
        dynamic_value_options[index]['value'] = 'current time';
    }
    
    // if field type is username then add options for username
    if (field_type == 'username') {
        var index = dynamic_value_options.length;
        dynamic_value_options[index] = new Array();
        dynamic_value_options[index]['name'] = 'Viewer';
        dynamic_value_options[index]['value'] = 'viewer';
    }
    
    // if field type is email address then add options for email address
    if (field_type == 'email address') {
        var index = dynamic_value_options.length;
        dynamic_value_options[index] = new Array();
        dynamic_value_options[index]['name'] = 'Viewer\'s E-mail Address';
        dynamic_value_options[index]['value'] = 'viewers email address';
    }
    
    // remove any existing options from dynamic value pick list
    document.getElementById('filter_' + filter_number + '_dynamic_value').options.length = 0;
    
    // loop through all dynamic value options in order to add options to dynamic value pick list
    for (var i = 0; i < dynamic_value_options.length; i++) {
        document.getElementById('filter_' + filter_number + '_dynamic_value').options[i] = new Option(dynamic_value_options[i]['name'], dynamic_value_options[i]['value']);
        
        // if this dynamic value option should be selected by default, then select dynamic value option by default
        if (dynamic_value_options[i]['value'] == dynamic_value) {
            document.getElementById('filter_' + filter_number + '_dynamic_value').selectedIndex = i;
        }
    }
    
    // if there is more than one dynamic value option, then show dynamic value pick list
    if (dynamic_value_options.length > 1) {
        document.getElementById('filter_' + filter_number + '_dynamic_value').style.display = 'inline';
        
    // else there is not at least one dynamic value option, so hide dynamic value pick list and attribute
    } else {
        document.getElementById('filter_' + filter_number + '_dynamic_value').style.display = 'none';
    }
    
    update_dynamic_value_attribute(filter_number, dynamic_value_attribute);
}

function update_dynamic_value_attribute(filter_number, dynamic_value_attribute)
{
    // get dynamic value for filter
    dynamic_value = document.getElementById('filter_' + filter_number + '_dynamic_value').value;
    
    // if the dynamic value is days ago, then show attribute
    if (dynamic_value == 'days ago') {
        document.getElementById('filter_' + filter_number + '_dynamic_value_attribute').style.display = 'inline';
    
    // else the dynamic value is not days ago, so hide attribute
    } else {
        document.getElementById('filter_' + filter_number + '_dynamic_value_attribute').style.display = 'none';
    }
}

function clear_value(filter_number)
{
    // if an option was selected for dynamic value pick list, then clear value
    if (document.getElementById('filter_' + filter_number + '_dynamic_value').options[document.getElementById('filter_' + filter_number + '_dynamic_value').selectedIndex].value != '') {
        document.getElementById('filter_' + filter_number + '_value').value = '';
    }
}

function submit_form(form_name) {
    document.getElementById(form_name).submit();
}

function search_help() {
    // pass a search query to the script responsible for searching the help
    // get back a JSON object that has the search results,
    // and output the results to the dialog box
    $.getJSON(
        'get_help_search_results.php',
        {query: document.getElementById('help_dialog_search_query').value},
        function(help_search_results){
            var output_help_search_results = '';
            
            // if there are results, then output notice, loop through search results and add each result to the output for the dialog box
            if (help_search_results.results.length > 0) {
                // build results notice
                output_help_search_results = '<p>Found ' + help_search_results.results.length + ' result(s) for "' + document.getElementById('help_dialog_search_query').value + '" in Help.</p>';
                
                // loop through results and build links to each article
                for(var i = 0; i <= help_search_results.results.length; i++) {
                    if (help_search_results.results[i]) {
                        output_help_search_results += '<p class="search_result"><a href="javascript:void(0)" onclick="update_help_content(\'' + help_search_results.results[i].file_name + '\', true)">' + help_search_results.results[i].heading + '</a></p>';
                    }
                }
            
            // else output notice
            } else {
                output_help_search_results = '<p>No results were found for "' + document.getElementById('help_dialog_search_query').value + '" in Help.</p>';
            }
            
            // output search results to help dialog box
            document.getElementById('help_dialog_content').innerHTML = '<h1>Search Results</h1>' + output_help_search_results;
        }
    );
}

function submit_optimize_content()
{
    // if save and analyze button was clicked, then show analysis notice and determine if form should be submitted
    if (submit_button == 'save_and_analyze') {
        // show analysis notice
        document.getElementById('analysis_notice').style.display = '';
        
        // if analysis is allowed, then submit form
        if (allow_analysis == true) {
            return true;
            
        // else analysis is not allowed, so do not submit form
        } else {
            return false;
        }
        
    // else save and return button was clicked, so submit form
    } else {
        return true;
    }
}
//-->
