var isLoaded = false;

ns4 = (document.layers) ? true : false;
// netscape 4?
ie4 = (document.all) ? true : false;
// internet explorer 4/5?
ns6 = (ns4 | ie4) ? false : true;
// (Netscape 6)

function img_swap(img_name) {
    if (document.images[img_name].src == eval(img_name + "_off.src")) {
        document.images[img_name].src = eval(img_name + "_roll.src")
    }
    else {
        document.images[img_name].src = eval(img_name + "_off.src")
    }
}

function image_swap_dynamic(nameStr, sourceStr) {
    document.images[nameStr].src = eval(sourceStr + ".src");
}

function pnav_roll(this_menu) {
    document.images[this_menu].src = eval("nav_secp_" + this_menu + "_on.src");
}

function pnav_off(this_menu) {
    document.images[this_menu].src = eval("nav_secp_" + this_menu + "_off.src");
}

function button_swap(in_object, in_name, in_state) {
    if (!isLoaded) {
        return true;
    }
    in_object.src = eval(in_name + "_" + in_state + ".src");
}

nav_secp_btn_search_off = new Image;
nav_secp_btn_search_on = new Image;
nav_secp_btn_search_off.src = "images/btn_search_off.gif";
nav_secp_btn_search_on.src = "images/btn_search_on.gif";

function open_popup(in_uri, in_name, in_size) {
    if (in_size == null)
        in_size = 'width=820,height=800';
    popupWin = window.open(in_uri, in_name, in_size + ',left=0,top=0,scrollbars=yes,Resizable=1,toolbar=0,menubar=0,Location=0');
    popupWin.focus();
}

function change_state(in_state, in_form_name) {
    for (i = 0; i < document.forms[in_form_name].elements.length; i++) {
        if (document.forms[in_form_name].elements[i].type == 'checkbox') {
            document.forms[in_form_name].elements[i].checked = in_state;
        }
    }
}

function selectAllCheckboxesArray(in_form_name, element_name, amount, in_state) {
    for (i = 0; i < amount; i++) {
        full_element_name = element_name + '[' + i + ']';
        document.forms[in_form_name].elements[full_element_name].checked = in_state;
    }
}

function pressedCheck(in_form_name, element_name, amount, in_state, preset_element_name) {
    allChecked = true;
    for (i = 0; i < amount; i++) {
        full_element_name = element_name + '[' + i + ']';
        if (!document.forms[in_form_name].elements[full_element_name].checked) {
            allChecked = false;
            break;
        }
    }
    if (allChecked) {
        document.forms[in_form_name].elements[preset_element_name].checked = true;
    } else {
        document.forms[in_form_name].elements[preset_element_name].checked = false;
    }
}

function reset_search(providers_count, categories_count) {
    // simple search items.
    document.forms['searchForm'].elements['rights_managed'].checked = true;
    document.forms['searchForm'].elements['royalty_free'].checked = true;
    document.forms['searchForm'].elements['photography'].checked = true;
    document.forms['searchForm'].elements['illustration'].checked = true;
    document.forms['searchForm'].elements['color'].checked = true;
    document.forms['searchForm'].elements['black_white'].checked = true;
    document.forms['searchForm'].elements['model_release'].checked = false;
    document.forms['searchForm'].elements['srcIn'].checked = false;
    document.forms['searchForm'].elements['keywords'].value = '';
    document.forms['searchForm'].elements['searchInResults'].value = 'results';

    // advanced search items.
    document.forms['searchForm'].elements['categories'].checked = true;
    for (var i = 0; i < categories_count; i++) {
        document.forms['searchForm'].elements['categories[' + i + ']'].checked = true;
    }

    document.forms['searchForm'].elements['providers'].checked = true;
    var i = 0;
    while (document.forms['searchForm'].elements['providers[' + i + ']']) {
        document.forms['searchForm'].elements['providers[' + i + ']'].checked = true;
        i ++;
    }

    document.forms['searchForm'].elements['orientation[0]'].checked = true;
    document.forms['searchForm'].elements['orientation[1]'].checked = true;

    document.forms['searchForm'].elements['source'].value = '';
    document.forms['searchForm'].elements['photographer'].value = '';
    document.forms['searchForm'].elements['object_name'].value = '';
    document.forms['searchForm'].elements['searchDate'][0].checked = true;
    document.forms['searchForm'].elements['searchDate'].selected = '0';
    document.forms['searchForm'].elements['searchDate'].checked = true;
    document.forms['searchForm'].elements['last_days'].value = '';
    document.forms['searchForm'].elements['from_date'].value = 'mm/dd/yyyy';
    document.forms['searchForm'].elements['to_date'].value = 'mm/dd/yyyy';
    document.forms['searchForm'].elements['creation_date'].value = 'mm/dd/yyyy - mm/dd/yyyy';
    document.forms['searchForm'].elements['location'].value = '';
}

