﻿var global_getRegion_url='/m009/xml/getCurrentRegion';function region_init(params){var target=params.target;if(!params.update&& !params.go){if(!$('body').data('defloc')){$.post(global_getRegion_url,{},function(xml){if($('code',xml).size()!=0&&$('code',xml).text()!=10000&&$('code',xml).text()!=0&&parseInt($('code',xml).size()<1000)){alert('Ошибка. Код: '+$('code',xml).text()+'. Текст: '+$('message',xml).text());region_init(params);return false;}else if($('code',xml).text()==10000){params.update=false;params.go=true;region_init(params);return false;}global_your_region=$('Location id:first,location id:first',xml).text();$('#search_locationId').val(global_your_region);$('body').data('defloc',xml);params.xml=xml;params.update=true;params.autoRegion=true;region_init(params);return false;});}else{params.xml=$('body').data('defloc');params.update=true;params.autoRegion=true;region_init(params);}return false;}region_destroy(target);$("<img>").attr("src",'images/loading.gif');$('<div></div>').attr('id','region_container').addClass('region_container').append('<div id="region_main"></div><p class="LV_invalid region_loading" style="clear:both;"></p>').appendTo($(target));if(!params.msg)$('.region_loading',target).remove();if(params.update==true){region_populate(params);}else region_load(target,1);};function region_destroy(target){$('.region_container',target).remove();};function region_populate(params){var this_id,child_id;if($('parentLocation',params.xml).size()==0)region_load(params.target,1);else{var num=$('parentLocation',params.xml).size()-1;while(num>=0){this_id=$('parentLocation:eq('+num+') id:first',params.xml).text();child_id=$('id:first',$('parentLocation:eq('+num+')',params.xml).parent()).text();region_load(params.target,this_id,child_id);num--;}if(params.autoRegion){region_load(params.target,child_id);return false;}metro_load(params.target,child_id,params.xml);}};function region_load(target,id,child_id){var url='/m009/xml/getLocations';var params={'locationId':id};$('.region_loading',target).html('<img src="images/loading.gif"> загрузка списка...').removeClass('LV_valid').addClass('LV_invalid');if($('body').data('location_'+id)){region_proceed({'target':target,'id':id,'child_id':child_id,'xml':$('body').data('location_'+id)});return false;}$.ajax({type:"POST",url:url,data:(params),dataType:"xml",global:false,success:function(xml){$('body').data('location_'+params.locationId,xml);region_proceed({'target':target,'id':id,'child_id':child_id,'xml':xml});return false;}});};function region_proceed(params){var select,item_name,option,item_id,this_id;var target=params.target,id=params.id,child_id=params.child_id,xml=params.xml;if($('item',xml).size()>0){select=$('#region_main',target).append('<p class="_geo"><select class="huge"><option value="-1">Выберите пункт из списка</option></select></p>').find('select:last');$('item',xml).each(function(){item_name=$('name:first',this).text();item_id=$('id:first',this).text();option=$('<option></option>').attr('value',item_id).append(item_name).appendTo($(select));if(item_id==child_id)option.attr('selected',true);});$('.region_loading',target).html('заполните список').removeClass('LV_valid').addClass('LV_invalid');$(select).unbind('change').change(function(){this_id=$(this).val();$(this).parent().nextAll().remove();if(this_id>0)region_load(target,this_id);else{$('.region_loading',target).html('заполните список').removeClass('LV_valid').addClass('LV_invalid');}});}else{$('.region_loading',target).html(' ').removeClass('LV_invalid').addClass('LV_valid');metro_load(target,id);}};function metro_load(target,id,xmlOrg){var url="/m009/xml/getMetroStations";var params={};var xml,this_id,this_name,list;if($('body').data('metro_'+id)){xml=$('body').data('metro_'+id);if($('item',xml).size()>0){list=$('#region_main',target).append('<p><ol class="metrobox"></ol></p>').find('ol');$('item',xml).each(function(){this_id=$('id:first',this).text();this_name=$('name:first',this).text();$('<li><img src="images/Metrostations/'+$("metroLine id:first",this).text()+'.gif" />&nbsp;</li>').append($('<input type="checkbox" />').attr('value',this_id)).append(this_name).appendTo($(list));});$('.region_loading',target).html('выберите станции метро').removeClass('LV_valid').addClass('LV_invalid');$('input',list).click(function(){$(this).parent().toggleClass('checked');if($(':checked',list).size()==0)$('.region_loading',target).html('выберите как минимум одну станцию метро').removeClass('LV_valid').addClass('LV_invalid');else $('.region_loading',target).html(' ').removeClass('LV_invalid').addClass('LV_valid');});if(xmlOrg){$(xmlOrg).filter('metroStations').add($('metroStations',xmlOrg)).each(function(){var metro_id=$('id:first',this).text();$('li input[value="'+metro_id+'"]',target).attr('checked',true).parent().toggleClass('checked');$('.region_loading',target).html(' ').removeClass('LV_invalid').addClass('LV_valid');});}}else $('.region_loading',target).html(' ').removeClass('LV_invalid').addClass('LV_valid');return false;}params.locationId=id;$('.region_loading',target).html('<img src="images/loading.gif"> загрузка станций метро...').removeClass('LV_valid').addClass('LV_invalid');$.ajax({type:"POST",url:url,data:(params),dataType:"xml",global:false,success:function(xml){$('body').data('metro_'+params.locationId,xml);metro_load(target,id,xmlOrg);}});};function region_valid(target){var valid=false;var metro_id='';region_id=$('select:last',$(target)).val();if(!(region_id>0))region_id=$('select',target).not(':last').select(':last').val();else{if($('li',target).size()>0){valid=false;$(':checked',target).each(function(){valid=true;metro_id+=';'+$(this).attr('value');});if(metro_id)metro_id='['+metro_id.slice(1)+']';}else valid=true;}return[valid,region_id,metro_id];}
