function showElements(n){$("#"+n+"Section").css({display:"block"});$("#"+n+" :first-child").css({display:"none"});$("#"+n+" :last-child").css({display:"inline-block"})}function hideElements(n){$("#"+n+"Section").css({display:"none"});$("#"+n+" :first-child").css({display:"inline-block"});$("#"+n+" :last-child").css({display:"none"})}function toggleElements(n){$("#"+n+"Section").toggle();$("#"+n+"Section").css("display")=="none"?($("#"+n+" :first-child").css({display:"inline-block"}),$("#"+n+" :last-child").css({display:"none"})):($("#"+n+" :first-child").css({display:"none"}),$("#"+n+" :last-child").css({display:"inline-block"}))}function checkIfNotDisplayed(n){return $("#"+n+"Section").css("display")=="none"}function setCookie(n,t,i){var r=new Date,u;r.setDate(r.getDate()+i);u=escape(t)+(i==null?"":"; expires="+r.toUTCString());document.cookie=n+"="+u}function getCookie(n){var t=document.cookie,i=t.indexOf(" "+n+"="),r;return i==-1&&(i=t.indexOf(n+"=")),i==-1?t=null:(i=t.indexOf("=",i)+1,r=t.indexOf(";",i),r==-1&&(r=t.length),t=unescape(t.substring(i,r))),t}function checkCookieIfUserIsNew(){var n=getCookie("newUser");return n!="false"}function showPopupDatasetinfoWindow(){$(".popup_bg").css({display:"block"});$("#datasetInfoPopup").css({display:"block"})}function hidePopupDatasetinfoWindow(){setCookie("newUser",!1,365);$(".popup_bg").css({display:"none"});$("#datasetInfoPopup").css({display:"none"})}var windowURL,app,mediator;ko.bindingHandlers.fadeVisible={update:function(n,t,i){var r=t(),u=i(),f=ko.utils.unwrapObservable(r),e=u.fadeDuration||200;f==!0?$(n).fadeIn(e):$(n).hide()}};ko.bindingHandlers.autocomplete={init:function(n,t){var i=t(),r=i.source;$(n).autocomplete({source:function(n,t){r(n.term,t)},select:function(t,r){var u=r.item.data||r.item.value||r.item;i.select?(i.select(u),$(n).val("")):$(n).val(u);$(n).change();t.preventDefault()}})}};ko.bindingHandlers.ko_autocomplete={init:function(n,t){$(n).autocomplete(t())},update:function(n,t){$(n).autocomplete("option","source",t().source)}};ko.bindingHandlers.datepicker={init:function(n,t,i){var r=i().datepickerOptions||{};ko.utils.extend(r,{dateFormat:"dd.mm.yy",dayNamesMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],firstDay:1,monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октярь","Ноябрь","Декабрь"],altFormat:"dd.mm.yy"});$(n).datepicker(r);ko.utils.registerEventHandler(n,"change",function(){var i=t();i($(n).datepicker("getDate"))});ko.utils.domNodeDisposal.addDisposeCallback(n,function(){$(n).datepicker("destroy")})},update:function(n,t){var i=ko.utils.unwrapObservable(t()),r=$(n).datepicker("getDate");i-r!=0&&$(n).datepicker("setDate",i)}};ko.bindingHandlers.datePicker={init:function(n,t,i){var r=i().datepickerOptions||{};ko.utils.extend(r,{dateFormat:"dd.mm.yy",dayNamesMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],firstDay:1,monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октярь","Ноябрь","Декабрь"],altFormat:"dd.mm.yy",defaultDate:null});$(n).datepicker(r);ko.utils.domNodeDisposal.addDisposeCallback(n,function(){$(n).datepicker("destroy")})},update:function(n,t){var i=ko.utils.unwrapObservable(t()),r=$(n).datepicker("getDate");i-r!=0&&$(n).datepicker("setDate",i)}};ko.extenders.required=function(n,t){return t=typeof t=="string"?t:"Заполните поле",n.hasError=ko.observable(),n.validationMessage=ko.observable(),n.validate=function(i){var r=i?!1:n()?!1:!0;return n.hasError(r),n.validationMessage(r?t||"Не заполнено обязательное поле.":""),r},n.subscribe(n.validate),n};ko.bindingHandlers.dateString={update:function(n,t,i){var u=t(),f=i(),r=ko.utils.unwrapObservable(u),e=f.datePattern||"DD.MM.YYYY";$(n).text(moment(r)?moment(r).format(e):"")}};ko.bindingHandlers.newDateString={update:function(n,t,i){var r=t(),u=i(),f=ko.utils.unwrapObservable(r),e=u.datePattern||"HH:mm";$(n).text(moment(f).format(e))}};ko.dirtyFlag=function(n,t){var i=function(){},r=ko.observable(ko.toJSON(n)),u=ko.observable(!!t);return i.isDirty=ko.computed(function(){return u()||r()!==ko.toJSON(n)}),i.save=function(){r(ko.toJSON(n));u(!1)},i.reset=function(){return u(!1),JSON.parse(r())},i};ko.lazyObservableArray=function(n,t){var r=ko.observable(),i=ko.dependentObservable({read:function(){return i.loaded()||n.call(t),r()},write:function(n){i.loaded(!0);r(n)},deferEvaluation:!0});return i.loaded=ko.observable(),i.refresh=function(){i.loaded(!1)},i};windowURL=window.URL||window.webkitURL;ko.bindingHandlers.file={init:function(n,t){$(n).change(function(){var n;jQuery.browser.msie&&jQuery.browser.version<10?alert("Версия браузера устарела. Загрузка изображений не поддерживается"):(n=this.files[0],n.type=="image/png"?ko.isObservable(t())&&t()(n):alert("Изображение не будет сохранено, так как допустимый формат только .png"))})},update:function(n,t,i){var u=ko.utils.unwrapObservable(t()),r=i(),f,e,o;r.fileObjectURL&&ko.isObservable(r.fileObjectURL)&&(f=r.fileObjectURL(),f&&windowURL.revokeObjectURL(f),r.fileObjectURL(u&&windowURL.createObjectURL(u)));r.fileBinaryData&&ko.isObservable(r.fileBinaryData)&&(u?(e=new FileReader,e.onload=function(n){r.fileBinaryData(n.target.result)},e.readAsArrayBuffer(u)):r.fileBinaryData(null));r.fileBinaryData&&ko.isObservable(r.fileBinaryData)&&(u?(o=new FileReader,o.onload=function(n){r.fileBase64Data(n.target.result.substr(22))},o.readAsDataURL(u)):r.fileBinaryData(null))}};Array.prototype.Where=function(n,t){var r=[],i,u;if(typeof n=="function")for(i=0;i<this.length;i++)n(this[i])&&r.push(this[i]);else for(i=0,u=this.length;i<u;i++)this[i][n]===t&&r.push(this[i]);return r};Array.prototype.GroupBy=function(n){for(var i=[],t=0,r=this.length;t<r;t++)i[this[t][n]]||(i[this[t][n]]=[]),i[this[t][n]].push(this[t]);return i};Array.prototype.filter=function(n,t){var u,i,r,f,e;if(n=n||"Id",u=[],typeof n=="function")for(i=0,r=this.length;i<r;i++)n(this[i])&&u.push(this[i]);else for(t.constructor!==Array&&(t=[t]),i=0,r=this.length;i<r;i++)for(f=0,e=t.length;f<e;f++)this[i][n]==t[f]&&u.push(this[i]);return u};Array.prototype.first=function(n){if(typeof n=="function")for(var t=0,i=this.length;t<i;t++)if(n(this[t]))return this[t];return null};Array.prototype.initMap=function(){this.map=[];for(var n=0;n<this.length;n++)this.map[this[n].Id]=this[n]};Array.prototype.Max=function(n){var i=this[0],t,r;if(n&&i[n]!=="undefined"){for(i=i[n],t=0,r=this.length;t<r;t++)i<this[t][n]&&(i=this[t][n]);return i}for(t=0,r=this.length;t<r;t++)i<this[t]&&(i=this[t]);return i};Array.prototype.Min=function(n){var i=this[0],t,r;if(n&&i[n]!=="undefined"){for(i=i[n],t=0,r=this.length;t<r;t++)i>this[t][n]&&(i=this[t][n]);return i}for(t=0,r=this.length;t<r;t++)i>this[t]&&(i=this[t]);return i};Array.prototype.Sum=function(n){for(var i=0,t=0;t<this.length;t++)n(this[t])&&(i+=n(this[t]));return i};String.prototype.Format=function(){var t=this.valueOf(),n,i;if(arguments.length>0)for(n=0,i=arguments.length;n<i;n++)(typeof arguments[n]=="string"||typeof arguments[n]=="number")&&(t=t.replace(new RegExp("\\{"+n+"\\}","g"),arguments[n]));return t};String.prototype.parseDate=function(offset){try{var d=eval(this.replace(/\/(Date\([0-9-]+\))\//gi,"new $1")),utc=d.getTime()+d.getTimezoneOffset()*6e4;return offset=offset||0,new Date(utc+36e5*offset)}catch(e){return null}};app=window.app=window.app||{};app.helpers=app.helpers||{};app.helpers.initValues=function(n,t){var i,r,u;if(t)for(i in t)r=n[i],r&&ko.isWriteableObservable(r)?(u=r.initValue||t[i],r(r.initValue||t[i])):n[i]=t[i]};app.helpers.setPaging=function(n,t,i,r){var e=4,o=1,u=[],f,s;if($(n).html(""),!(t-1>i)&&i!=1){for(t+2>e&&t-1<=i&&(u.push("<button class='btn dml_10' onclick='void(0);'>&lt;&lt;<\/button>"),u.push("<button class='btn dml_10' onclick='void(0);'>&lt;<\/button>"),o=t-2,e+=t-2),f=o,s=i>e?e:i;f<=s;f++)f==t?u.push("<button class='btn active'><span>"+f+"<\/span><\/button>"):u.push("<button class='btn' onclick='void(0);'>"+f+"<\/button>");i>e&&(u.push("<button class='btn dml_10' onclick='void(0);'>&gt;<\/button>"),u.push("<button class='btn dml_10' onclick='void(0);'>&gt;&gt;<\/button>"));$(n).html(u.join(""));$("button").click(function(u){u.preventDefault();var e=$(this).html(),f=t;switch(e){case"&gt;":f=f+1<i?f+1:i;break;case"&gt;&gt;":f=i;break;case"&lt;":f=f-1>1?f-1:1;break;case"&lt;&lt;":f=1;break;default:f=parseInt(e)}return app.helpers.setPaging(n,f,i,r),r&&r(f),!1})}};app.helpers.getTree=function(n,t){for(var r=n.Where(function(n){return n.ParentId==t}),i=0,u=r.length;i<u;i++)r[i].Childrens=app.helpers.getTree(n,r[i].Id);return r};app.helpers.childefy=function(n,t){var r=[],i,f,u;for(t=t||null,i=0,f=n.length;i<f;i++)u=n.Where(function(t){return t.ParentId===n[i].Id}),u.length&&(n[i].Childrens=u),n[i].ParentId==t&&r.push(n[i]);return r.length?r:n};mediator=function(){var t=function(){typeof console.log!="undefined"&&console.log(arguments[0])},n={},i=function(i,r,u){var f=i||!1,e=r||[],o,s;if(f){e.constructor!=Array&&(e=[e]);t(["Mediator received",f,e].join(" "));for(o in n)if(typeof n[o]["on"+f]=="function"){s=u||n[o];try{t("Mediator calling "+f+" on "+o);n[o]["on"+f].apply(s,e)}catch(h){t(["Mediator error.",f,e,s,h].join(" "))}}}},r=function(i,r,u){if(i in n){if(u){for(var f in r)n[i][f]&&t(f+" overwriten!"),n[i][f]=r[f];return}throw new Error("Mediator name conflict: "+i);}n[i]=r},u=function(t){t in n&&delete n[t]},f=function(t){return n[t]||!1},e=function(t){return t in n};return{name:"mediator",broadcast:i,add:r,remove:u,get:f,contains:e}}()