function copy_contact_to_shipping(formName) {
    if (document.forms[formName] != null) {
        if (document.forms[formName].elements['contact_adress'] != null) {
            document.forms[formName].elements['ss_adress'].value = document.forms[formName].elements['contact_adress'].value;
        }
        if (document.forms[formName].elements['contact_adress2'] != null) {
            document.forms[formName].elements['ss_adress2'].value = document.forms[formName].elements['contact_adress2'].value;
        }
        if (document.forms[formName].elements['contact_adress3'] != null) {
            document.forms[formName].elements['ss_adress3'].value = document.forms[formName].elements['contact_adress3'].value;
        }
        if (document.forms[formName].elements['contact_city'] != null) {
            document.forms[formName].elements['scity'].value = document.forms[formName].elements['contact_city'].value;
        }
        if (document.forms[formName].elements['contact_postcode'] != null) {
            document.forms[formName].elements['spostcode'].value = document.forms[formName].elements['contact_postcode'].value;
        }
        if (document.forms[formName].elements['contact_country'] != null) {
            document.forms[formName].elements['scountry'].options[document.forms[formName].elements['contact_country'].selectedIndex].selected = true;
        }
    }
}

function copy_contacts_to_shipping(formName, prefix_con) {
    if (document.forms[formName] != null) {
        if (document.forms[formName].elements[prefix_con + 'adress'] != null) {
            document.forms[formName].elements['ss_adress'].value = document.forms[formName].elements[prefix_con + 'adress'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'adress2'] != null) {
            document.forms[formName].elements['ss_adress2'].value = document.forms[formName].elements[prefix_con + 'adress2'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'adress3'] != null) {
            document.forms[formName].elements['ss_adress3'].value = document.forms[formName].elements[prefix_con + 'adress3'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'city'] != null) {
            document.forms[formName].elements['scity'].value = document.forms[formName].elements[prefix_con + 'city'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'postcode'] != null) {
            document.forms[formName].elements['spostcode'].value = document.forms[formName].elements[prefix_con + 'postcode'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'country'] != null) {
            document.forms[formName].elements['scountry'].options[document.forms[formName].elements[prefix_con + 'country'].selectedIndex].selected = true;
        }
    }
}

function copy_contact_to_shipping_ed(formName) {
    if (document.forms[formName] != null) {
        if (document.forms[formName].elements['contact_street_address'] != null) {
            document.forms[formName].elements['shipping_street_address'].value = document.forms[formName].elements['contact_street_address'].value;
        }
        if (document.forms[formName].elements['contact_street_address2'] != null) {
            document.forms[formName].elements['shipping_street_address2'].value = document.forms[formName].elements['contact_street_address2'].value;
        }
        if (document.forms[formName].elements['contact_street_address3'] != null) {
            document.forms[formName].elements['shipping_street_address3'].value = document.forms[formName].elements['contact_street_address3'].value;
        }
        if (document.forms[formName].elements['contact_city'] != null) {
            document.forms[formName].elements['shipping_city'].value = document.forms[formName].elements['contact_city'].value;
        }
        if (document.forms[formName].elements['contact_postcode'] != null) {
            document.forms[formName].elements['shipping_postcode'].value = document.forms[formName].elements['contact_postcode'].value;
        }
        if (document.forms[formName].elements['contact_country'] != null) {
            document.forms[formName].elements['shipping_country'].options[document.forms[formName].elements['contact_country'].selectedIndex].selected = true;
        }
    }
}

function copy_contact_to_billing(formName, prefix_bil, prefix_con) {
    if (document.forms[formName] != null) {
        if (document.forms[formName].elements[prefix_con + 'adress'] != null) {
            document.forms[formName].elements[prefix_bil + 'adress'].value = document.forms[formName].elements[prefix_con + 'adress'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'adress2'] != null) {
            document.forms[formName].elements[prefix_bil + 'adress2'].value = document.forms[formName].elements[prefix_con + 'adress2'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'adress3'] != null) {
            document.forms[formName].elements[prefix_bil + 'adress3'].value = document.forms[formName].elements[prefix_con + 'adress3'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'city'] != null) {
            document.forms[formName].elements[prefix_bil + 'city'].value = document.forms[formName].elements[prefix_con + 'city'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'postcode'] != null) {
            document.forms[formName].elements[prefix_bil + 'postcode'].value = document.forms[formName].elements[prefix_con + 'postcode'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'country'] != null) {
            document.forms[formName].elements[prefix_bil + 'country'].options[document.forms[formName].elements[prefix_con + 'country'].selectedIndex].selected = true;
        }
    }
}

