<!--
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 '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;
    }

    // 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_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_image_width_row').style.display = 'none';
        document.getElementById('catalog_detail_image_height_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';
        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';
        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';
        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_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 = '';
            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_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_image_width_row').style.display = '';
            document.getElementById('catalog_detail_image_height_row').style.display = '';
            document.getElementById('catalog_detail_add_button_label_row').style.display = '';
            document.getElementById('catalog_detail_back_button_label_row').style.display = '';
            document.getElementById('catalog_detail_next_page_id_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 = '';
            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 '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 = '';
            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;
    }
}

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_section_row').style.display = '';
        document.getElementById('send_to_page_row').style.display = '';
    } else {
        document.getElementById('private_section_row').style.display = 'none';
        document.getElementById('send_to_page_row').style.display = 'none';
    }
}

function show_or_hide_form() {
    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 = '';
        document.getElementById('form_designer_row').style.display = '';
    } 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';
        document.getElementById('form_designer_row').style.display = 'none';
    }
}

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_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_retrieve_order_next_page_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_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_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_retrieve_order_next_page_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_ecommerce_shipping() {
    if (document.getElementById('ecommerce_shipping').checked == true) {
        document.getElementById('ecommerce_recipient_mode_row').style.display = '';
        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_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_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_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 = '';
    } else {
        document.getElementById('email_subscription_type_row').style.display = 'none';
        document.getElementById('description_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 = '';
    } else {
        document.getElementById('calendar_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_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 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';

    // 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;
    }
}

function change_field_type($field_type)
{
    // hide all objects
    document.getElementById('name_row').style.display = 'none';
    document.getElementById('label_row').style.display = 'none';
    document.getElementById('required_row').style.display = 'none';
            
    // if upload_section_id_row exists
    if (document.getElementById('upload_section_id_row')) {
        document.getElementById('upload_section_id_row').style.display = 'none';
    }

    document.getElementById('default_value_row').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('rows_row').style.display = 'none';
    document.getElementById('cols_row').style.display = 'none';
    document.getElementById('multiple_row').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';
    }
    
    // if contact_field_row exists
    if (document.getElementById('office_use_only_row')) {
        document.getElementById('office_use_only_row').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 = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('default_value_row').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 = '';
            }
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').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 = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('wysiwyg_row').style.display = '';
            document.getElementById('rows_row').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 = '';
            }
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').style.display = '';
            }
            break;

        case 'pick list':
            document.getElementById('name_row').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('default_value_row').style.display = '';
            document.getElementById('size_row').style.display = '';
            document.getElementById('multiple_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('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 = '';
            }
            
            // 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 = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('default_value_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('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 = '';
            }

            // 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 = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('default_value_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('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 = '';
            }

            // 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('label_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('upload_section_id_row').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 = '';
            }
            break;
            
        case 'date':
            document.getElementById('name_row').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('default_value_row').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 = '';
            }

            // 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 = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('default_value_row').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 = '';
            }

            // 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 = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('default_value_row').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 = '';
            }
            
            // if office_use_only_row exists
            if (document.getElementById('office_use_only_row')) {
                document.getElementById('office_use_only_row').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('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 = '';
            }
            
            if (tinyMCE.getInstanceById('information') == null) {
                tinyMCE.execCommand('mceAddControl', false, 'information');
            }
            
            break;
            
        case 'time':
            document.getElementById('name_row').style.display = '';
            document.getElementById('label_row').style.display = '';
            document.getElementById('position_row').style.display = '';
            document.getElementById('required_row').style.display = '';
            document.getElementById('default_value_row').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 = '';
            }

            // 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, show section access, contact group access, and calendar access areas
    if (user_role == 3) {
        document.getElementById('manage_contacts_row').style.display = '';
        
        if (document.getElementById('manage_ecommerce_row')) {
            document.getElementById('manage_ecommerce_row').style.display = '';
        }
        
        if (document.getElementById('manage_forms_row')) {
            document.getElementById('manage_forms_row').style.display = '';
        }
        
        if (document.getElementById('manage_calendars_row')) {
            document.getElementById('manage_calendars_row').style.display = '';
        }
        
        document.getElementById('manage_emails_row').style.display = '';
        document.getElementById('section_access').style.display = '';
        document.getElementById('contact_group_access').style.display = '';
        show_or_hide_calendar_access();
        
    // else administrator, designer, or manager role was selected, so hide section access and contact group access areas
    } else {
        document.getElementById('manage_contacts_row').style.display = 'none';

        if (document.getElementById('manage_ecommerce_row')) {
            document.getElementById('manage_ecommerce_row').style.display = 'none';
        }
        
        if (document.getElementById('manage_forms_row')) {
            document.getElementById('manage_forms_row').style.display = 'none';
        }
        
        if (document.getElementById('manage_calendars_row')) {
            document.getElementById('manage_calendars_row').style.display = 'none';
        }

        document.getElementById('manage_emails_row').style.display = 'none';
        document.getElementById('section_access').style.display = 'none';
        document.getElementById('contact_group_access').style.display = 'none';
        document.getElementById('calendar_access').style.display = 'none';
    }
}

