
(function($){$.fn.objectSearch=function(options){var rubric;var opts;var enableButton=function($node,$button){$button.removeAttr("disabled");$button.removeClass("disabled").addClass("reset");$node.attr($button.attr("id"),"true");};var disableButton=function($button){$button.attr("disabled","disabled");$button.addClass("disabled");};var appendSelectOptions=function($selectNode,$options){var options="<option></option>";$.each($options,function(key,value){options+="<option value='"+key+"'>"+value+"</option>";});$selectNode.empty().append(options);$selectNode.removeAttr("disabled").focus();};var resetButtons=function(){$.each(opts.categories,function(key,value){disableButton($('#sbmbtn'+value));});};var resetRubrics=function(){$("input[name='rubric']").each(function(){$(this).removeAttr("checked");});};var resetTypes=function(){$("input[selector='object-type']").each(function(){$(this).removeAttr("checked");});};var resetAll=function(){resetButtons();resetTypes();resetRubrics();};var restoreButtons=function($selectNode){resetButtons();$.each(opts.categories,function(key,value){if($selectNode.attr('sbmbtn'+value)=='true'){enableButton($selectNode,$('#sbmbtn'+value));}});};var getLocation=function(url,$selectNode){if($selectNode!==undefined){resetButtons();}
$.get(encodeURI(url),{},function(data){$.each(data.categories,function(key,value){enableButton($selectNode,$('#sbmbtn'+value));});if($selectNode!==undefined){var id=$selectNode.get(0).id;if(data[id]!==undefined){appendSelectOptions($selectNode,data[id]);}}},'json');};var onSubmit=function(){$('#quarters').remove();$('#category').val($(this).attr('category_id'));$('#searchtype').val($(this).attr('id'));$('#mainsearch').submit();};var getCheckedRubric=function(){var result=null;var j_rubricSelector=$("input[name='rubric']");j_rubricSelector.each(function(key,object){if($(object).attr("checked")){result=$(object).val();};});return result;}
var onChangeObjectType=function(){rubric=$(this).attr('rubric');$('#category').val($(this).attr('category'));$('#districts option:eq(0)').attr('selected','selected')
$('#subdistricts option:eq(0)').attr('selected','selected')
$('#mainsearch').submit();return true;};var onChangeRubric=function(){$("input[selector='object-type']").each(function(){$(this).removeAttr("checked");});$('#provinces').empty().removeAttr("disabled").attr("disabled","disabled");$('#districts').empty().removeAttr("disabled").attr("disabled","disabled");$('#subdistricts').empty().removeAttr("disabled").attr("disabled","disabled");resetButtons();rubric=$(this).val();if($.isEmptyObject(rubric)&&rubric===""){return false;}
var url=opts.capitalsServiceUrl+'?method=provinces'+'&rubric='+rubric;getLocation(url,$('#provinces'));return true;};var onChangeProvince=function(){$('#districts').empty().removeAttr("disabled").attr("disabled","disabled");$('#subdistricts').empty().removeAttr("disabled").attr("disabled","disabled");resetTypes();if($.isEmptyObject($("#provinces").val())&&($("#provinces").val()==="")){restoreButtons($("#provinces"));return false;}
var url=opts.capitalsServiceUrl+'?method=districts'+'&rubric='+getCheckedRubric()+'&province='+$("#provinces").val();getLocation(url,$('#districts'));return true;};var onChangeDistrict=function(){$('#subdistricts').empty().removeAttr("disabled").attr("disabled","disabled");resetTypes();if($.isEmptyObject($("#districts").val())&&($("#districts").val()==="")){restoreButtons($("#districts"));return false;}
var url=opts.capitalsServiceUrl+'?method=subdistricts'+'&rubric='+getCheckedRubric()+'&province='+$("#provinces").val()+'&district='+$("#districts").val();getLocation(url,$('#subdistricts'));return true;};var onChangeSubdistrict=function(){resetTypes();if($.isEmptyObject($("#subdistricts").val())&&($("#subdistricts").val()==="")){restoreButtons($("#subdistricts"));return false;}
var url=opts.capitalsServiceUrl+'?method=quarters'+'&rubric='+getCheckedRubric()+'&province='+$("#provinces").val()+'&district='+$("#districts").val()+'&subdistrict='+$("#subdistricts").val();getLocation(url,$('#quarters'));return true;};opts=$.extend($.fn.objectSearch.defaults,options);if(getCheckedRubric()===null){resetButtons();}
if(opts.reset==="all"){resetAll();}
$("input[selector='object-type']").change(onChangeObjectType);$("input[role='submit-search']").click(onSubmit);$("input[name='rubric']").click(onChangeRubric);$('#provinces').change(onChangeProvince);$('#districts').change(onChangeDistrict);$('#subdistricts').change(onChangeSubdistrict);return this;};$.fn.objectSearch.defaults={capitalsServiceUrl:"",reset:"none"};})(jQuery);