function copy_contact_to_billing_ed(formName, prefix_bil, prefix_con) {
    if (document.forms[formName] != null) {
        if (document.forms[formName].elements[prefix_con + 'street_address'] != null) {
            document.forms[formName].elements[prefix_bil + 'street_address'].value = document.forms[formName].elements[prefix_con + 'street_address'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'street_address2'] != null) {
            document.forms[formName].elements[prefix_bil + 'street_address2'].value = document.forms[formName].elements[prefix_con + 'street_address2'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'street_address3'] != null) {
            document.forms[formName].elements[prefix_bil + 'street_address3'].value = document.forms[formName].elements[prefix_con + 'street_address3'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'city'] != null) {
            document.forms[formName].elements[prefix_bil + 'city'].value = document.forms[formName].elements[prefix_con + 'city'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'postcode'] != null) {
            document.forms[formName].elements[prefix_bil + 'postcode'].value = document.forms[formName].elements[prefix_con + 'postcode'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'country'] != null) {
            document.forms[formName].elements[prefix_bil + 'country'].options[document.forms[formName].elements[prefix_con + 'country'].selectedIndex].selected = true;
        }
    }
}

function copy_field_information(formName, prefix_first_field, prefix_second_field) {
    if (document.forms[formName] != null) {
        if (document.forms[formName].elements[prefix_first_field + 'street'] != null) {
            document.forms[formName].elements[prefix_second_field + 'street'].value = document.forms[formName].elements[prefix_first_field + 'street'].value;
        }
        if (document.forms[formName].elements[prefix_first_field + 'street_2'] != null) {
            document.forms[formName].elements[prefix_second_field + 'street_2'].value = document.forms[formName].elements[prefix_first_field + 'street_2'].value;
        }
        if (document.forms[formName].elements[prefix_first_field + 'street_3'] != null) {
            document.forms[formName].elements[prefix_second_field + 'street_3'].value = document.forms[formName].elements[prefix_first_field + 'street_3'].value;
        }
        if (document.forms[formName].elements[prefix_first_field + 'city'] != null) {
            document.forms[formName].elements[prefix_second_field + 'city'].value = document.forms[formName].elements[prefix_first_field + 'city'].value;
        }
        if (document.forms[formName].elements[prefix_first_field + 'postal_code'] != null) {
            document.forms[formName].elements[prefix_second_field + 'postal_code'].value = document.forms[formName].elements[prefix_first_field + 'postal_code'].value;
        }
        if (document.forms[formName].elements[prefix_first_field + 'country'] != null) {
            document.forms[formName].elements[prefix_second_field + 'country'].options[document.forms[formName].elements[prefix_first_field + 'country'].selectedIndex].selected = true;
        }
    }
}


function disable_fields(fields, new_state) {
    if (fields) {
        if (typeof(fields) == "object") {
            if (fields.length) {
                for (var i = 0; i < fields.length; i ++) {
                    if (document.getElementsByName(fields[i])[0]) {
                        document.getElementsByName(fields[i])[0].disabled = new_state;
                    }
                }
            }
        }
        //        if (document.getElementById("pub").name == "pub"
        //                && document.getElementById("is_freelance").checked) {
        //            document.getElementById("pub").setAttribute("disabled", "disabled");
        //        } else if (document.getElementById("pub").name == "pub"
        //                && !document.getElementById("is_freelance").checked) {
        //
        //            document.getElementById("pub").removeAttribute("disabled");
        //        }
    }
}

function organization_NA(new_state) {
    disable_fields(Array('company_name', 'contact_adress', 'contact_adress2', 'contact_adress3', 'contact_city', 'contact_country', 'contact_postcode', 'billing_adress', 'billing_adress2', 'billing_adress3', 'billing_city', 'billing_country', 'billing_postcode', 'billing_contact_person', 'billing_email'), new_state);
    //    company_NA(new_state);
    //    document.getElementsByName('is_publication')[0].checked = new_state;
}

function organization_NA_prof(new_state) {
    disable_fields(Array('company_name', 'contact_street_address', 'contact_street_address2', 'contact_street_address3', 'contact_city', 'contact_country', 'contact_postcode', 'billing_street_address', 'billing_street_address2', 'billing_street_address3', 'billing_city', 'billing_country', 'billing_postcode', 'billing_contact_person', 'billing_email'), new_state);
    //    company_NA_prof(new_state);
    //    document.getElementsByName('is_publication')[0].checked = new_state;
}

function company_NA(new_state) {
    disable_fields(Array('publication', 'con_det_ope_adress', 'con_det_ope_adress2', 'con_det_ope_adress3', 'con_det_ope_city', 'con_det_ope_country', 'con_det_ope_postcode', 'bil_inf_com_adress', 'bil_inf_com_adress2', 'bil_inf_com_adress3', 'bil_inf_com_city', 'bil_inf_com_country', 'bil_inf_com_postcode', 'bil_inf_com_contact_person', 'bil_inf_com_email'), new_state);
}