function show_drop_down_menu(menu_id, link_id)
{
    if (document.getElementById(menu_id)) {
        var left = getOffsetLeft(link_id) + 'px';
        var top = getOffsetTop(link_id) + document.getElementById(link_id).offsetHeight - 1 + 'px';
        document.getElementById(menu_id).style.left = left;
        document.getElementById(menu_id).style.top = top;
        
        // if menu tab is not on, then change style of menu tab
        if (document.getElementById(link_id).className != 'on') {
            document.getElementById(link_id).className = 'hover';
        }
        
        document.getElementById(menu_id).style.visibility = 'visible';
    }
}

function hide_drop_down_menu(menu_id, link_id)
{
    if (document.getElementById(menu_id)) {
        document.getElementById(menu_id).style.visibility = 'hidden';
        
        // if menu tab is not on, then change style of menu tab
        if (document.getElementById(link_id).className != 'on') {
            document.getElementById(link_id).className = '';
        }
    }
}

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_site_tree()
{
    update_site_tree(0);
}

function update_site_tree(section_id, expand_all)
{
    var expanded_sections_cookie = get_cookie_value('software[site_tree][expanded_sections]');
    expanded_sections = new Array();
    
    if (expanded_sections_cookie) {
        expanded_sections = expanded_sections_cookie.split(',');
    }
    
    // if section is collapsed, expand section
    if ((document.getElementById('ul_' + section_id).style.display == 'none') || (expand_all == true)) {
        expanded_sections[expanded_sections.length] = section_id;
        
        document.getElementById('ul_' + section_id).innerHTML = '<li class="loading"><img src="images/loading.gif" width="16" height="16" border="0" alt="" />&nbsp;&nbsp;Loading...</li>';
        document.getElementById('ul_' + section_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_' + section_id).innerHTML = get_section_content(root, expand_all);
                    
                    if (document.getElementById('image_' + section_id)) {
                        document.getElementById('image_' + section_id).src = 'images/minus.gif';
                    }
                    
                    save_expanded_sections_cookie();
                }
            };

        if (expand_all == true) {
            expand_all_value = 'true';
        } else {
            expand_all_value = 'false';
        }

        requester.open("GET", "get_site_tree.php?section_id=" + section_id + "&expand_all=" + expand_all_value);
        requester.send(null);
    
    // else section is not expanded, so collapse section
    } else {
        // remove items in this section
        document.getElementById('ul_' + section_id).innerHTML = '';
        
        // collapse section
        document.getElementById('ul_' + section_id).style.display = 'none';
        
        // change status image to plus icon
        if (document.getElementById('image_' + section_id)) {
            document.getElementById('image_' + section_id).src = 'images/plus.gif';
        }
        
        // loop through all expanded sections, so we can remove collapsed section
        for (var i = 0; i < expanded_sections.length; i++) {
            // if this section is the collapsed section, remove section from array
            if (expanded_sections[i] == section_id) {
                expanded_sections.splice(i, 1);
            }
        }
        
        save_expanded_sections_cookie();
    }
    
    function get_section_content(parent, expand_all)
    {
        var content = '';
        
        for (var i = 0; i < parent.childNodes.length; i++) {
            switch (parent.childNodes[i].tagName) {
                case 'section':
                    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') {
                            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;
                        }
                    }
                    
                    // if section should be expanded
                    if ((expand_all == true) || (in_array(id, expanded_sections) == true) || (id == 1)) {
                        expanded_collapsed_icon = '<img id="image_' + id + '" src="images/minus.gif" width="9" height="9" border="0" class="icon_plus_minus" alt="" />';
                        display = 'block';
                        expanded_sections[expanded_sections.length] = id;
                    } else {
                        expanded_collapsed_icon = '<img id="image_' + id + '" src="images/plus.gif" width="9" height="9" border="0" class="icon_plus_minus" alt="" />';
                        display = 'none';
                    }
                    
                    if (style == 'true') {
                        style = 'style';
                    } else {
                        style = 'no_style';
                    }
                    
                    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 + '"><span class="object" onmouseover="show_buttons(' + id + ', \'section\')" onmouseout="hide_buttons(' + id + ', \'section\')" style="cursor: default"><span onclick="update_site_tree(' + id + ')">' + expanded_collapsed_icon + '<span class="spacing_section">&nbsp;&nbsp;</span><img src="images/icon_section.gif" width="16" height="14" border="0" alt="" class="icon_section" /><span class="' + style + '">' + prepare_content_for_html(name) + '</span></span><span id="buttons_section_' + id + '" style="visibility: hidden"><img src="images/arrow.gif" width="6" height="11" border="0" align="absbottom" alt="" /> &nbsp;<a href="edit_section.php?id=' + id + '&from=site_tree" class="button">Edit</a> <a href="add_section.php?id=' + id + '" class="button">+&nbsp;Section</a> <a href="add_page.php?id=' + id + '" class="button">+&nbsp;Page</a> <a href="add_file.php?id=' + id + '" class="button">+&nbsp;File</a></span></span><ul id="ul_' + id + '" style="display: ' + display + '">';
                    content += get_section_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') {
                            style = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'home') {
                            home = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                    }
                    
                    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="" />';
                    }
                    
                    if (style == 'true') {
                        style = 'style';
                    } else {
                        style = 'no_style';
                    }
                    
                    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 class="spacing_non_section">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="object" onmouseover="show_buttons(' + id + ', \'page\')" onmouseout="hide_buttons(' + id + ', \'page\')" style="cursor: default">' + page_icon + '<span class="' + style + '">' + prepare_content_for_html(name) + '</span><span id="buttons_page_' + id + '" style="visibility: hidden"><img src="images/arrow.gif" width="6" height="11" border="0" align="middle" alt="" /> &nbsp;<a href="edit_page.php?id=' + id + '&from=site_tree" class="button">Edit</a> <a href="/pages/' + prepare_content_for_html(name) + '" class="button">View</a> <a href="add_email_campaign.php?id=' + id + '" class="button">E-mail</a></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 class="spacing_non_section">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="object" onmouseover="show_buttons(' + id + ', \'file\')" onmouseout="hide_buttons(' + id + ', \'file\')" style="cursor: default"><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 id="buttons_file_' + id + '" style="visibility: hidden"><img src="images/arrow.gif" width="6" height="11" border="0" align="middle" alt="" /> &nbsp;<a href="edit_file.php?id=' + id + '&from=site_tree" class="button">Edit</a> <a href="/files/' + prepare_content_for_html(name) + '" target="_blank" class="button">View</a></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/minus.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/plus.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 = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                    }
                    
                    // 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/minus.gif" width="9" height="9" border="0" class="icon_plus_minus" alt="" />';
                        display = 'block';
                        expanded_product_groups[expanded_product_groups.length] = id;
                    } else {
                        expanded_collapsed_icon = '<img id="image_' + id + '" src="images/plus.gif" width="9" height="9" border="0" class="icon_plus_minus" 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="' + last_class + '"><span class="object" onmouseover="product_group_tree_show_buttons(\'buttons_product_group_' + id + '\')" onmouseout="product_group_tree_hide_buttons(\'buttons_product_group_' + id + '\')" style="cursor: default"><span onclick="update_product_group_tree(' + id + ')">' + expanded_collapsed_icon + '<span class="spacing_product_group">&nbsp;&nbsp;</span><img src="images/icon_product_group.png" width="16" height="15" border="0" alt="" class="icon_product_group" /><span class="no_style">' + prepare_content_for_html(name) + '</span></span><span id="buttons_product_group_' + id + '" style="visibility: hidden"><img src="images/arrow.gif" width="6" height="11" border="0" align="absbottom" alt="" /> &nbsp;<a href="edit_product_group.php?id=' + id + '" class="button">Edit</a> <a href="add_product_group.php?id=' + id + '" class="button">+&nbsp;Product&nbsp;Group</a></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 = parent.childNodes[i].childNodes[j].firstChild.nodeValue;
                        }
                        
                        if (parent.childNodes[i].childNodes[j].tagName == 'short_description') {
                            short_description = 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 class="spacing_non_product_group">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="object" onmouseover="product_group_tree_show_buttons(\'buttons_product_group_' + parent_id + '_product_' + id + '\')" onmouseout="product_group_tree_hide_buttons(\'buttons_product_group_' + parent_id + '_product_' + id + '\')" style="cursor: default"><img width="10" height="14" border="0" align="absbottom" alt="" class="icon_product" src="images/icon_product.png"/><span class="no_style">' + prepare_content_for_html(name) + ' - ' + prepare_content_for_html(short_description) + '</span><span id="buttons_product_group_' + parent_id + '_product_' + id + '" style="visibility: hidden"><img src="images/arrow.gif" width="6" height="11" border="0" align="middle" alt="" /> &nbsp;<a href="edit_product.php?id=' + id + '&send_to=' + encodeURIComponent('/' + software_directory + '/') + 'view_product_groups.php" class="button">Edit</a></span></span></li>';
                    break;
            }
        }
        
        return content;
    }
}

