var OrderEditor={formId:"",onSend:[],dateValidator:null,locationsValidator:null,phoneValidator:null,escDateValidation:false,popupWin:null,EditMode:false,init:function(objFormId,editMode,orderStatus,disableForm){this.CollAddrTypeChange();this.DeliveryAddrTypeChange();this.formId=objFormId;this.escDateValidation=editMode;if(editMode)this.InitStatusPart(orderStatus);if(disableForm)this.toggleFormEnabled(false);this.EditMode=editMode;this.initForm()},initForm:function(){try{$(this.formId).focusFirstElement();this.dateValidator={field:"CollTime",validator:this.validateDate.bind(this)};this.locationsValidator={field:"",validator:this.metroStreetValidation.bind(this)};if(!this.escDateValidation){FormValidator.onValidate.push(this.dateValidator);FormValidator.onValidate.push(this.locationsValidator)}}catch(e){}},hlParent:function(obj,bOn){},TrySend:function(){var retVal=FormValidator.check($(this.formId));if(!retVal)return false;for(var i=0,l=this.onSend.length;i<l;i++)this.onSend[i]();this.toggleClientInfoEnabled(true);$(this.formId).submit()},toggleFormEnabled:function(bEnable){($(this.formId).getElements()).invoke(bEnable?"enable":"disable");$("saveButton")[bEnable?"show":"hide"]()},CollAddrTypeChange:function(){var CurrentSelectedID=$("CollAddrTypeMenu").getValue();$("CollAddressType1")[(CurrentSelectedID==1?"show":"hide")]();$("CollAddressType2")[(CurrentSelectedID==2?"show":"hide")]();$("CollAddressType3")[(CurrentSelectedID==3?"show":"hide")]();$("CollAddressType45")[(CurrentSelectedID>3?"show":"hide")]()},DeliveryAddrTypeChange:function(){var CurrentSelectedID=$("DeliveryAddrTypeMenu").getValue();$("DeliveryAddressType1")[(CurrentSelectedID==1?"show":"hide")]();$("DeliveryAddressType2")[(CurrentSelectedID==2?"show":"hide")]();$("DeliveryAddressType3")[(CurrentSelectedID==3?"show":"hide")]();$("DeliveryAddressType45")[(CurrentSelectedID>3?"show":"hide")]()},toggleClientInfoEnabled:function(bEnable){var method=bEnable?"enable":"disable";try{}catch(e){alert("0. "+e.message)}try{}catch(e){alert("1. "+e.message)}},InitStatusPart:function(status){this.toggleClientInfoEnabled(false);try{}catch(e){alert("2. "+e.message)}try{switch(status){case"R":break;case"A":$A(["DriverBox","ReadyForCollectionButtonDIV","OrderBox","ClientChancelationButtonDIV","DriverFaultChancelationButtonDIV"]).each(Element.show);break;case"RC":$A(["DriverBox","ReadyForCollectionTimeDIV","ClientCollectedButtonDIV","OrderBox","ClientChancelationButtonDIV"]).each(Element.show);break;case"OW":$A(["DriverBox","ReadyForCollectionTimeDIV","ClientCollectedTimeDIV","OrderFinishedButtonDIV"]).each(Element.show);break;case"CC":$A(["OrderBox","ClientChancelationTimeDIV"]).each(Element.show);break;case"BR":$A(["OrderBox","DriverFaultChancelationTimeDIV"]).each(Element.show);break;case"RJ":$A(["OrderBox","NoCarChancelationTimeDIV"]).each(Element.show);break;case"CP":$A(["DriverBox","orderAmmountDIV"]).each(Element.show);break;case"TR":$A(["OrderBox","TransferedTimeDIV"]).each(Element.show);break}}catch(e){alert("3. "+e.message)}},acceptPayment:function(link){$(link).hide();$('panelPayment').show();$('payButton').enable();$('payment').enable()},checkTimeFormat:function(timeText){},showClientStat:function(objAutocomplete){$("nocashField").hide();if(!objAutocomplete.escreset)$("chbNoCashPayment").checked=false;var myAjax=new Ajax.Request("classes/OrderEditor.php",{method:"post",parameters:"client="+objAutocomplete.value.id,onSuccess:this.applyClient.bind(this)})},applyClient:function(result){result=eval("("+result.responseText+")");if(result.error){alert(result.error.message);return}if(result.emptyset)return;$("clientId").value=result.data.id;$("ClientFullName").value=([result.data.last_name,result.data.name,result.data.middle_name]).join(" ").replace(/^\s*|\s*$/gi,"");$("clientOrdersAmmount").update(result.data.payments);$("clientOrdersCount").update(result.data.orders_count);if(result.data.banned=="Y"){this.toggleFormEnabled(false);return}if(result.data.can_use_nocash=='Y')$("nocashField").show();$("lnkCollAddrFromList").show();$("lnkDeliveryAddrFromList").show()},getAddressType:null,showClientAddresses:function(addressType){var clientId=$("clientId").value;this.getAddressType=addressType;if(this.popupWin&&!this.popupWin.closed)this.popupWin=window.open("","win_clientAddress","toolbar=0,resizable=0,directories=0,location=0,menubar=0");else this.popupWin=window.open("client_address.php?clientId="+clientId,"win_clientAddress","location=1,status=1,scrollbars=1,width=600,height=500");this.popupWin.focus()},fields:{Type:{"collect":["CollAddrTypeMenu"],"delivery":["DeliveryAddrTypeMenu"]},MetroId:{"collect":["AutoCompleteField1"],"delivery":["AutoCompleteField3"]},MetroName:{"collect":["AutoCompleteField1_text"],"delivery":["AutoCompleteField3_text"]},Street:{"collect":["AutoCompleteField2"],"delivery":["AutoCompleteField4"]},StreetName:{"collect":["AutoCompleteField2_text","CollStreet45"],"delivery":["AutoCompleteField4_text","DeliveryStreet45"]},House:{"collect":["CollHouse","CollHouse45"],"delivery":["DeliveryHouse","DeliveryHouse45"]},Building:{"collect":["CollBuilding","CollBuilding45"],"delivery":["DeliveryBuilding","DeliveryBuilding45"]},Porch:{"collect":["CollPodjed","CollPodjed45"],"delivery":["DeliveryPodjed","DeliveryPodjed45"]},Flat:{"collect":["CollFlat","CollFlat45"],"delivery":["DeliveryFlat","DeliveryFlat45"]},Station:{"collect":["CollVoczal"],"delivery":["DeliveryVoczal"]},Airport:{"collect":["CollAirport"],"delivery":["DeliveryAirport"]},Hiway:{"collect":["CollSubWay"],"delivery":["DeliverySubWay"]},Village:{"collect":["CollVillage"],"delivery":["DeliveryVillage"]},Comment:{"collect":["CollComment"],"delivery":["DeliveryComment"]}},setAddress:function(address){for(var prop in this.fields){if(address[prop]||address[prop]==="")$A(this.fields[prop][this.getAddressType]).each(function(elt){if($(elt)){$(elt).setValue(address[prop])}})}this.CollAddrTypeChange();this.DeliveryAddrTypeChange()},validateDate:function(){var collDateStr=$("CollDate").value.replace(/^(\d{2})\-(\d{2})-(\d{4})$/g,"$2/$1/$3");collDateStr+=" "+$("CollTime").value.substr(0,2)+":"+$("CollTime").value.substr(2);var now=(new Date()).getTime();var colldate=Date.parse(collDateStr);if(isNaN(colldate)){this.dateValidator.field="CollTime";throw new Error("Введены неверные данные");}var minutes20=new Date();minutes20.setMinutes(minutes20.getMinutes()+20);if(colldate<now){var today=new Date();today.setTime(now);today.setHours(0);today.setMinutes(0);today.setSeconds(0);today.setMilliseconds(0);var then=new Date();then.setTime(colldate);then.setHours(0);then.setMinutes(0);then.setSeconds(0);then.setMilliseconds(0);if(today.getTime()>then.getTime()){this.dateValidator.field="CollDate";throw new Error("Дата не может быть меньше текущей");return}this.dateValidator.field="CollTime";throw new Error("Время не может быть меньше текущего");return}if(colldate<minutes20){this.dateValidator.field="CollTime";throw new Error("Время не ранее +20 минут от текущего");return}return true},metroStreetValidation:function(){$A([{id:$("AutoCompleteField0"),text:$("AutoCompleteField0_text")},{id:$("AutoCompleteField1"),text:$("AutoCompleteField1_text")},{id:$("AutoCompleteField2"),text:$("AutoCompleteField2_text")}]).each(this.checkAutocomplete.bind(this))},checkAutocomplete:function(objAutocomplete){if(!FormValidator.checkFieldVisible(objAutocomplete.text))return;if(!objAutocomplete.id.value||objAutocomplete.id.value<1){this.locationsValidator.field=objAutocomplete.text.id;throw new Error("Значение должно быть выбрано из списка");}}};