function company_NA_prof(new_state) {
    disable_fields(Array('publication', 'con_det_ope_street_address', 'con_det_ope_street_address2', 'con_det_ope_street_address3', 'con_det_ope_city', 'con_det_ope_country', 'con_det_ope_postcode', 'bil_inf_com_street_address', 'bil_inf_com_street_address2', 'bil_inf_com_street_address3', 'bil_inf_com_city', 'bil_inf_com_country', 'bil_inf_com_postcode', 'bil_inf_com_contact_person', 'bil_inf_com_email'), new_state);
}

function freelance_NA(new_state) {
    disable_fields(Array('con_det_fre_adress', 'con_det_fre_adress2', 'con_det_fre_adress3', 'con_det_fre_city', 'con_det_fre_country', 'con_det_fre_postcode', 'bil_inf_dir_adress', 'bil_inf_dir_adress2', 'bil_inf_dir_adress3', 'bil_inf_dir_city', 'bil_inf_dir_country', 'bil_inf_dir_postcode', 'bil_inf_dir_contact_person', 'bil_inf_dir_email'), new_state);
    if (!document.getElementsByName('is_company_name')[0].checked) {
        organization_NA(!new_state);
    }
    company_NA(!new_state);
    //    document.getElementsByName('is_company_name')[0].checked = false;
    document.getElementsByName('is_company_name')[0].disabled = !new_state;
}

function toggle(new_state) {
    var org_elem = document.getElementsByName("organization_id[]")[0];
    var comp_elem = document.getElementById("companyIds");
    var is_freelance = document.getElementById("freelance");

    //    if (is_freelance.checked) {
    //        if (org_elem) {
    //            for (var i = 0; i < org_elem.options.length; i++) {
    //                if (org_elem.options[i].selected) {
    //                    org_elem.options[i].selected = false;
    //                }
    //            }
    //        }
    //        if (comp_elem && comp_elem.options != null) {
    //            for (var i = 0; i < comp_elem.options.length; i++) {
    //                if (comp_elem.options[i].selected) {
    //                    comp_elem.options[i].selected = false;
    //                }
    //            }
    //        }
    //    }
    //
    org_elem.disabled = !new_state;
    comp_elem.disabled = !new_state;
}
function toggle_freelance(new_state) {
    disable_fields(Array('con_det_fre_adress', 'con_det_fre_adress2', 'con_det_fre_adress3', 'con_det_fre_city', 'con_det_fre_country', 'con_det_fre_postcode', 'bil_inf_dir_adress', 'bil_inf_dir_adress2', 'bil_inf_dir_adress3', 'bil_inf_dir_city', 'bil_inf_dir_country', 'bil_inf_dir_postcode', 'bil_inf_dir_contact_person', 'bil_inf_dir_email'), new_state);
}

function toggle_freelance_prof(new_state) {
    disable_fields(Array('con_det_fre_street_address', 'con_det_fre_street_address2', 'con_det_fre_street_address3', 'con_det_fre_city', 'con_det_fre_country', 'con_det_fre_postcode', 'bil_inf_dir_street_address', 'bil_inf_dir_street_address2', 'bil_inf_dir_street_address3', 'bil_inf_dir_city', 'bil_inf_dir_country', 'bil_inf_dir_postcode', 'bil_inf_dir_contact_person', 'bil_inf_dir_email'), new_state);
}
function freelance_NA_prof(new_state) {
    disable_fields(Array('con_det_fre_street_address', 'con_det_fre_street_address2', 'con_det_fre_street_address3', 'con_det_fre_city', 'con_det_fre_country', 'con_det_fre_postcode', 'bil_inf_dir_street_address', 'bil_inf_dir_street_address2', 'bil_inf_dir_street_address3', 'bil_inf_dir_city', 'bil_inf_dir_country', 'bil_inf_dir_postcode', 'bil_inf_dir_contact_person', 'bil_inf_dir_email'), new_state);
    //     if(!document.getElementsByName('is_company_name')[0].checked) {
    //    if (!document.getElementsByName('is_company_name')[0].checked) {
    organization_NA_prof(!new_state);
    //    }

    //     }
    company_NA_prof(!new_state);
    //    document.getElementsByName('is_company_name')[0].checked = false;
    //    document.getElementsByName('is_company_name')[0].disabled = !new_state;
    //    document.getElementsByName('is_company_name')[0].disabled = !new_state;

}


function trim(stringToTrim) {
    return stringToTrim.replace(/^\s+|\s+$/g, "");
}

function checkCheckBox(id) {
    return document.getElementById(id).checked;

}

var last_org_name = "";

function check_org_changes(element_name, org_element_name, selected_company) {
    if (last_org_name != document.getElementsByName(org_element_name)[0].value) {
        last_org_name = document.getElementsByName(org_element_name)[0].value;
        populate_companies(element_name, last_org_name, selected_company);

    }

    setTimeout("check_org_changes('" + element_name + "', '" + org_element_name + "')", 250);
}

