$(function(){function Migration(options){var self=this;self["options"]=options;self["link"]=$(options.link);self["fader"]=$(options.fader);self["popup"]=$(options.popup);self["close"]=$(options.close,self.popup);self["selectBrands"]=$(options.selectBrands,self.popup);self["selectModels"]=$(options.selectModels,self.popup);self["submitBtn"]=$(options.submitBtn,self.popup);self["firstTime"]=true;self.fader.css({opacity:0.3,height:$(document).height()});self.link.click(function(){if(self.firstTime)
self.loadBrands();self.setPopupPosition();self.fader.show();self.popup.show();self.hideSelects();return false;});self["hideSelects"]=function(){if($.browser.msie)
$("#page select").css("visibility","hidden");}
self["showSelects"]=function(){if($.browser.msie)
$("#page select").css("visibility","visible");}
self["setPopupPosition"]=function(){var scrollHeight=$(window).scrollTop();var positionTop=($(window).height()-self.popup.height())/2+scrollHeight;self.popup.css({top:positionTop});}
self["loadBrands"]=function(){$.ajax({type:"GET",cache:false,url:self.options.brandsUrl,dataType:"json",success:function(json){var fromBrands="";var toBrands="";for(var i=0;i<json.length;i+=1){if(json[i].direction_is_from==1){fromBrands+="<option value="+json[i].id+">";fromBrands+=json[i].name;fromBrands+="</option>\n";}
if(json[i].direction_is_to==1){toBrands+="<option value="+json[i].id+">";toBrands+=json[i].name;toBrands+="</option>\n";}}
self.selectBrands.eq(0).append(fromBrands);self.selectBrands.eq(1).append(toBrands);if(self.firstTime)
self.setModel();}});}
self["loadModels"]=function(brand_id,select){var selectModels=select.parents("div:first").find(self.options.selectModels);var direction=false;if(self.firstTime){direction="to";}else{if(select.hasClass(self.options.fromClass)){direction="from";}else
if(select.hasClass(self.options.toClass))
direction="to";}
if(brand_id==0){selectModels.html("<option value='0'>Модель</option>");self.submitBtn.attr("disabled","disabled");}else
$.ajax({type:"GET",cache:false,url:self.options.modelsUrl,dataType:"json",data:{"brand_id":brand_id,"direction":direction},beforeSend:function(){selectModels.attr("disabled","disabled");selectModels.html("<option value='0'>Загрузка...</option>");},success:function(json){var models="<option value='0'>Модель</option>";for(var i=0;i<json.length;i+=1){models+="<option value="+json[i].id+">";models+=json[i].name;models+="</option>\n";}
selectModels.html(models);if(self.selectModels.eq(0).val()!=0&&self.selectModels.eq(1).val()!=0){self.setLink();self.submitBtn.attr("disabled","");}
if(self.firstTime){selectModels.attr("disabled","");self.selectBrands.eq(1).val(self.currentBrand);self.selectModels.eq(1).val(self.currentModel);self.firstTime=false;}else
selectModels.attr("disabled","");}});}
self["setModel"]=function(){var href=self.link.attr("href");var pattern=/(\d+)/g;var result=href.match(pattern);self["currentBrand"]=result[0];self["currentModel"]=result[1];self.loadModels(self.currentBrand,self.selectModels.eq(1));}
self["setLink"]=function(){var href="";href+="/migration/?from_brand=";href+=self.selectBrands.eq(0).val();href+="&from_model="
href+=self.selectModels.eq(0).val();href+="&to_brand="
href+=self.selectBrands.eq(1).val();href+="&to_model="
href+=self.selectModels.eq(1).val();self.submitBtn.click(function(){window.location=href;return false;});}
self["closePopup"]=function(){self.fader.hide();self.popup.hide();self.showSelects();return false;}
self["addEvent"]=function(){self.fader.click(self.closePopup);self.close.click(self.closePopup);$(window).scroll(function(){self.setPopupPosition();});$(document).keyup(function(event){if(event.keyCode==27){self.closePopup();}});self.selectBrands.change(function(){self.loadModels($(this).attr("value"),$(this));});self.selectModels.change(function(){if(self.selectModels.eq(0).val()!=0&&self.selectModels.eq(1).val()!=0){self.setLink();self.submitBtn.attr("disabled","");}});}
self.addEvent();}
var migr=new Migration({link:"#migration-link",fader:"#fader",popup:"#migration-popup",close:"a.close-link",brandsUrl:"/ajax-data/migration/brands.js",modelsUrl:"/ajax-data/migration/models.js",selectBrands:"select.brands",selectModels:"select.models",fromClass:"from",toClass:"to",submitBtn:"input[type=submit]"});});