function product_group_tree_show_buttons(id)
{
    document.getElementById(id).style.visibility = 'visible';
}

function product_group_tree_hide_buttons(id)
{
    document.getElementById(id).style.visibility = 'hidden';
}


function show_buttons(id, type)
{
    document.getElementById('buttons_' + type + '_' + id).style.visibility = 'visible';
}

function hide_buttons(id, type)
{
    document.getElementById('buttons_' + type + '_' + id).style.visibility = 'hidden';
}

function collapse_site_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/plus.gif';
        }
    }

    expanded_sections = new Array();

    // set cookie to remember that this section is collapsed
    document.cookie = "software[site_tree][expanded_sections]=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/plus.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_sections_cookie()
{
    // sort expanded sections
    expanded_sections.sort();
    
    var expanded_sections_cookie = '';
    
    // loop through all expanded sections
    for (var i = 0; i < expanded_sections.length; i++) {
        // if this section is not a duplicate then add to cookie value
        if (expanded_sections[i] != expanded_sections[i - 1]) {
            expanded_sections_cookie += expanded_sections[i] + ',';
        }
    }
        
    // remove last comma
    expanded_sections_cookie = expanded_sections_cookie.substring(0, expanded_sections_cookie.length - 1);
    
    // save cookie
    document.cookie = "software[site_tree][expanded_sections]=" + expanded_sections_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_popups()
{
    if (document.getElementById('popups').checked == true) {
        document.getElementById('first_level_popup_position_row').style.display = '';
        document.getElementById('second_level_popup_position_row').style.display = '';
    } else {
        document.getElementById('first_level_popup_position_row').style.display = 'none';
        document.getElementById('second_level_popup_position_row').style.display = 'none';
    }
}

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';
    }
    
    // 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 = '';
    }
}
//-->