var company_reload_timer;

/**
 * Populates dynamically the companies dropdown in the form.
 *
 * @param form_name
 * @param element_name
 */
function populate_companies(element_name, organization_name, selected_companies) {
    document.getElementById(element_name).innerHTML = '<span class="story-text">Loading, please wait...</span>';
    if (company_reload_timer) {
        clearTimeout(company_reload_timer);
    }
    //    if (organization_name.indexOf("&") != -1) {
    //        var idx = organization_name.indexOf("&");
    //        organization_name = organization_name.substring(0, idx) + "%26" + organization_name.substring(idx + 1, organization_name.length)
    //    }
    company_reload_timer = setTimeout('new Ajax("ajax_companies.jsp?company_name=' + escape(organization_name.replace("+", '&#43;')) + '&company_id=' + selected_companies + '&dt=' + (new Date()).getTime() + '", {method: "get", update: $("' + element_name + '")}).request()', 250);
}

Array.prototype.remove = function(from, to) {
    var rest = this.slice((to || from) + 1 || this.length);
    this.length = from < 0 ? this.length + from : from;
    return this.push.apply(this, rest);
};

var selected_orgs = new Array();
var orgParms = "";

function check_multi_org_changes(element_name, org_element_name, selected_companies) {
    var org_elem = document.getElementsByName(org_element_name)[0];
    for (var i = 0; i < org_elem.options.length; i++) {
        if (!selected_orgs.contains(org_elem.options[i].value) && org_elem.options[i].selected) {
            selected_orgs.push(org_elem.options[i].value);
        } else if (selected_orgs.contains(org_elem.options[i].value) && !org_elem.options[i].selected) {
            var idx = selected_orgs.indexOf(org_elem.options[i].value, 0);
            selected_orgs.remove(idx);
        }
    }
    populate_multi_companies(element_name, selected_orgs, selected_companies);
    org_elem.onchange = function() {
        check_multi_org_changes(element_name, org_element_name, selected_companies);
    }
}


/**
 * Populates dynamically the companies dropdown in the form.
 *
 * @param form_name
 * @param element_name
 */
function populate_multi_companies(element_name, selected_orgs, selected_companies) {

    document.getElementById(element_name).innerHTML = '<span class="story-text">Loading, please wait...</span>';
    if (company_reload_timer) {
        clearTimeout(company_reload_timer);
    }
    orgParms = "";
    for (var i = 0; i < selected_orgs.length; i++) {
        if (!orgParms.contains(selected_orgs[i])) {
            orgParms += "&organization_id[]=" + selected_orgs[i];
        }
    }
    company_reload_timer = setTimeout('new Ajax("ajax_multicompanies.jsp?' + orgParms + selected_companies + '&dt=' + (new Date()).getTime() + '", {method: "get", update: $("' + element_name + '")}).request()', 250);
}

var checkedEls = new Array();

function addCheckedEl(element) {
    var el_name = element.name;
    var el_value = element.value;
    if (el_name != null && el_value != null && element.checked && !checkedEls.contains(el_value)) {
        checkedEls.push(el_value);
    } else {
        var idx = checkedEls.indexOf(el_value, 0);
        checkedEls.remove(idx);
    }
}


var selected_ids = new Array();


function check_changes(element_name, selected_id, toAdd, key) {
    var elem = document.getElementsByName(element_name)[0];
    if (company_reload_timer) {
        clearTimeout(company_reload_timer);
    }
    new Ajax("ajax_paging.jsp?" + "&id=" + selected_id + "&toAdd=" + toAdd + "&key=" + key + '&dt=' + (new Date()).getTime(), {
        method: 'get'
    }).request();

}

function populate_sub_products(div_id, product_el_name, checked_ids) {
    var product_id = document.getElementsByName(product_el_name)[0].value;
    var selected_id = document.getElementsByName(product_el_name)[0].selectedIndex;
    if (selected_id != 0) {
        new Ajax("ajax_sub_products.jsp?id=" + product_id + "&dt=" + (new Date()).getTime(), {
            method: 'get',
            'onComplete': function(result) {
                result = trim(result);
                document.getElementById(div_id).innerHTML = "Loading sub products, please wait...";
                if (result) {
                    var arr = new Array();
                    arr = result.split("^^^");
                    var innerCode = "";
                    var cnt = 0;
                    for (var i = 0; i < arr.length; i++) {
                        var value = arr[i];
                        var id = value.substring(value.indexOf(":") + 1, value.length);
                        var name = value.substring(0, value.indexOf(":"));
                        cnt++;
                        innerCode += "<input type=\"checkbox\" name=\"s_sub_product[]\" value=\"" + id + "\" " + ((arr.length == 1 || checked_ids.contains(id)) ? "CHECKED" : "") + ">" + name + "&nbsp;";
                        if (cnt == 2) {
                            innerCode += "<br>";
                            cnt = 0;
                        }
                    }
                    document.getElementById(div_id).innerHTML = innerCode;
                } else {
                    document.getElementById(div_id).innerHTML = "Nothing found, try again!";
                }
            }
        }).request();
    } else {
        document.getElementById(div_id).innerHTML = "";
    }
}

