var OBJECT_TYPE_A_AREAS_ID = 'ot_areas';
var OBJECT_TYPE_A_CUSTOMERS_ID = 'ot_customers';
var OBJECT_TYPE_CB_AREAS_ID = 'otcb_areas';
var OBJECT_TYPE_CB_CUSTOMERS_ID = 'otcb_customers';
var ERROR_HOLDER_ID = 'error_holder';
var OPTION1_TXT_MARKET_ID = 'txtOpt1Market';
var OPTION1_TXT_STATE_ID = 'txtOpt1State';
var OPTION1_TXT_ZIP_ID = 'txtOpt1ZIP';
var OPTION1_DD_MARKETTYPE_ID = 'ddOpt1MarketType';

Event.observe(window, 'load', function() { 
    [OBJECT_TYPE_A_AREAS_ID, OBJECT_TYPE_A_CUSTOMERS_ID].each(function(id) {
        new Hint(id); 
        $(id).href = 'javascript://';
    });
    
    Event.observe(document.forms[0], 'submit', function(event) {
        if (!validateSearchForm()) Event.stop(event);
    });
});

function validateSearchForm() {
    var err = new Array();

    var market = trim(GetValue(OPTION1_TXT_MARKET_ID));
    var state = trim(GetValue(OPTION1_TXT_STATE_ID));
    var zip = trim(GetValue(OPTION1_TXT_ZIP_ID));
    var market_type = trim(GetDDText($(OPTION1_DD_MARKETTYPE_ID)));

    if (zip.length == 0 && market.length == 0) err[err.length] = 'Please define ZIP or/and ' + (market_type.length > 0 ? market_type : 'market');

    var eh = $(ERROR_HOLDER_ID);
    if (eh) {
        if (err.length > 0) {
            eh.innerHTML = '<span class="error">' + err.join('<br/>') + '</span>';
            eh.style.display = 'block';
        } else {
            eh.style.display = 'none';
        }
    }
    
    return (err.length == 0);
}

function menuSelChange(aid, cbid, aid_list) {
    var cb = $(cbid);
    if (cb && !cb.disabled) {
        for (var i=0; i<aid_list.length; i++) {
            var a = $(aid_list[i]);
            if (a) a.className = (aid_list[i] == aid ? 'optionsel' : 'option');
        }
        cb.checked=true;
    }
}

function onObjectTypeSel(aid, cbid) {
    menuSelChange(aid, cbid, [OBJECT_TYPE_A_AREAS_ID, OBJECT_TYPE_A_CUSTOMERS_ID]);
    onObjectTypeChanged();
}

function onObjectTypeChanged(cbid) {
    var eh = $(ERROR_HOLDER_ID);
    if (eh) eh.style.display = 'none';

    var cbAreas = $(OBJECT_TYPE_CB_AREAS_ID);
    var cbCustomers = $(OBJECT_TYPE_CB_CUSTOMERS_ID);
    
    var entity = 0;
    if (cbAreas.checked) entity = ENTITY_RETAIL_AREA;
    else if (cbCustomers.checked) entity = ENTITY_CUSTOMER;

    updateStateLinks(entity);
    
    var url = 'javascript://';
    switch (entity) {
        case ENTITY_RETAIL_AREA: url = '/screen-market-map/retail-area.aspx'; break;
        case ENTITY_CUSTOMER: url = '/screen-market-map/customer.aspx'; break;
    }
    document.forms[0].action = url;
    
}

function getEntityStr(entity) {
    var en = '';
    switch (entity) {
        case ENTITY_RETAIL_AREA: en = 'retail-area'; break;
        case ENTITY_CUSTOMER: en = 'customer'; break;
    }
    return en;
}


function updateStateLinks(entity) {
    var links = $$('a.st_lnk');
    var re = /\bscreen-market\/map\/((retail-area)|(customer))\b/gi;
    for (var i=0; i<links.length; i++) links[i].href = links[i].href.replace(re, 'screen-market/map/' + getEntityStr(entity));
}

