function getOptionsFor(targetId, callingSelectObj, url, postSelectIndex){
    targetSelectObj = document.getElementById(targetId);
    $('#' + callingSelectObj.id + ' ~ select.depend').attr('disabled', true).each(function(){$(this)[0].options.length = 0});
    if(-1 == callingSelectObj.value){
        targetSelectObj.options[0] = new Option('-----------', -1);
    } else {
        $.getJSON(url, {callingValue: callingSelectObj.value},
            function (jsonData) {
                targetSelectObj.disabled = false;
                targetSelectObj.options.length = 0;
                $.each(jsonData, function(index, data){
                    selected = (postSelectIndex && index == postSelectIndex) ? true : false;
                    targetSelectObj.options[targetSelectObj.options.length] = new Option(data, index, false, selected);
                });
            }
        );
    }
}