var supplier_reload_timer;

function populate_supplier_types(element_id, product_el_name, selected_supplier_type) {
    var product_id = document.getElementsByName(product_el_name)[0].value;
    document.getElementById(element_id).innerHTML = '<span class="story-text">Loading, please wait...</span>';
    if (supplier_reload_timer) {
        clearTimeout(supplier_reload_timer);
    }
    supplier_reload_timer = setTimeout('new Ajax("ajax_supplier_types.jsp?s_product_id=' + product_id + '&supplier_type=' + selected_supplier_type + '&dt=' + (new Date()).getTime() + '", {method: "get", update: $("' + element_id + '")}).request()', 250);
}

function update_price_coef(pr_matrix_coef_el, pr_matrix_id, element_id, pr_matrix_type_element_name, coef_multiply_name) {
    if (!isNumeric(pr_matrix_coef_el.value)) {
        alert("This value is not numeric!");
        document.getElementById(element_id).style.display = 'none';
        return;
    }
    var pr_matrix_type_id = document.getElementsByName(pr_matrix_type_element_name)[0].value;
    new Ajax("ajax_update_price_coef.jsp?" + "pr_matrix_id=" + pr_matrix_id + "&pr_matrix_coef=" + escape(pr_matrix_coef_el.value)  + "&" + pr_matrix_type_element_name + "=" + pr_matrix_type_id + "&dt=" + (new Date()).getTime(), {
        method: 'get',
        'onComplete': function(result) {
            result = trim(result);
            if (result) {                
                alert(result);
            }
            document.getElementById(element_id).style.display = 'none';
            var coef_multiply_el = document.getElementsByName('coef_multiply')[0];
            document.getElementsByName('pr_matrix_total_price' + pr_matrix_id)[0].value = coef_multiply_el.value * pr_matrix_coef_el.value;
        }
    }).request();
}

function update_price_coef_by_options(pr_matrix_coef_el, options, order_element_name, element_id, pr_matrix_type_element_name, coef_multiply_name) {
    if (!isNumeric(pr_matrix_coef_el.value)) {
        alert("This value is not numeric!");
        document.getElementById(element_id).style.display = 'none';
        return;
    }
    var coef_multiply_el = document.getElementsByName('coef_multiply')[0];
    var pr_matrix_type_id = document.getElementsByName(pr_matrix_type_element_name)[0].value;
    new Ajax("ajax_update_price_coef_by_options.jsp?" + "&pr_matrix_coef=" + escape(pr_matrix_coef_el.value) + "&" + pr_matrix_type_element_name + "=" + pr_matrix_type_id + "&" + options + "&dt=" + (new Date()).getTime(), {
        method: 'get',
        'onComplete': function(result) {
            if (result) {
                var jsObj = eval('(' + result + ')');
                for (var obj in jsObj) {
                    document.getElementsByName('pr_matrix_coef' + obj)[0].value = jsObj[obj];
                    document.getElementsByName('pr_matrix_total_price' + obj)[0].value = coef_multiply_el.value * jsObj[obj];
                }
                document.getElementById(element_id).style.display = 'none';
            }

        }
    }).request();
}

function isNumeric(value) {
    return !(value == null || value == '' || !value.toString().match(/^[-]?\d*\.?\d*$/));
}

/**
 * Populates dynamically the organization and companies details.
 *
 * @param form_name
 * @param element_name
 */
function request_org_com_details(organization_name, company_el_id,
                                 org_el_c_street, org_el_c_street_2, org_el_c_street_3, org_el_c_city, org_el_c_country, org_el_c_postal_code,
                                 com_el_c_street, com_el_c_street_2, com_el_c_street_3, com_el_c_city, com_el_c_country, com_el_c_postal_code,
                                 org_el_b_street, org_el_b_street_2, org_el_b_street_3, org_el_b_city, org_el_b_country, org_el_b_postal_code, org_el_organization_contact, org_el_email,
                                 com_el_b_street, com_el_b_street_2, com_el_b_street_3, com_el_b_city, com_el_b_country, com_el_b_postal_code) {
    var company_id = document.getElementById(company_el_id).value;
    if (document.getElementById(company_el_id).selectedIndex != 0) {
        new Ajax("ajax_populate_org_com_details.jsp?organization_name=" + escape(organization_name.replace("+", '&#43;')) + "&company_id=" + company_id + "&dt=" + (new Date()).getTime(), {
            method: 'get',
            'onComplete': function(result) {
                result = trim(result);
                document.getElementsByName(org_el_c_street)[0].value = "";
                document.getElementsByName(org_el_c_street_2)[0].value = "";
                document.getElementsByName(org_el_c_street_3)[0].value = "";
                document.getElementsByName(org_el_c_city)[0].value = "";
                if (document.getElementsByName(org_el_c_country)[0]) {
                    var el = document.getElementsByName(org_el_c_country)[0];
                    for (var i = 0; i < el.options.length; i ++) {
                        el.options[i].selected = false;
                    }
                }
                document.getElementsByName(org_el_c_postal_code)[0].value = "";

                document.getElementsByName(com_el_c_street)[0].value = "";
                document.getElementsByName(com_el_c_street_2)[0].value = "";
                document.getElementsByName(com_el_c_street_3)[0].value = "";
                document.getElementsByName(com_el_c_city)[0].value = "";
                if (document.getElementsByName(com_el_c_country)[0]) {
                    var el = document.getElementsByName(com_el_c_country)[0];
                    for (var i = 0; i < el.options.length; i ++) {
                        el.options[i].selected = false;
                    }
                }
                document.getElementsByName(com_el_c_postal_code)[0].value = "";

                document.getElementsByName(org_el_b_street)[0].value = "";
                document.getElementsByName(org_el_b_street_2)[0].value = "";
                document.getElementsByName(org_el_b_street_3)[0].value = "";
                document.getElementsByName(org_el_b_city)[0].value = "";
                if (document.getElementsByName(org_el_b_country)[0]) {
                    var el = document.getElementsByName(org_el_b_country)[0];
                    for (var i = 0; i < el.options.length; i ++) {
                        el.options[i].selected = false;
                    }
                }
                document.getElementsByName(org_el_b_postal_code)[0].value = "";

                document.getElementsByName(com_el_b_street)[0].value = "";
                document.getElementsByName(com_el_b_street_2)[0].value = "";
                document.getElementsByName(com_el_b_street_3)[0].value = "";
                document.getElementsByName(com_el_b_city)[0].value = "";
                if (document.getElementsByName(com_el_b_country)[0]) {
                    var el = document.getElementsByName(com_el_b_country)[0];
                    for (var i = 0; i < el.options.length; i ++) {
                        el.options[i].selected = false;
                    }
                }
                document.getElementsByName(com_el_b_postal_code)[0].value = "";
                document.getElementsByName(org_el_organization_contact)[0].value = "";
                document.getElementsByName(org_el_email)[0].value = "";

                if (result) {
                    result = result.split("*^*", 2);
                    var result_org_data;
                    if (result[0]) {
                        result_org_data = result[0].split("^^^", 14);
                    }
                    var result_com_data;
                    if (result[1]) {
                        result_com_data = result[1].split("^^^", 12);
                    }

                    if (result_org_data) {
                        document.getElementsByName(org_el_c_street)[0].value = result_org_data[0];
                        document.getElementsByName(org_el_c_street_2)[0].value = result_org_data[1];
                        document.getElementsByName(org_el_c_street_3)[0].value = result_org_data[2];
                        document.getElementsByName(org_el_c_city)[0].value = result_org_data[3];
                        if (document.getElementsByName(org_el_c_country)[0]) {
                            var el = document.getElementsByName(org_el_c_country)[0];
                            for (var i = 0; i < el.options.length; i ++) {
                                if (el.options[i].value == result_org_data[4]) {
                                    el.options[i].selected = true;
                                    break;
                                }
                            }
                        }
                        document.getElementsByName(org_el_c_postal_code)[0].value = result_org_data[5];

                        document.getElementsByName(org_el_b_street)[0].value = result_org_data[6];
                        document.getElementsByName(org_el_b_street_2)[0].value = result_org_data[7];
                        document.getElementsByName(org_el_b_street_3)[0].value = result_org_data[8];
                        document.getElementsByName(org_el_b_city)[0].value = result_org_data[9];
                        if (document.getElementsByName(org_el_b_country)[0]) {
                            var el = document.getElementsByName(org_el_b_country)[0];
                            for (var i = 0; i < el.options.length; i ++) {
                                if (el.options[i].value == result_org_data[10]) {
                                    el.options[i].selected = true;
                                    break;
                                }
                            }
                        }
                        document.getElementsByName(org_el_b_postal_code)[0].value = result_org_data[11];
                        document.getElementsByName(org_el_organization_contact)[0].value = result_org_data[12];
                        document.getElementsByName(org_el_email)[0].value = result_org_data[13];
                    }

                    if (result_com_data) {
                        document.getElementsByName(com_el_c_street)[0].value = result_com_data[0];
                        document.getElementsByName(com_el_c_street_2)[0].value = result_com_data[1];
                        document.getElementsByName(com_el_c_street_3)[0].value = result_com_data[2];
                        document.getElementsByName(com_el_c_city)[0].value = result_com_data[3];
                        if (document.getElementsByName(com_el_c_country)[0]) {
                            var el = document.getElementsByName(com_el_c_country)[0];
                            for (var i = 0; i < el.options.length; i ++) {
                                if (el.options[i].value == result_com_data[4]) {
                                    el.options[i].selected = true;
                                    break;
                                }
                            }
                        }
                        document.getElementsByName(com_el_c_postal_code)[0].value = result_com_data[5];

                        document.getElementsByName(com_el_b_street)[0].value = result_com_data[6];
                        document.getElementsByName(com_el_b_street_2)[0].value = result_com_data[7];
                        document.getElementsByName(com_el_b_street_3)[0].value = result_com_data[8];
                        document.getElementsByName(com_el_b_city)[0].value = result_com_data[9];
                        if (document.getElementsByName(com_el_b_country)[0]) {
                            var el = document.getElementsByName(com_el_b_country)[0];
                            for (var i = 0; i < el.options.length; i ++) {
                                if (el.options[i].value == result_com_data[10]) {
                                    el.options[i].selected = true;
                                    break;
                                }
                            }
                        }
                        document.getElementsByName(com_el_b_postal_code)[0].value = result_com_data[11];
                    }
                }
            }
        }).request();
    }
}

function toggle_sub_cats(check_id) {
    var state = 'none';
    var ch_boxes = document.getElementsByName("categories[]");
    if (ch_boxes) {
        for (var i = 0; i < ch_boxes.length; i++) {
            if (ch_boxes[i].id == check_id) {
                if (state == 'none') {
                    state = (!ch_boxes[i].checked);
                }
                ch_boxes[i].checked = state;
            }
        }
    }
}

function copy_contact_to_billing_contributor_edit(formName, prefix_bil, prefix_con) {
    if (document.forms[formName] != null) {
        if (document.forms[formName].elements[prefix_con + 's_adress'] != null) {
            document.forms[formName].elements[prefix_bil + 's_adress'].value = document.forms[formName].elements[prefix_con + 's_adress'].value;
        }
        if (document.forms[formName].elements[prefix_con + 's_adress2'] != null) {
            document.forms[formName].elements[prefix_bil + 's_adress2'].value = document.forms[formName].elements[prefix_con + 's_adress2'].value;
        }
        if (document.forms[formName].elements[prefix_con + 's_adress3'] != null) {
            document.forms[formName].elements[prefix_bil + 's_adress3'].value = document.forms[formName].elements[prefix_con + 's_adress3'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'city'] != null) {
            document.forms[formName].elements[prefix_bil + 'city'].value = document.forms[formName].elements[prefix_con + 'city'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'state'] != null) {
            document.forms[formName].elements[prefix_bil + 'state'].value = document.forms[formName].elements[prefix_con + 'state'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'postcode'] != null) {
            document.forms[formName].elements[prefix_bil + 'postcode'].value = document.forms[formName].elements[prefix_con + 'postcode'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'country'] != null) {
            document.forms[formName].elements[prefix_bil + 'country'].options[document.forms[formName].elements[prefix_con + 'country'].selectedIndex].selected = true;
        }
    }
}
function copy_contact_to_billing_contributor_register(formName, prefix_bil, prefix_con) {
    if (document.forms[formName] != null) {
        if (document.forms[formName].elements[prefix_con + 's_address'] != null) {
            document.forms[formName].elements[prefix_bil + 's_address'].value = document.forms[formName].elements[prefix_con + 's_address'].value;
        }
        if (document.forms[formName].elements[prefix_con + 's_address2'] != null) {
            document.forms[formName].elements[prefix_bil + 's_address2'].value = document.forms[formName].elements[prefix_con + 's_address2'].value;
        }
        if (document.forms[formName].elements[prefix_con + 's_address3'] != null) {
            document.forms[formName].elements[prefix_bil + 's_address3'].value = document.forms[formName].elements[prefix_con + 's_address3'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'city'] != null) {
            document.forms[formName].elements[prefix_bil + 'city'].value = document.forms[formName].elements[prefix_con + 'city'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'state'] != null) {
            document.forms[formName].elements[prefix_bil + 'state'].value = document.forms[formName].elements[prefix_con + 'state'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'postcode'] != null) {
            document.forms[formName].elements[prefix_bil + 'postcode'].value = document.forms[formName].elements[prefix_con + 'postcode'].value;
        }
        if (document.forms[formName].elements[prefix_con + 'country'] != null) {
            document.forms[formName].elements[prefix_bil + 'country'].options[document.forms[formName].elements[prefix_con + 'country'].selectedIndex].selected = true;
        }
    }
}

