function mainFnc(){Ext.BLANK_IMAGE_URL="/extjs/s.gif";var Master={};var module;Ext.Ajax.disableCaching=false;if(Ext.QuickTips){Ext.QuickTips.init()}Master={tools:{},modules:{},moduleClasses:{},loadedModule:null,loadedTools:{},loadedClasses:{},loadedPackages:{},core:null,currentModule:null,loadingMessage:"Loading...",exception:function(a,b,c){if(Master.Error){Master.Error.handleException(a,b,c)}else{Master.trace();Master.log(a);Master.log(b);Master.log(c)}},error:function(msg){if(Master.Error){Master.Error.handleError({message:msg})}else{Master.log(msg);Master.trace()}},start:function(){Master.core.start()},doLogin:function(){Master.core.doLogin()},onReady:function(){Master.core.onReady()},setWindow:function(win){return Master.core.setWindow(win)},unsetWindow:function(win){return Master.core.unsetWindow(win)},getModule:function(moduleName){if(Master.modules.hasOwnProperty(moduleName)){return Master.modules[moduleName]}else{return false}},setModule:function(moduleName,module){Master.modules[moduleName]=module},log:function(m){if(window.console){if(Ext.isFunction(console.log)){console.log(m)}}},trace:function(){if(window.console&&window.console.trace){console.trace()}},loadModule:function(moduleName,options,callback){if(Master.getModule(moduleName)&&!Master.debug){callback(Master.getModule(moduleName))}else{if(Master.moduleClasses[moduleName]&&!Master.debug){Master.setModule(moduleName,new Master.moduleClasses[moduleName]());callback(Master.getModule(moduleName))}else{var fnc=function(){try{if(Master.Module[moduleName]){Master.moduleClasses[moduleName]=function(){Master.moduleClasses[moduleName].superclass.constructor.call()};var mod=new Master.Module[moduleName]();mod.moduleName=moduleName;Ext.extend(Master.moduleClasses[moduleName],Master.Module.Abstract,mod);Master.setModule(moduleName,new Master.moduleClasses[moduleName]());callback(Master.getModule(moduleName))}else{Master.showError("Ошибка","Не удалось подгрузить модуль");callback(false)}}catch(err){callback(false)}};if(Master.Module[moduleName]&&!Master.debug){fnc()}else{if(options&&options.toolName){if(options.toolName=="grid"){Master.Module[moduleName]=Master.createGridModule(options.key,options.mode||"grid")}else{if(options.toolName=="tree"){Master.Module[moduleName]=Master.createTreeModule(options.key)}else{alert("Не удалось запустить модуль. toolName "+options.toolName+" is unsupported.")}}fnc()}else{Master.loadStaticScript(Master.Url.js("/module/"+moduleName.replace(/_/g,"/")),fnc)}}}}},runModule:function(moduleName,options){Master.mask();try{var module=Master.getModule(moduleName);if(module){var win=module.window;if(win){module.setOptions(options,function(){win.show();Master.unmask();Master.currentModule=module})}else{module.run(function(){Master.unmask();Master.currentModule=module},options)}}else{var callback=function(module){if(module){module.run(function(){Master.unmask();Master.currentModule=module},options)}else{Master.unmask()}};Master.loadModule(moduleName,options,callback)}}catch(err){Master.exception(err,"Не удалось запустить модуль. moduleName :"+moduleName)}},renderModule:function(config){return Master.core.renderModule(config)},createWindow:function(config){return Master.core.createWindow(config)},isClassLoaded:function(className){if(this.loadedClasses[className]){return true}},setLoadedClass:function(className){this.loadedClasses[className]=true},unsetLoadedClass:function(className){this.loadedClasses[className]=false},isToolLoaded:function(toolName){if(this.loadedTools[toolName]){return true}},unsetLoadedTool:function(toolName){alert(toolName);this.loadedTools[toolName]=false},setLoadedTool:function(toolName){this.loadedTools[toolName]=true},loadClasses:function(classes,callback){if(classes&&classes.length!==0){callback=callback||function(){};if(typeof(classes)==="object"){var _classes=[];var cb=function(){var classesItem;try{classesItem=_classes.pop()||{};var fnc=classesItem.cb;if(classesItem.name){Master.loadClasses(classesItem.name,fnc)}else{if(fnc){fnc()}}}catch(err){Master.exception(err,"Не удалось загрузить class. class:"+classesItem?classesItem.name:"")}};_classes.push({cb:callback,name:null});for(var i=classes.length-1;i>=0;i--){if(!Master.isClassLoaded(classes[i])){_classes.push({cb:cb,name:classes[i]})}}cb()}else{Master.loadStaticScript(Master.Url.js("/classes/"+classes.replace(/_/g,"/")),callback||function(){})}}else{callback()}},loadPackage:function(name,callback){callback=callback||function(){};if(this.loadedPackages[name]){callback(true)}else{if(window["MasterTestPackage_"+name]){window["MasterTestPackage_"+name](this);this.loadedPackages[name]=true;callback(true)}else{var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.setAttribute("src",Master.Url.js("/package/"+name+"-0.10022"));script.setAttribute("type","text/javascript");head.appendChild(script);var counter=600;var readResponse=function(){if(counter<0){callback(false)}else{if(window["MasterTestPackage_"+name]){window["MasterTestPackage_"+name](this);this.loadedPackages[name]=true;callback(true)}else{counter--;setTimeout(readResponse,50)}}}.createDelegate(this);readResponse()}}},loadTools:function(tool,callback){if(tool&&tool.length!==0){callback=callback||function(){};if(typeof(tool)==="object"){var tools=[],toolsItem,fnc;var cb=function(){try{toolsItem=tools.pop();fnc=toolsItem.cb;if(toolsItem.name){Master.loadTools(toolsItem.name,fnc)}else{fnc()}}catch(err){Master.exception(err,"Не удалось загрузить Tool. tool:"+toolsItem?toolsItem.name:"")}};tools.push({cb:callback,name:null});for(var i=tool.length-1;i>=0;i--){if(!Master.isToolLoaded(tool[i])){tools.push({cb:cb,name:tool[i]})}}cb()}else{Master.loadStaticScript(Master.Url.js("/tools/"+tool.replace(/_/g,"/")),callback||function(){})}}else{callback()}},loadStaticScript:function(url,callback){callback=callback||function(){};Ext.Ajax.request(Master.Json.getRequestConfig({url:url,method:"GET",js:true,disableCaching:false,callback:function(option,success,response){if(response){try{eval(response.responseText);callback()}catch(err){Master.exception(err,"ошибка при загрузке скрипта по url: "+url,"When downloading an error occurred. Please try again or reload the page.");callback()}}}}))},reloadMenu:function(){Master.core.reloadMenu()},errors:[],errorWinStatus:"hide",errorCounter:0,alertErrors:false,showErrors:function(){if(Master.errorWinStatus==="hide"||this.alertErrors){if(Master.errors.length===0){return}var err=Master.errors.shift();if(err){var title=err.title;var msg=err.msg;if(this.alertErrors){alert(title+":\n"+msg)}else{Master.errorWinStatus="opening";Ext.Msg.show({title:title,msg:msg,width:400,animEl:"ux-startbutton",fn:function(){Master.errorVisible=false;--Master.errorCount;Master.showErrors()},icon:Ext.MessageBox.ERROR,buttons:Ext.Msg.OK})}setTimeout(Master.showErrors,1000)}}else{if(Master.errorWinStatus==="opening"){if(Ext.Msg.isVisible()){Master.errorWinStatus="open";this.errorCounter=0}else{if(this.errorCounter>30){this.alertErrors=true}else{++this.errorCounter}}setTimeout(Master.showErrors,1000)}else{if(Master.errorWinStatus==="open"){if(!Ext.Msg.isVisible()){Master.errorWinStatus="hide";setTimeout(Master.showErrors,2000);return}}else{Master.errorWinStatus="hide"}}}return},showError:function(title,msg){Master.errors.push({title:title,msg:msg});Master.showErrors();Master.unmask()},confirm:function(title,text,callback){if(this.errorCounter<20){Ext.MessageBox.confirm(title,text,callback)}else{var r=confirm(text);if(r===true){callback("yes")}else{callback("no")}}},alert:function(title,text){if(this.errorCounter<20){Ext.MessageBox.alert(title,text)}else{alert(title+"\n"+text)}},maskCounter:0,mask:function(msg,count){if(count){Master.maskCounter=count}Ext.getBody().mask(msg||Master.loadingMessage,"x-mask-loading")},unmask:function(){if(Master.maskCounter>0){Master.maskCounter=Master.maskCounter-1;if(Master.maskCounter>0){return null}}Ext.getBody().unmask()},setUserData:function(type,id){function getCookie(name){var cookie=" "+document.cookie;var search=" "+name+"=";var setStr=null;var offset=0;var end=0;if(cookie.length>0){offset=cookie.indexOf(search);if(offset!=-1){offset+=search.length;end=cookie.indexOf(";",offset);if(end==-1){end=cookie.length}setStr=unescape(cookie.substring(offset,end))}}return(setStr)}Ext.Ajax.defaultHeaders={project:"master",masterUT:type,masterUID:id?id:"empty"}},validateEmail:function(email,cb){var url="/validate_email.php";var data={email:email};var callback=function(res){if(res.success){cb(res.data)}else{alert("error was occured during request");cb(true)}};Master.r({url:url,params:data,cb:callback})},openWin:function(href){window.open(href,"_blank")},notice:function(msg){var win=new Ext.Window({title:"Notice",width:300,height:100,autoScroll:true,autoShow:true,renderTo:Ext.getBody(),cls:"master-notice",html:msg,tabTip:"Close",listeners:{render:function(w){w.alignTo(Ext.getBody(),"br-br?",[-300,-100]);var el=w.getEl();el.setOpacity(0.7);el.on("click",function(){w.close()})}}});win.show();return win},each:function(array,fn,scope){if(Ext.isArray(array)||!Ext.isObject(array)){Ext.each(array,fn,scope)}else{if(Ext.isEmpty(array,true)){return 0}for(var i in array){if(array.hasOwnProperty(i)){if(fn.call(scope||array[i],array[i],i,array)===false){return i}}}}},id:function(id){return id?(id+"-"+Ext.id()):Ext.id()},shortName:function(surname,name,patronymic){var res="",f=Ext.util.Format;try{if(surname){res+=f.capitalize(f.lowercase(surname));if(name){res+=" "+f.uppercase(name.substr(0,1));if(patronymic){res+=" "+f.uppercase(patronymic.substr(0,1))}}}return f.htmlEncode(res)}catch(e){Master.exception(e)}return surname}};Master.Server={Json:{},Js:{}};Master.Button={};Master.Button.Ok="MASTER_OK";Master.Button.Cancel="MASTER_CANCEL";Master.Button.Reset="MASTER_RESET";Master.setUserData("guest");Master.Module={};Master.debug=false;Ext.onReady(Master.onReady);Ext.Msg.minWidth=420;Ext.util.Format.masterEncode=function(v){return Ext.util.Format.nl2br(Ext.util.Format.htmlEncode(v))};if(!Ext.ux){Ext.namespace("Ext.ux")}Ext.ux.clone=function(o){if(!o||"object"!==typeof o){return o}var c="[object Array]"===Object.prototype.toString.call(o)?[]:{};var p,v;for(p in o){if(o.hasOwnProperty(p)){v=o[p];if(v&&"object"===typeof v){c[p]=Ext.ux.clone(v)}else{c[p]=v}}}return c};Master.setLoadedTool("textarea");Master.tools.textarea=Ext.extend(Ext.form.TextArea,{constructor:function(config){var resizer;var textArea=this;Master.tools.textarea.superclass.constructor.apply(this,arguments);var w=textArea.width;var h=textArea.height;this.on("render",function(){if(!resizer){resizer=new Ext.Resizable(textArea.getEl(),{width:w,height:h,handles:config.handles||undefined,minWidth:config.minWidth||50,minHeight:config.minHeight||50,wrap:true,pinned:true,resizeChild:true});resizer.on("resize",function(r,w,h){textArea.setHeight(h);textArea.setWidth(w)})}});this.on("show",function(){if(resizer){resizer.resizeTo(w,h)}});this.addClass("x-masterarea")}});Ext.reg("masterarea",Master.tools.textarea);Master.setLoadedTool("form");Master.tools.form=true;Master.FormPanel=Ext.extend(Ext.form.FormPanel,{win:null,getValues:null,constructor:function(config){var mySubmit,loadFormItems,maskAction,getIdValues,getValues,setMasterButtons;var form;this.formFields=new Ext.util.MixedCollection();var formFields=this.formFields;var formType="add";var submitByEnter=false;var json="/";var callback=function(){};var key;getIdValues=function(){var values={};formFields.each(function(field){if(field.getXType()=="combo"||field.getXType()=="mastercombo"){values[field.getName()]=field.getValue()}});return values};getValues=function(){var values={};formFields.each(function(field){if(field.getXType()=="combo"||field.getXType()=="mastercombo"){values[field.getName()]=field.el.dom.value}else{values[field.getName()]=field.getValue()}});return values};this.getValues=getValues;mySubmit=function(){try{form.getForm().submit(Master.Json.getActionConfig({params:{helper:"form",id_values:Ext.encode(getIdValues())},url:(form.url&&form.url.isUrl)?form.url.json():json,callback:callback,waitMsg:"Saving Data..."},"submit"))}catch(err){Master.exception(err,"Form submit")}};setMasterButtons=function(config,masterButtons){var resetHandler=function(){form.fireEvent("reset")};var cancelHandler=function(){try{form.fireEvent("cancel");form.fireEvent("close")}catch(e){Master.exception(e)}};var submitHandler=function(){form.fireEvent("submit")};var namePrefix="record_form_";if(config.hasOwnProperty("key")){namePrefix+=config.key+"_"}for(var i in config.masterButtons){if(config.masterButtons.hasOwnProperty(i)){config.buttons=config.buttons||[];if(config.masterButtons[i]===Master.Button.Ok){config.buttons.push({text:"OK",name:namePrefix+"ok",xtype:"form_button",formBind:formType==="add",handler:submitHandler})}else{if(config.masterButtons[i]===Master.Button.Cancel){config.buttons.push({text:"Cancel",name:namePrefix+"cancel",xtype:"form_button",formBind:false,handler:cancelHandler})}else{if(config.masterButtons[i]===Master.Button.Reset){config.buttons.push({text:"Reset",name:namePrefix+"reset",xtype:"form_button",formBind:false,handler:resetHandler})}}}}}};var additionalBox;var getAdditionalBox=function(){if(!additionalBox){var additionalBoxConfig={autoHeight:true,autoWidth:true,collapsible:true,collapsed:true,defaults:{width:170,msgTarget:"under"},title:"Additional Settings"};if(config.additionalBoxConfig){Ext.apply(additionalBoxConfig,config.additionalBoxConfig)}additionalBox=new Ext.form.FieldSet(additionalBoxConfig)}return additionalBox};loadFormItems=function(){var url;if(form.url&&form.url.isUrl){url=form.url.staticJson()}else{url=json}Ext.Ajax.request(Master.Json.getRequestConfig({url:url,method:"GET",disableCaching:false,callback:function(option,success,response){if(success){try{var config;var el;var obj=Master.Json.decodeResponse(response);if(!obj.success||!obj.fields){if(!obj.success){form.clean()}return}var submitByEnterFnc=function(el,event){if(event.getKey()===13){form.fireEvent("submit")}};for(var i in obj.fields){if(obj.fields.hasOwnProperty(i)){config=obj.fields[i];if(config.hasOwnProperty("maskRe")&&typeof(config.maskRe)==="string"){config.maskRe=new RegExp(config.maskRe)}if(formType==="search"){config.validateOnBlur=false;config.validationEvent=false;if(config.valueField){config.valueField=null;config.typeAhead=false;config.forceSelection=false;config.minChars=0}if(config.xtype&&config.xtype=="masterarea"){config.xtype="textfield"}}if(config.additional){el=getAdditionalBox().add(config)}else{el=form.add(config)}formFields.add(config.name,el);if(submitByEnter){el.on("specialkey",submitByEnterFnc,form)}if(config.hasOwnProperty("error")){if(config.error){form.doLayout();el.markInvalid(config.error)}else{form.doLayout();el.markInvalid()}}}}if(additionalBox){form.add(additionalBox)}form.removeListener("afterlayout",maskAction,form);var formEl=form.getEl();if(formEl){var doFormLayout=function(){form.doLayout();if(form.win&&form.win.center){form.win.center()}formEl.unmask()};setTimeout(doFormLayout,1000)}}catch(err){Master.exception(err,"При загрузке формы возникли ошибки.");form.clean()}}else{form.clean()}form.fireEvent("afterload",form)}}))};maskAction=function(){form.el.mask("Loading","x-mask-loading")};form=this;if(config.hasOwnProperty("formType")){formType=config.formType}if(config.hasOwnProperty("json")){json=config.json}if(config.hasOwnProperty("key")){key=config.key;this.url=new Url("master","helper","form",{name:key,type:formType})}if(config.hasOwnProperty("submitByEnter")){submitByEnter=config.submitByEnter}if(config.hasOwnProperty("masterButtons")){setMasterButtons(config,config.masterButtons)}config.defaultType="textfield";callback=config.callback||callback;config.items={inputType:"hidden",hidden:true};config.errorReader=config.errorReader||new Ext.data.JsonReader({successProperty:"success",root:"errors"},[{mapping:"field",name:"id"},{mapping:"message",name:"msg"}]);config.defaults=config.defaults||{};this.addEvents("submit","reset","cleanform","cancel","afterload");Master.FormPanel.superclass.constructor.call(this,config);this.doLayout();if(formType==="add"){this.on("submit",function(){mySubmit()})}this.on("afterlayout",maskAction,this);loadFormItems()},clean:function(){this.fireEvent("cleanform");if(this.win){Master.unsetWindow(this.win);this.win.fireEvent("beforeclose");this.win.close();Ext.destroy(this.win)}Ext.destroy(this)},reset:function(){this.formFields.each(function(field){field.setValue("");field.clearInvalid()})},setFieldValue:function(name,value){var field=this.formFields.get(name);if(field){field.setValue(value)}}});Master.FormPanel.createRecordForm=function(config){var c={labelWidth:110,border:false,frame:true,autoHeight:true,waitMsgTarget:true,animateTarget:Ext.get("x-desktop"),autoWidth:true,monitorValid:true,defaults:{width:190,msgTarget:"under"},masterButtons:[Master.Button.Ok]};Ext.apply(c,config);return new Master.FormPanel(c)};Master.FormPanel.showFormWindow=function(config,forms){if(!forms.length){forms=[forms]}var i;var enterFormWin={syncShadow:function(){}};var afterlayout=function(){enterFormWin.syncShadow()};var items=[],formConf,f;var closeFnc=function(){enterFormWin.close()};for(i in forms){if(forms.hasOwnProperty(i)){formConf=forms[i]||{};formConf.listeners=formConf.listeners||{};formConf.listeners.afterlayout=afterlayout;formConf.listeners.clientvalidation=afterlayout;formConf.listeners.close=closeFnc;formConf.bodyStyle="padding: 10px";f=Master.FormPanel.createRecordForm(formConf);items.push(f)}}var def_config={title:"Record Form",autoHeight:true,autoShow:true,closable:false,resizable:false,minimizable:true,maximizable:false,layoutOnTabChange:true,plain:true,animateTarget:"ux-startbutton"};if(items.length>1){def_config.width=355}else{def_config.autoWidth=true}for(i in def_config){if(def_config.hasOwnProperty(i)){config[i]=config[i]||def_config[i]}}if(items.length>1){config.items=[new Ext.TabPanel({activeTab:0,listeners:{afterlayout:afterlayout},defaults:{autoHeight:true,width:350,border:false,bodyStyle:"padding: 10px"},border:false,items:items})]}else{if(items.length==1){config.items=items}}enterFormWin=Master.createWindow(config);enterFormWin.form=f;f.win=enterFormWin;enterFormWin.show();return enterFormWin};Master.setLoadedTool("captcha");Master.tools.captcha=Ext.extend(Ext.form.TextField,{labelSeparator:"",emptyText:"Enter code shown",style:"margin:7px 0;",constructor:function(config){this.fieldLabel='<img src="/captcha?id='+config.captchaId+"&uncache="+Ext.id()+'" alt="Captcha" width="110" height="32" />';Master.tools.captcha.superclass.constructor.apply(this,arguments)}});Ext.reg("captcha",Master.tools.captcha);Master.setLoadedClass("Core");Master.Core=Ext.extend(Object,function(){var errorCall=function(method){Master.error("Master.Core."+method+"() is not override")};return{start:function(){errorCall("start")},doLogin:function(){errorCall("doLogin")},onReady:function(){},reloadMenu:function(){errorCall("reloadMenu")},createWindow:function(){errorCall("createWindow")},renderModule:function(){errorCall("renderModule")},setWindow:function(){errorCall("setWindow")},unsetWindow:function(){errorCall("unsetWindow")}}}());Master.setLoadedClass("Core_Desktop");Master.Core_Demo=Ext.extend(Master.Core,{createWindow:function(cfg){return new Ext.Window(cfg)},onReady:function(){Master.loadPackage("QuizEditor",function(){var panel=new Master.Demo_QuizEditorDemo({width:800,renderTo:Ext.get("extjs_content"),style:"margin:auto",height:500})})}});Master.core=new Master.Core_Demo();Master.Form_Button=Ext.extend(Ext.Button,{constructor:function(config){config=config||{};config.listeners=config.listeners||{};config.listeners.render=function(button){if(button.name){button.btnEl.set({name:button.name})}};Master.Form_Button.superclass.constructor.call(this,config)}});Ext.reg("form_button",Master.Form_Button);Master.Proxy_SaveButton=Ext.extend(Master.Form_Button,{textSave:"Save",textSaved:"Saved",iconCls:"icon-save",disabled:true,constructor:function(config){config.text=this.textSaved;this.addEvents("disable","enable");Master.Proxy_SaveButton.superclass.constructor.call(this,config)},disable:function(){this.setText(this.textSaved);Master.Proxy_SaveButton.superclass.disable.call(this)},enable:function(){this.setText(this.textSave);Master.Proxy_SaveButton.superclass.enable.call(this)}});Ext.reg("savebutton",Master.Proxy_SaveButton);Master.Demo_QuizEditorDemo=Ext.extend(Ext.Panel,{layout:"fit",constructor:function(config){this.saveButton=new Master.Proxy_SaveButton({handler:function(){var config=this.editor.getQuizConfig();if(!config.getId()){var p=this;this.createQuiz(function(id){config.setId(id);p.saveQuizConfig(config)})}else{this.saveQuizConfig(config)}},scope:this});config.items={xtype:"quizeditor",border:false,bbar:[this.saveButton],listeners:{render:function(editor){Master.mask();this.editor=editor;var saveButton=this.saveButton;editor.getQuizConfig().on("change",saveButton.enable,this.saveButton);this.loadQuizConfig(function(res,success,data){var cnfg=editor.getQuizConfig();if(success&&data){cnfg.set(data);saveButton.disable()}else{editor.addQuestion()}if(res&&res.id){cnfg.setId(res.id)}editor.doQuizLayout();if(!success||!data){editor.editLastQuestion()}Master.unmask()})},scope:this}};Master.Demo_QuizEditorDemo.superclass.constructor.call(this,config)},saveQuizConfig:function(config){var editor=this.editor;var saveButton=this.saveButton;Master.r({url:["site","json","save-demo-quiz"],params:{id:config.getId(),data:config.toString()},cb:function(res,success,data){if(success&&data){var cnfg=editor.getQuizConfig();cnfg.set(data);saveButton.disable()}}})},createQuiz:function(callback){var win=Master.FormPanel.showFormWindow({title:"Saving dough"},{key:"t3bad",submitByEnter:true,masterButtons:[Master.Button.Ok,Master.Button.Cancel],callback:function(form,request){try{var res=Ext.decode(request.response.responseText);win.destroy();callback(res.new_id)}catch(e){Master.exception(e)}}})},loadQuizConfig:function(callback){var id;try{id=1*Ext.urlDecode(window.location.search.substr(1)).id}catch(e){id=null}Master.r({url:["site","json","load-demo-quiz"],params:{id:id},cb:callback})}});Master.setLoadedClass("Json");Master.Json={getActionConfig:function(config,actionType){config=config||{};config.method=config.method||"POST";var checkResult=this.checkResult;config.params=config.params||{};config.params.task=actionType;var failure=config.failure||function(){};var success=config.success||function(){};config.failure=function(form,action){var message="";if(action.failureType==Ext.form.Action.CLIENT_INVALID&&action.type==="submit"){return}else{if(action.failureType==Ext.form.Action.CONNECT_FAILURE){message+="Could not connect to server."}else{if(action.failureType==Ext.form.Action.LOAD_FAILURE){message+="No field values are returned in the responses data property! "}else{if(action.failureType==Ext.form.Action.SERVER_INVALID&&action.type==="submit"){}}}}Master.result=action.result;var result=Master.Json.decodeResponse(action.response);if(result){checkResult(result,message,1)}else{Master.showError("Error",message)}failure(form,action)};config.success=config.success||function(form,action){var result=Master.Json.decodeResponse(action.response);checkResult(result);if(config.callback){config.callback(form,action)}success(form,action)};config.waitMsg=config.waitMsg||(actionType==="submit"?"Processing.":"Loading.")+" Wait, please...";config.waitTitle=config.waitMsg||(actionType==="submit"?"Processing...":"Loading...");return config},decodeResponse:function(response,js){try{var result=Ext.util.JSON.decode(response.responseText);return result}catch(err){if(js){return false}Master.showError("Ошибка","Не удалось прочитать ответ сервера. <br>Описание: "+err);return false}},getRequestConfig:function(config){var js=config.js||false;var failureMode=config.failureMode?true:false;config=config||{};config.method=config.method||"POST";var checkResult=this.checkResult;var success=config.success||function(){};config.success=function(response){var result;if(js){try{result=Master.Json.decodeResponse(response,js);if(!result.hasOwnProperty("success")){return}}catch(err){Master.Error.handleException(err,"Ошибка при обработке резальтата запроса")}}else{result=Master.Json.decodeResponse(response)}if(!failureMode){checkResult(result)}success(response)};config.headers=config.headers||{};config.headers.master_req_type="master_json";config.headers.user_id="master_json";var failure=config.failure||function(){};config.failure=function(response){try{var result=Master.Json.decodeResponse(response);checkResult(result,js);failure(response)}catch(err){Master.Error.handleException(err,"Не удалось установить соединение с сервером","Could not connect to server")}};return config},checkResult:function(result,message,message_only){if(result){message=message||"";if(result.hasOwnProperty("messages")&&result.messages.length>0){for(var i=0;i<result.messages.length;i++){if(result.messages[i]){message+=result.messages[i]+"<br>"}}}if(result.hasOwnProperty("message")){message+=result.message+"<br>"}if(!message_only&&(!result.hasOwnProperty("success")||!result.success)){message="Server venules soobenie error.<br>"+message}if(message!==""){Master.showError("Warning!",message)}}else{if(!message_only){Master.showError("Error!","The server did not return a response.")}}},getDataCallback:function(callback){return function(options,success,response){if(success){var res=Master.Json.decodeResponse(response);if(res&&res.success){if(callback){callback(true,res.data||null)}}else{if(callback){callback(false)}}}}}};Master.r=function(config){if(!config){throw"empty config"}var cb=config.callback||config.cb||function(){};config.callback=function(options,success,response){if(success){var res=Master.Json.decodeResponse(response);if(config.scope){cb.call(config.scope,res,res.success?true:false,res.data)}else{cb(res,res.success?true:false,res.data)}}else{if(config.scope){cb.call(config.scope,{success:false},false,null)}else{cb({success:false},false,null)}}};if(config.url&&config.url instanceof Array){var u=config.url;config.url=Master.Url.json(u[0]||null,u[1]||null,u[2]||null,u[3]||null,u[4]||null)}config=Master.Json.getRequestConfig(config);return Ext.Ajax.request(config)};var Master=Master||{};if(Master.setLoadedClass){Master.setLoadedClass("Url")}Master.Url=function(){var lang="en";return{js:function(script){return"/"+lang+"/js"+script+".js"},staticJson:function(module,controller,action,params){var u=this.json(module,controller,action,params);return u.replace(".proxy",".master.json")},json:function(module,controller,action,params){var i;var u="/"+lang+"/"+module;if(controller){u+="/"+controller}else{return u+".proxy"}if(action){u+="/"+action}else{return u+".proxy"}if(params&&typeof(params)==="object"){var keys=[];for(i in params){if(params.hasOwnProperty(i)){keys.push(i)}}keys.sort();for(i in keys){if(keys.hasOwnProperty(i)&&params.hasOwnProperty(keys[i])){u+="/"+keys[i]+"/"+params[keys[i]]}}}return u+".proxy"}}}();var Url=function(mod,ct,act,params){return{isUrl:true,staticJson:function(){return Master.Url.staticJson(mod,ct,act,params)},json:function(){return Master.Url.json(mod,ct,act,params)}}}}mainFnc();Ext.removeNode=Ext.isIE?function(b){var a=document.createElement("div");if(b&&b.tagName!="BODY"){var a=document.createElement("div");a.appendChild(b);a.removeChild(b);delete Ext.Element.cache[b.id];a=null}}:function(a){if(a&&a.parentNode&&a.tagName!="BODY"){a.parentNode.removeChild(a);delete Ext.Element.cache[a.id]}};(function(){var c=function(g){var f={};for(var h in g){(g[h]===null||g[h]===undefined)||(f[h]=g[h])}return f};Ext.ux.Media=function(f){this.toString=this.asMarkup;Ext.apply(this,f||{});this.initMedia()};var a=Ext.ux.Media;var b=/4$/i;if(parseFloat(Ext.version)<2.1){throw"Ext.ux.Media and sub-classes are not License-Compatible with your Ext release."}Ext.ux.Media.prototype={mediaObject:null,mediaCfg:null,mediaVersion:null,requiredVersion:null,unsupportedText:null,hideMode:!Ext.isIE?"nosize":"display",animCollapse:Ext.enableFx&&Ext.isIE,animFloat:Ext.enableFx&&Ext.isIE,autoScroll:true,bodyStyle:{position:"relative"},visibilityCls:!Ext.isIE?"x-hide-nosize":null,initMedia:function(){},disableCaching:false,_maxPoll:200,getMediaType:function(f){return a.mediaTypes[f]},assert:function(f,g){f=typeof f==="function"?f.call(f.scope||null):f;return Ext.value(f,g)},assertId:function(g,f){g||(g=f||Ext.id());return g},prepareURL:function(h,j){var i=h?h.split("#"):[""];if(!!h&&(j=j===undefined?this.disableCaching:j)){var g=i[0];if(!(/_dc=/i).test(g)){var f="_dc="+(new Date().getTime());if(g.indexOf("&")!==-1){g+="&"+f}else{g+="?"+f}i[0]=g}}return i.length>1?i.join("#"):i[0]},prepareMedia:function(f,h,s,n){f=f||this.mediaCfg;if(!f){return""}var j=Ext.apply({url:false,autoSize:false},f);j.url=this.prepareURL(this.assert(j.url,false),j.disableCaching);if(j.mediaType){var q,g,k=Ext.Element.prototype;var i=Ext.apply({},this.getMediaType(this.assert(j.mediaType,false))||false);var l=c(Ext.apply(i.params||{},j.params||{}));for(var r in l){if(l.hasOwnProperty(r)){j.children||(j.children=[]);g=this.assert(l[r],null);j.children.push({tag:"param",name:r,value:typeof g==="object"?Ext.urlEncode(c(g)):encodeURI(g)})}}delete i.params;var o=this.assert(j.unsupportedText||this.unsupportedText||i.unsupportedText,null);if(o){j.children||(j.children=[]);j.children.push(o)}if(j.style&&typeof j.style!="object"){throw"Style must be JSON formatted"}j.style=this.assert(Ext.apply(i.style||{},j.style||{}),{});delete i.style;j.height=this.assert(s||j.height||i.height||j.style.height,null);j.width=this.assert(h||j.width||i.width||j.style.width,null);j=Ext.apply({tag:"object"},j,i);if(j.height||j.autoSize){Ext.apply(j.style,{height:(Ext.Element.addUnits||k.addUnits).call(this.mediaEl,j.autoSize?"100%":j.height,k.defaultUnit||"px")})}if(j.width||j.autoSize){Ext.apply(j.style,{width:(Ext.Element.addUnits||k.addUnits).call(this.mediaEl,j.autoSize?"100%":j.width,k.defaultUnit||"px")})}j.id=this.assertId(j.id);j.name=this.assertId(j.name,j.id);j._macros={url:j.url||"",height:(/%$/.test(j.height))?j.height:parseInt(j.height,10)||null,width:(/%$/.test(j.width))?j.width:parseInt(j.width,10)||null,scripting:this.assert(j.scripting,false),controls:this.assert(j.controls,false),scale:this.assert(j.scale,1),status:this.assert(j.status,false),start:this.assert(j.start,false),loop:this.assert(j.loop,false),volume:this.assert(j.volume,20),id:j.id};delete j.url;delete j.mediaType;delete j.controls;delete j.status;delete j.start;delete j.loop;delete j.scale;delete j.scripting;delete j.volume;delete j.autoSize;delete j.params;delete j.unsupportedText;delete j.renderOnResize;delete j.disableCaching;delete j.listeners;delete j.height;delete j.width;return j}else{var o=this.assert(j.unsupportedText||this.unsupportedText||i.unsupportedText,null);o=o?Ext.DomHelper.markup(o):null;return String.format(o||"Media Configuration/Plugin Error"," "," ")}},asMarkup:function(f){return this.mediaMarkup(this.prepareMedia(f))},mediaMarkup:function(i){i=i||this.mediaCfg;if(i){var h=i._macros;delete i._macros;var f=Ext.DomHelper.markup(i);if(h){var g,j;for(j in h){g=h[j];if(g!==null){f=f.replace(new RegExp("((%40|@)"+j+")","g"),g+"")}}}return f}},setMask:function(f){var g;if((g=this.mediaMask)){g.el||(g=this.mediaMask=new Ext.ux.IntelliMask(f,g));g.el.addClass("x-media-mask")}},refreshMedia:function(f){if(this.mediaCfg){this.renderMedia(null,f)}return this},renderMedia:function(l,g,k,f,i){if(!Ext.isReady){Ext.onReady(this.renderMedia.createDelegate(this,Array.prototype.slice.call(arguments,0)));return}var j=(this.mediaCfg=l||this.mediaCfg);g=Ext.get(this.lastCt||g||(this.mediaObject?this.mediaObject.dom.parentNode:null));this.onBeforeMedia.call(this,j,g,k,f,i);if(g){this.lastCt=g;if(j&&(j=this.prepareMedia(j,f,i,g))){this.setMask(g);this.mediaMask&&this.autoMask&&this.mediaMask.show();this.clearMedia().writeMedia(j,g,k||"afterbegin")}}this.onAfterMedia(g)},writeMedia:function(i,f,h){var g=Ext.get(f);if(g){h?Ext.DomHelper.insertHtml(h,g.dom,this.mediaMarkup(i)):g.update(this.mediaMarkup(i))}},clearMedia:function(){var f;if(Ext.isReady&&(f=this.mediaObject)){f.remove(true,true)}this.mediaObject=null;return this},resizeMedia:function(g,f,i){var j=this.mediaCfg;if(j&&this.boxReady&&j.renderOnResize&&(!!f||!!i)){if(arguments.length>3&&(!this.mediaObject||j.renderOnResize)){this.refreshMedia(this[this.mediaEl])}}},onBeforeMedia:function(l,i,k,j,g){var f=l||this.mediaCfg,h;if(f&&(h=this.getMediaType(f.mediaType))){f.autoSize=f.autoSize||h.autoSize===true;var n;if(f.autoSize&&(n=Ext.isReady?Ext.get(this[this.mediaEl]||this.lastCt||i):null)){f.height=this.autoHeight?null:n.getHeight(true);f.width=this.autoWidth?null:n.getWidth(true)}}this.assert(f.height,g);this.assert(f.width,j);l=f},onMediaLoad:function(f){if(f&&f.type=="load"){this.fireEvent("mediaload",this,this.mediaObject);if(this.mediaMask&&this.autoMask){this.mediaMask.hide()}}},onAfterMedia:function(g){var h;if(this.mediaCfg&&g&&(h=this.mediaObject=new (this.elementClass||Ext.ux.Media.Element)(g.child(".x-media",true)))){h.ownerCt=this;var f;if(f=this.mediaCfg.listeners||null){h.on(f)}this.fireEvent("mediarender",this,this.mediaObject);if(h.dom.tagName!=="OBJECT"){h.on({load:this.onMediaLoad,scope:this,single:true})}else{this._countPoll=0;this.pollReadyState(this.onMediaLoad.createDelegate(this,[{type:"load"}],0))}}if(this.autoWidth||this.autoHeight){this.syncSize()}},pollReadyState:function(f,g){var h=this.getInterface();if(h&&typeof h.readyState!="undefined"){(g||b).test(h.readyState)?f():arguments.callee.defer(10,this,arguments)}},getInterface:function(){return this.mediaObject?this.mediaObject.dom||null:null},detectVersion:Ext.emptyFn,autoMask:false};Ext.ns("Ext.ux.plugin");var e={init:function(){this.getId=function(){return this.id||(this.id="media-comp"+(++Ext.Component.AUTO_ID))};this.html=this.contentEl=this.items=null;if(this.hideMode=="nosize"&&Ext.ux.plugin.VisibilityMode){new Ext.ux.plugin.VisibilityMode({visibilityCls:"x-hide-nosize",hideMode:"nosize"}).init(this)}this.initMedia();this.toString=this.asMarkup;this.addEvents("mediarender","mediaload");if(this.mediaCfg.renderOnResize){this.on("resize",this.resizeMedia,this)}},afterRender:function(f){this.setMask(this[this.mediaEl]||f);if(!this.mediaCfg.renderOnResize){this.renderMedia(this.mediaCfg,this[this.mediaEl]||f)}},beforeDestroy:function(){this.clearMedia();Ext.destroy(this.mediaMask,this.loadMask);this.lastCt=this.mediaObject=this.renderTo=this.applyTo=this.mediaMask=this.loadMask=null}};Ext.ux.Media.Component=Ext.extend(Ext.BoxComponent,{ctype:"Ext.ux.Media.Component",mediaEl:"el",autoEl:{tag:"div",style:{overflow:"hidden",display:"block",position:"relative"}},cls:"x-media-comp",mediaClass:Ext.ux.Media,constructor:function(){Ext.apply(this,this.mediaClass.prototype);a.Component.superclass.constructor.apply(this,arguments)},initComponent:function(){a.Component.superclass.initComponent.apply(this,arguments);e.init.apply(this,arguments)},afterRender:function(f){a.Component.superclass.afterRender.apply(this,arguments);e.afterRender.apply(this,arguments)},beforeDestroy:function(){e.beforeDestroy.apply(this,arguments);a.Component.superclass.beforeDestroy.apply(this,arguments)},doAutoLoad:Ext.emptyFn,setAutoScroll:function(){if(this.rendered&&this.autoScroll){this.getEl().setOverflow("auto")}}});Ext.reg("uxmedia",Ext.ux.Media.Component);Ext.reg("media",Ext.ux.Media.Component);Ext.ux.Media.Panel=Ext.extend(Ext.Panel,{cls:"x-media-panel",ctype:"Ext.ux.Media.Panel",mediaEl:"body",mediaClass:Ext.ux.Media,constructor:function(){Ext.apply(this,this.mediaClass.prototype);a.Panel.superclass.constructor.apply(this,arguments)},initComponent:function(){a.Panel.superclass.initComponent.apply(this,arguments);e.init.apply(this,arguments)},afterRender:function(f){a.Panel.superclass.afterRender.apply(this,arguments);e.afterRender.apply(this,arguments)},beforeDestroy:function(){e.beforeDestroy.apply(this,arguments);a.Panel.superclass.beforeDestroy.apply(this,arguments)},doAutoLoad:Ext.emptyFn});Ext.reg("mediapanel",Ext.ux.Media.Panel);Ext.ux.Media.Portlet=Ext.extend(Ext.ux.Media.Panel,{anchor:"100%",frame:true,collapseEl:"bwrap",collapsible:true,draggable:true,autoWidth:true,ctype:"Ext.ux.Media.Portlet",cls:"x-portlet x-media-portlet"});Ext.reg("mediaportlet",Ext.ux.Media.Portlet);Ext.ux.Media.Window=Ext.extend(Ext.Window,{constructor:function(f){Ext.apply(this,this.mediaClass.prototype);a.Window.superclass.constructor.apply(this,arguments)},cls:"x-media-window",ctype:"Ext.ux.Media.Window",mediaClass:Ext.ux.Media,mediaEl:"body",initComponent:function(){a.Window.superclass.initComponent.apply(this,arguments);e.init.apply(this,arguments)},afterRender:function(){a.Window.superclass.afterRender.apply(this,arguments);e.afterRender.apply(this,arguments)},beforeDestroy:function(){e.beforeDestroy.apply(this,arguments);a.Window.superclass.beforeDestroy.apply(this,arguments)},doAutoLoad:Ext.emptyFn});Ext.reg("mediawindow",a.Window);Ext.onReady(function(){var f=Ext.util.CSS,g=[];f.getRule(".x-media",true)||(g.push(".x-media{width:100%;height:100%;outline:none;overflow:hidden;}"));f.getRule(".x-media-mask")||(g.push(".x-media-mask{width:100%;height:100%;overflow:hidden;position:relative;zoom:1;}"));f.getRule(".x-media-img")||(g.push(".x-media-img{background-color:transparent;width:auto;height:auto;position:relative;}"));f.getRule(".x-masked-relative")||(g.push(".x-masked-relative{position:relative!important;}"));if(!!g.length){f.createStyleSheet(g.join(""));f.refreshCache()}});Ext.override(Ext.Element,{mask:function(h,f){if(this.getStyle("position")=="static"){this.addClass("x-masked-relative")}this._mask||(this._mask=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask"},true));if(!this.select("iframe,frame,object,embed").elements.length){this.addClass("x-masked")}this._mask.setDisplayed(true);if(typeof h=="string"){this._maskMsg||(this._maskMsg=Ext.DomHelper.append(this.dom,{style:"visibility:hidden",cls:"ext-el-mask-msg",cn:{tag:"div"}},true));var g=this._maskMsg;g.dom.className=f?"ext-el-mask-msg "+f:"ext-el-mask-msg";g.dom.firstChild.innerHTML=h;g.center(this).setVisible(true)}if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&this.getStyle("height")=="auto"){this._mask.setHeight(this.getHeight())}return this._mask},unmask:function(f){if(this._maskMsg){this._maskMsg.setVisible(false);if(f){this._maskMsg.remove(true);delete this._maskMsg}}if(this._mask){this._mask.setDisplayed(false);if(f){this._mask.remove(true);delete this._mask}}this.removeClass(["x-masked","x-masked-relative"])},remove:function(g,f){if(this.dom){this.removeAllListeners();if(g){this.cleanse(true,f)}Ext.removeNode(this.dom);this.maskEl=null}},cleanse:function(g,h){if(this.isCleansed&&g!==true){return this}var i=this.dom,j=i.firstChild,f;while(i&&j){f=j.nextSibling;if(h){Ext.fly(j,"_cleanser").cleanse(g,h)}Ext.removeNode(j);j=f}this.isCleansed=true;return this}});Ext.ux.Media.Element=Ext.extend(Ext.Element,{visibilityMode:"x-hide-nosize",constructor:function(f){if(!f){return null}var g=typeof f=="string"?d.getElementById(f):f.dom||f;if(!g){return null}this.dom=g;this.id=g.id||Ext.id(g);Ext.Element.cache[this.id]=this},mask:function(g,f){this.maskEl||(this.maskEl=this.parent(".x-media-mask")||this.parent());return this.maskEl.mask.apply(this.maskEl,arguments)},unmask:function(f){if(this.maskEl){this.maskEl.unmask(f);this.maskEl=null}}});Ext.ux.Media.prototype.elementClass=Ext.ux.Media.Element;Ext.ux.IntelliMask=function(g,f){Ext.apply(this,f);this.el=Ext.get(g)};Ext.ux.IntelliMask.prototype={removeMask:false,msg:"Loading Media...",msgCls:"x-mask-loading",zIndex:null,disabled:false,active:false,autoHide:false,disable:function(){this.disabled=true},enable:function(){this.disabled=false},show:function(l,k,j,h){var i={},f=this.autoHide;h=parseInt(h,10)||20;if(typeof l=="object"){i=l;l=i.msg;k=i.msgCls;j=i.fn;f=typeof i.autoHide!="undefined"?i.autoHide:f;h=i.fnDelay||h}if(!this.active&&!this.disabled&&this.el){var g=this.el.mask(l||this.msg,k||this.msgCls);this.active=!!this.el._mask;if(this.active){if(this.zIndex){this.el._mask.setStyle("z-index",this.zIndex);if(this.el._maskMsg){this.el._maskMsg.setStyle("z-index",this.zIndex+1)}}}}else{h=0}if(typeof j==="function"){j.defer(h,i.scope||null)}else{h=0}if(f&&(f=parseInt(f,10)||2000)){this.hide.defer(f+(h||0),this)}return this.active?{mask:this.el._mask,maskMsg:this.el._maskMsg}:null},hide:function(f){if(this.el){this.el.unmask(f||this.removeMask)}this.active=false;return this},destroy:function(){this.hide(true);this.el=null}};Ext.ux.Media.mediaTypes={PDF:Ext.apply({tag:"object",cls:"x-media x-media-pdf",type:"application/pdf",data:"@url",autoSize:true,params:{src:"@url"}},Ext.isIE?{classid:"CLSID:CA8A9780-280D-11CF-A24D-444553540000"}:false),PDFFRAME:{tag:"iframe",cls:"x-media x-media-pdf-frame",frameBorder:0,style:{"z-index":2},src:"@url",autoSize:true},WMV:Ext.apply({tag:"object",cls:"x-media x-media-wmv",type:"application/x-mplayer2",data:"@url",autoSize:true,params:{filename:"@url",displaysize:0,autostart:"@start",showControls:"@controls",showStatusBar:"@status",showaudiocontrols:true,stretchToFit:true,Volume:"@volume",PlayCount:1}},Ext.isIE?{classid:"CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95",codebase:"http"+((Ext.isSecure)?"s":"")+"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701",type:"application/x-oleobject"}:{src:"@url"}),SWF:Ext.apply({tag:"object",cls:"x-media x-media-swf",type:"application/x-shockwave-flash",scripting:"sameDomain",standby:"Loading..",loop:true,start:false,unsupportedText:{cn:["The Adobe Flash Player is required.",{tag:"br"},{tag:"a",cn:[{tag:"img",src:"http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif"}],href:"http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash",target:"_flash"}]},params:{movie:"@url",menu:"@controls",play:"@start",quality:"high",allowscriptaccess:"@scripting",allownetworking:"all",allowfullScreen:false,bgcolor:"#FFFFFF",wmode:"opaque",loop:"@loop"}},Ext.isIE?{classid:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",codebase:"http"+((Ext.isSecure)?"s":"")+"://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"}:{data:"@url"}),JWP:Ext.apply({tag:"object",cls:"x-media x-media-swf x-media-flv",type:"application/x-shockwave-flash",data:"@url",loop:false,start:false,boundExternals:["sendEvent","addModelListener","addControllerListener","addViewListener","getConfig","getPlaylist"],params:{movie:"@url",flashVars:{autostart:"@start",repeat:"@loop",height:"@height",width:"@width",id:"@id"}}},Ext.isIE?{classid:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",codebase:"http"+((Ext.isSecure)?"s":"")+"://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0"}:false),QT:Ext.apply({tag:"object",cls:"x-media x-media-quicktime",type:"video/quicktime",style:{position:"relative","z-index":1,behavior:"url(#qt_event_source)"},scale:"aspect",unsupportedText:'<a href="http://www.apple.com/quicktime/download/">Get QuickTime</a>',scripting:true,volume:"50%",data:"@url",params:{src:Ext.isIE?"@url":null,href:"http://quicktime.com",target:"_blank",autoplay:"@start",targetcache:true,cache:true,wmode:"transparent",controller:"@controls",enablejavascript:"@scripting",loop:"@loop",scale:"@scale",volume:"@volume",QTSRC:"@url"}},Ext.isIE?{classid:"clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B",codebase:"http"+((Ext.isSecure)?"s":"")+"://www.apple.com/qtactivex/qtplugin.cab#version=7,2,1,0"}:{PLUGINSPAGE:"http://www.apple.com/quicktime/download/"}),QTEVENTS:{tag:"object",id:"qt_event_source",cls:"x-media x-media-qtevents",type:"video/quicktime",params:{},classid:"clsid:CB927D12-4FF7-4a9e-A169-56E4B8A75598",codebase:"http"+((Ext.isSecure)?"s":"")+"://www.apple.com/qtactivex/qtplugin.cab#version=7,2,1,0"},WPMP3:Ext.apply({tag:"object",cls:"x-media x-media-audio x-media-wordpress",type:"application/x-shockwave-flash",data:"@url",start:true,loop:false,boundExternals:["open","close","setVolume","load"],params:{movie:"@url",width:"@width",flashVars:{autostart:"@start",controller:"@controls",enablejavascript:"@scripting",loop:"@loop",scale:"@scale",initialvolume:"@volume",width:"@width",encode:"no",soundFile:""}}},Ext.isIE?{classid:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"}:false),REAL:Ext.apply({tag:"object",cls:"x-media x-media-real",type:"audio/x-pn-realaudio",data:"@url",controls:"imagewindow,all",start:false,standby:"Loading Real Media Player components...",params:{src:"@url",autostart:"@start",center:false,maintainaspect:true,controller:"@controls",controls:"@controls",volume:"@volume",loop:"@loop",console:"_master",backgroundcolor:"#000000"}},Ext.isIE?{classid:"clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA"}:false),SVG:{tag:"object",cls:"x-media x-media-img x-media-svg",type:"image/svg+xml",data:"@url",params:{src:"@url"}},GIF:{tag:"img",cls:"x-media x-media-img x-media-gif",src:"@url"},TIFF:{tag:"object",type:"image/tiff",cls:"x-media x-media-img x-media-tiff",data:"@url"},JPEG:{tag:"img",cls:"x-media x-media-img x-media-jpeg",src:"@url"},JP2:{tag:"object",cls:"x-media x-media-img x-media-jp2",type:Ext.isIE?"image/jpeg2000-image":"image/jp2",data:"@url"},PNG:{tag:"img",cls:"x-media x-media-img x-media-png",src:"@url"},HTM:{tag:"iframe",cls:"x-media x-media-html",frameBorder:0,autoSize:true,style:{overflow:"auto","z-index":2},src:"@url"},TXT:{tag:"object",cls:"x-media x-media-text",type:"text/plain",style:{overflow:"auto",width:"100%",height:"100%"},data:"@url"},RTF:{tag:"object",cls:"x-media x-media-rtf",type:"application/rtf",style:{overflow:"auto",width:"100%",height:"100%"},data:"@url"},JS:{tag:"object",cls:"x-media x-media-js",type:"text/javascript",style:{overflow:"auto",width:"100%",height:"100%"},data:"@url"},CSS:{tag:"object",cls:"x-media x-media-css",type:"text/css",style:{overflow:"auto",width:"100%",height:"100%"},data:"@url"},SILVERLIGHT:{tag:"object",cls:"x-media x-media-silverlight",type:"application/ag-plugin",data:"@url",params:{MinRuntimeVersion:"1.0",source:"@url"}},SILVERLIGHT2:{tag:"object",cls:"x-media x-media-silverlight",type:"application/x-silverlight-2-b2",data:"data:application/x-silverlight-2-b2,",params:{MinRuntimeVersion:"2.0"},unsupportedText:'<a href="http://go2.microsoft.com/fwlink/?LinkID=114576&v=2.0"><img style="border-width: 0pt;" alt="Get Microsoft Silverlight" src="http://go2.microsoft.com/fwlink/?LinkID=108181"/></a>'},DATAVIEW:{tag:"object",cls:"x-media x-media-dataview",classid:"CLSID:0ECD9B64-23AA-11D0-B351-00A0C9055D8E",type:"application/x-oleobject",unsupportedText:"MS Dataview Control is not installed"},OWCXLS:Ext.apply({tag:"object",cls:"x-media x-media-xls",type:"application/vnd.ms-excel",controltype:"excel",params:{DataType:"CSVURL",CSVURL:"@url",DisplayTitleBar:true,AutoFit:true}},Ext.isIE?{codebase:"file:msowc.cab",classid:"CLSID:0002E510-0000-0000-C000-000000000046"}:false),OWCCHART:Ext.apply({tag:"object",cls:"x-media x-media-xls",type:"application/vnd.ms-excel",data:"@url",params:{DataType:"CSVURL"}},Ext.isIE?{classid:"CLSID:0002E500-0000-0000-C000-000000000046"}:false),OFFICE:{tag:"object",cls:"x-media x-media-office",type:"application/x-msoffice",data:"@url"},POWERPOINT:Ext.apply({tag:"object",cls:"x-media x-media-ppt",type:"application/vnd.ms-powerpoint",file:"@url"},Ext.isIE?{classid:"CLSID:EFBD14F0-6BFB-11CF-9177-00805F8813FF"}:false),XML:{tag:"iframe",cls:"x-media x-media-xml",style:{overflow:"auto"},src:"@url"},VLC:Ext.apply({tag:"object",cls:"x-media x-media-vlc",type:"application/x-vlc-plugin",version:"VideoLAN.VLCPlugin.2",pluginspage:"http://www.videolan.org",events:true,start:false,params:{Src:"@url",MRL:"@url",autoplay:"@start",ShowDisplay:"@controls",Volume:"@volume",Autoloop:"@loop"}},Ext.isIE?{classid:"clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921",CODEBASE:"http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab"}:false),RDP:Ext.apply({tag:"object",cls:"x-media x-media-rdp",type:"application/rds",unsupportedText:'Remote Desktop Web Connection ActiveX control is required. <a target="_msd" href="http://go.microsoft.com/fwlink/?linkid=44333">Download it here</a>.',params:{Server:"@url",Fullscreen:false,StartConnected:false,DesktopWidth:"@width",DesktopHeight:"@height"}},Ext.isIE?{classid:"CLSID:9059f30f-4eb1-4bd2-9fdc-36f43a218f4a",CODEBASE:"msrdp.cab#version=5,2,3790,0"}:false)};if(Ext.provide){Ext.provide("uxmedia")}Ext.applyIf(Array.prototype,{map:function(g,k){var f=this.length;if(typeof g!="function"){throw new TypeError()}var j=new Array(f);for(var h=0;h<f;h++){if(h in this){j[h]=g.call(k||this,this[h],h,this)}}return j}});Ext.ux.MediaComponent=Ext.ux.Media.Component;Ext.ux.MediaPanel=Ext.ux.Media.Panel;Ext.ux.MediaPortlet=Ext.ux.Media.Portlet;Ext.ux.MediaWindow=Ext.ux.Media.Window})();(function(){var a=Ext.ux.Media;Ext.ux.Media.Flash=Ext.extend(Ext.ux.Media,{varsName:"flashVars",externalsNamespace:null,mediaType:Ext.apply({tag:"object",cls:"x-media x-media-swf",type:"application/x-shockwave-flash",loop:null,scripting:"sameDomain",start:true,unsupportedText:{cn:["The Adobe Flash Player{0}is required.",{tag:"br"},{tag:"a",cn:[{tag:"img",src:"http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif"}],href:"http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash",target:"_flash"}]},params:{movie:"@url",play:"@start",loop:"@loop",menu:"@controls",quality:"high",bgcolor:"#FFFFFF",wmode:"opaque",allowscriptaccess:"@scripting",allowfullscreen:false,allownetworking:"all"}},Ext.isIE?{classid:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",codebase:"http"+((Ext.isSecure)?"s":"")+"://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"}:{data:"@url"}),getMediaType:function(){return this.mediaType},assertId:function(f,e){f||(f=e||Ext.id());return f.replace(/\+|-|\\|\/|\*/g,"")},initMedia:function(){a.Flash.superclass.initMedia.call(this);var l=Ext.apply({},this.mediaCfg||{});var j=(this.requiredVersion=l.requiredVersion||this.requiredVersion||false);var e=!!(this.playerVersion=this.detectFlashVersion());var h=e&&(j?this.assertVersion(j):true);var g=this.assert(l.unsupportedText||this.unsupportedText||(this.getMediaType()||{}).unsupportedText,null);if(g){g=Ext.DomHelper.markup(g);g=l.unsupportedText=String.format(g,(j?" "+j+" ":" "),(this.playerVersion?" "+this.playerVersion+" ":" Not installed."))}l.mediaType="SWF";if(!h){this.autoMask=false;var f=e&&this.assertVersion("6.0.65");if(f&&l.installUrl){l=l.installDescriptor||{mediaType:"SWF",tag:"object",cls:"x-media x-media-swf x-media-swfinstaller",id:"SWFInstaller",type:"application/x-shockwave-flash",data:"@url",url:this.prepareURL(l.installUrl),width:(/%$/.test(l.width))?l.width:((parseInt(l.width,10)||0)<310?310:l.width),height:(/%$/.test(l.height))?l.height:((parseInt(l.height,10)||0)<138?138:l.height),loop:false,start:true,unsupportedText:g,params:{quality:"high",movie:"@url",allowscriptacess:"always",wmode:"opaque",align:"middle",bgcolor:"#3A6EA5",pluginspage:l.pluginsPage||this.pluginsPage||"http://www.adobe.com/go/getflashplayer"}};l.params[this.varsName]="MMredirectURL="+(l.installRedirect||window.location)+"&MMplayerType="+(Ext.isIE?"ActiveX":"Plugin")+"&MMdoctitle="+(document.title=document.title.slice(0,47)+" - Flash Player Installation")}else{l.mediaType=null}}if(l.eventSynch){l.params||(l.params={});var k=l.params[this.varsName]||(l.params[this.varsName]={});if(typeof k==="string"){k=Ext.urlDecode(k,true)}var i=(l.eventSynch===true?{allowedDomain:k.allowedDomain||document.location.hostname,elementID:l.id||(l.id=Ext.id()),eventHandler:"Ext.ux.Media.Flash.eventSynch"}:l.eventSynch);Ext.apply(l.params,{allowscriptaccess:"always"})[this.varsName]=Ext.applyIf(k,i)}this.bindExternals(l.boundExternals);delete l.requiredVersion;delete l.installUrl;delete l.installRedirect;delete l.installDescriptor;delete l.eventSynch;delete l.boundExternals;this.mediaCfg=l},assertVersion:function(g){var f;g||(g=[]);if(Ext.isArray(g)){f=g}else{f=String(g).split(".")}f=(f.concat([0,0,0,0])).slice(0,3);var e;if(!(e=this.playerVersion||(this.playerVersion=this.detectFlashVersion()))){return false}if(e.major>parseFloat(f[0])){return true}else{if(e.major==parseFloat(f[0])){if(e.minor>parseFloat(f[1])){return true}else{if(e.minor==parseFloat(f[1])){if(e.rev>=parseFloat(f[2])){return true}}}}}return false},detectFlashVersion:function(){if(a.Flash.prototype.flashVersion){return this.playerVersion=a.Flash.prototype.flashVersion}var f=false;var g=function(e){return e&&!!e.length?{major:e[0]!==null?parseInt(e[0],10):0,minor:e[1]!==null?parseInt(e[1],10):0,rev:e[2]!==null?parseInt(e[2],10):0,toString:function(){return this.major+"."+this.minor+"."+this.rev}}:false};var j=null;if(Ext.isIE){try{j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(k){try{j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");f=[6,0,21];j.allowscriptaccess="always"}catch(h){if(f&&f[0]===6){return g(f)}}try{j=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(i){}}if(j){f=j.GetVariable("$version").split(" ")[1].split(",")}}else{if(navigator.plugins&&navigator.mimeTypes.length){j=navigator.plugins["Shockwave Flash"];if(j&&j.description){f=j.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split(".")}}}return(this.playerVersion=a.Flash.prototype.flashVersion=g(f))},onAfterMedia:function(e){a.Flash.superclass.onAfterMedia.apply(this,arguments);var f;if(f=this.mediaObject){var g=f.id;if(Ext.isIE){if(!(Ext.query("script[for="+g+"]").length)){c('var c;if(c=Ext.getCmp("'+this.id+'")){c.onfsCommand.apply(c,arguments);}',{event:"FSCommand",htmlFor:g})}}else{window[g+"_DoFSCommand"]||(window[g+"_DoFSCommand"]=this.onfsCommand.createDelegate(this))}}},clearMedia:function(){if(this.mediaObject){var e=this.mediaObject.id;if(Ext.isIE){Ext.select("script[for="+e+"]",true).remove()}else{window[e+"_DoFSCommand"]=null;delete window[e+"_DoFSCommand"]}}return a.Flash.superclass.clearMedia.call(this)||this},getSWFObject:function(){return this.getInterface()},onfsCommand:function(f,e){if(this.events){this.fireEvent("fscommand",this,f,e)}},setVariable:function(g,f){var e=this.getInterface();if(e&&"SetVariable" in e){e.SetVariable(g,f);return true}e=null;return false},getVariable:function(f){var e=this.getInterface();if(e&&"GetVariable" in e){return e.GetVariable(f)}e=null;return undefined},bindExternals:function(f){if(f&&this.playerVersion.major>=8){f=new Array().concat(f)}else{return}var e=(typeof this.externalsNamespace=="string"?this[this.externalsNamespace]||(this[this.externalsNamespace]={}):this);Ext.each(f,function(i){var g=i.name||i;var h=i.returnType||"javascript";e[g]||(e[g]=function(){return this.invoke.apply(this,[g,h].concat(Array.prototype.slice.call(arguments,0)))}.createDelegate(this))},this)},invoke:function(i,e){var g,f;if(i&&(g=this.getInterface())&&"CallFunction" in g){var h=[String.format('<invoke name="{0}" returntype="{1}">',i,e),"<arguments>",(Array.prototype.slice.call(arguments,2)).map(this._toXML,this).join(""),"</arguments>","</invoke>"].join("");f=g.CallFunction(h);typeof f==="string"&&e==="javascript"&&(f=Ext.decode(f))}return f},onFlashInit:function(){if(this.mediaMask&&this.autoMask){this.mediaMask.hide()}this.fireEvent.defer(300,this,["flashinit",this,this.getInterface()])},pollReadyState:function(e,g){var h;if(h=this.getInterface()){if(typeof h.PercentLoaded!="undefined"){var f=h.PercentLoaded();this.fireEvent("progress",this,this.getInterface(),f);if(f=100){e();return}}this._countPoll++>this._maxPoll||arguments.callee.defer(10,this,arguments)}},_handleSWFEvent:function(f){var e=f.type||f||false;if(e){if(this.events&&!this.events[String(e)]){this.addEvents(String(e))}return this.fireEvent.apply(this,[String(e),this].concat(Array.prototype.slice.call(arguments,0)))}},_toXML:function(f){var g=Ext.util.Format;var e=typeof f;if(e=="string"){return"<string>"+g.xmlEncode(f)+"</string>"}else{if(e=="undefined"){return"<undefined/>"}else{if(e=="number"){return"<number>"+f+"</number>"}else{if(f==null){return"<null/>"}else{if(e=="boolean"){return f?"<true/>":"<false/>"}else{if(f instanceof Date){return"<date>"+f.getTime()+"</date>"}else{if(Ext.isArray(f)){return this._arrayToXML(f)}else{if(e=="object"){return this._objectToXML(f)}else{return"<null/>"}}}}}}}}},_arrayToXML:function(h){var g="<array>";for(var f=0,e=h.length;f<e;f++){g+='<property id="'+f+'">'+this._toXML(h[f])+"</property>"}return g+"</array>"},_objectToXML:function(f){var e="<object>";for(var g in f){if(f.hasOwnProperty(g)){e+='<property id="'+g+'">'+this._toXML(f[g])+"</property>"}}return e+"</object>"}});Ext.ux.Media.Flash.eventSynch=function(e,g){var f=Ext.get(e),h;if(f&&(h=f.ownerCt)){return h._handleSWFEvent.apply(h,Array.prototype.slice.call(arguments,1))}};var b={init:function(){this.hideMode="nosize";this.visibilityCls="x-hide-nosize";this.getId=function(){return this.id||(this.id="flash-comp"+(++Ext.Component.AUTO_ID))};this.addEvents("flashinit","fscommand","progress")}};Ext.ux.Media.Flash.Component=Ext.extend(Ext.ux.Media.Component,{ctype:"Ext.ux.Media.Flash.Component",cls:"x-media-flash-comp",autoEl:{tag:"div",style:{overflow:"hidden",display:"block"}},mediaClass:Ext.ux.Media.Flash,initComponent:function(){b.init.apply(this,arguments);Ext.ux.Media.Flash.Component.superclass.initComponent.apply(this,arguments)}});Ext.reg("uxflash",Ext.ux.Media.Flash.Component);a.Flash.prototype.detectFlashVersion();Ext.ux.Media.Flash.Panel=Ext.extend(Ext.ux.Media.Panel,{ctype:"Ext.ux.Media.Flash.Panel",mediaClass:Ext.ux.Media.Flash,autoScroll:false,shadow:false,initComponent:function(){b.init.apply(this,arguments);Ext.ux.Media.Flash.Panel.superclass.initComponent.apply(this,arguments)}});Ext.reg("flashpanel",a.Flash.Panel);Ext.reg("uxflashpanel",a.Flash.Panel);Ext.ux.Media.Flash.Portlet=Ext.extend(Ext.ux.Media.Portlet,{ctype:"Ext.ux.Media.Flash.Portlet",anchor:"100%",frame:true,collapseEl:"bwrap",collapsible:true,draggable:true,autoScroll:false,autoWidth:true,cls:"x-portlet x-flash-portlet",mediaClass:Ext.ux.Media.Flash,initComponent:function(){b.init.apply(this,arguments);Ext.ux.Media.Flash.Panel.superclass.initComponent.apply(this,arguments)}});Ext.reg("flashportlet",a.Flash.Portlet);Ext.reg("uxflashportlet",a.Flash.Portlet);Ext.ux.Media.Flash.Window=Ext.extend(Ext.ux.Media.Window,{ctype:"Ext.ux.Media.Flash.Window",mediaClass:Ext.ux.Media.Flash,autoScroll:false,shadow:false,initComponent:function(){b.init.apply(this,arguments);Ext.ux.Media.Flash.Window.superclass.initComponent.apply(this,arguments)}});Ext.reg("flashwindow",a.Flash.Window);Ext.ux.Media.Flash.Element=Ext.extend(Ext.ux.Media.Element,{remove:function(){var f;if(Ext.isIE&&Ext.isWindows&&(f=this.dom)){this.removeAllListeners();f.style.display="none";if(f.readyState==4){for(var e in f){if(e.toLowerCase()!="flashvars"&&typeof f[e]=="function"){f[e]=null}}}}Ext.ux.Media.Flash.Element.superclass.remove.apply(this,arguments)}});Ext.ux.Media.Flash.prototype.elementClass=Ext.ux.Media.Flash.Element;var c=function(k,f){f=Ext.apply({},f||{},{type:"text/javascript",text:k});try{var h,e,j=document;if(j&&j.getElementsByTagName){if(!(h=j.getElementsByTagName("head")[0])){h=j.createElement("head");j.getElementsByTagName("html")[0].appendChild(h)}if(h&&(e=j.createElement("script"))){for(var i in f){if(f.hasOwnProperty(i)&&i in e){e[i]=f[i]}}return !!h.appendChild(e)}}}catch(g){}return false};if(Ext.isIE&&Ext.isWindows&&a.Flash.prototype.flashVersion.major==9){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=__flash_savedUnloadHandler=function(){}});window.attachEvent("onunload",function(){Ext.each(Ext.query(".x-media-swf"),function(g,f){g.style.display="none";for(var e in g){if(e.toLowerCase()!="flashvars"&&typeof g[e]=="function"){g[e]=null}}})})}Ext.apply(Ext.util.Format,{xmlEncode:function(e){return !e?e:String(e).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")},xmlDecode:function(e){return !e?e:String(e).replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&amp;/g,"&").replace(/&apos;/g,"'")}});Ext.ux.FlashComponent=Ext.ux.Media.Flash.Component;Ext.ux.FlashPanel=Ext.ux.Media.Flash.Panel;Ext.ux.FlashPortlet=Ext.ux.Media.Flash.Portlet;Ext.ux.FlashWindow=Ext.ux.Media.Flash.Window})();Ext.namespace("Ext.ux.YoutubePlayer");Ext.ux.YoutubePlayer=Ext.extend(Ext.FlashComponent,{player:null,videoId:null,initComponent:function(){this.addEvents("ready","stateChange","error");Ext.apply(this,{ratioMode:this.ratioMode||"normal",swfId:this.playerId,style:this.ratioMode=="strict"?"position:relative":"position:normal"});Ext.applyIf(this,{url:"http://gdata.youtube.com/apiplayer?key="+this.developerKey+"&enablejsapi=1&playerapiid="+this.playerId,start:false,controls:false,cls:"ext-ux-youtubeplayer "+this.ratioMode,scripting:"always",params:{wmode:"opaque",bgcolor:this.bgColor||"#cccccc"}});if(!Ext.ux.YoutubePlayer.Players){Ext.ux.YoutubePlayer.Players=[]}Ext.ux.YoutubePlayer.Players[this.playerId]=this.id},_setPlayer:function(a){this.player=a},_delegateStateEvent:function(a){switch(a){case -1:a="unstarted";break;case 0:a="ended";break;case 1:a="playing";break;case 2:a="paused";break;case 3:a="buffering";break;case 5:a="video_cued";break;default:a="unknown";break}this.fireEvent("stateChange",a,this,this.player)},_delegateErrorEvent:function(a){switch(a){case 100:a="video_not_found";break;default:a="unknown";break}this.fireEvent("error",a,this,this.player)},onResize:function(b,e,a,c){if(this.playerAvailable()){this.adjustRatio(this.getWidth(),this.getHeight())}},adjustRatio:function(e,b){var a=this.player.style;switch(this.ratioMode){case"strict":if(e<400||b<320){var c=Math.floor(e*0.8);if(c>b){e=Math.floor(b/0.8)}else{b=c}}else{if(b>320){b=320;e=400}}a.marginTop=-Math.floor(b/2)+"px";a.marginLeft=-Math.floor(e/2)+"px";a.height=b+"px";a.width=e+"px";a.top="50%";a.left="50%";this.setPlayerSize(e,b);break;case"stretch":a.margin="auto";a.height=b+"px";a.width=e+"px";this.setPlayerSize(e,b);break}},playerAvailable:function(){return(this.player&&this.player.getPlayerState)?true:false},loadVideoById:function(a,b){this.player.loadVideoById(a,b);this.videoId=a},cueVideoById:function(a,b){this.player.cueVideoById(a,b);this.videoId=a},setPlayerSize:function(b,a){if(!this.playerAvailable()){return}this.player.setSize(b,a)},playVideo:function(){if(!this.playerAvailable()){return}this.player.playVideo()},pauseVideo:function(){if(!this.playerAvailable()){return}this.player.pauseVideo()},stopVideo:function(){if(!this.playerAvailable()){return}this.player.stopVideo()},clearVideo:function(){if(!this.playerAvailable()){return}this.videoId=null;this.player.clearVideo()},getVideoBytesLoaded:function(){if(!this.playerAvailable()){return 0}return this.player.getVideoBytesLoaded()},getVideoBytesTotal:function(){if(!this.playerAvailable()){return 0}return this.player.getVideoBytesTotal()},getVideoStartBytes:function(){if(!this.playerAvailable()){return 0}return this.player.getVideoStartBytes()},mute:function(a){if(!this.playerAvailable()){return}if(a===false){this.player.unMute();this.setVolume(this.getVolume())}else{this.player.mute()}},isMuted:function(a){if(!this.playerAvailable()){return true}return this.player.isMuted()},setVolume:function(a){if(!this.playerAvailable()){return}this.player.setVolume(a)},getVolume:function(){if(!this.playerAvailable()){return 0}return this.player.getVolume()},seekTo:function(b,a){if(!this.playerAvailable()){return}this.player.seekTo(b,a)},getPlayerState:function(){var a=-9999;if(!this.playerAvailable()){return}else{a=this.player.getPlayerState()}switch(a){case -1:a="unstarted";break;case 0:a="ended";break;case 1:a="playing";break;case 2:a="paused";break;case 3:a="buffering";break;case 5:a="video_cued";break;default:a="unknown";break}return a},getCurrentTime:function(){if(!this.playerAvailable()){return 0}return this.player.getCurrentTime()},getDuration:function(){if(!this.playerAvailable()){return 0}return this.player.getDuration()},getVideoUrl:function(){if(!this.playerAvailable()){return""}return this.player.getVideoUrl()},getVideoEmbedCode:function(){if(!this.playerAvailable()){return""}return this.player.getVideoEmbedCode()}});var _onYouTubePlayerReady=function(b){var e=Ext.ux.YoutubePlayer.Players[b];if(e){var a=Ext.getCmp(e);var c=document.getElementById(b);a._setPlayer(c);c.addEventListener("onStateChange","Ext.getCmp('"+a.id+"')._delegateStateEvent");c.addEventListener("onError","Ext.getCmp('"+a.id+"')._delegateErrorEvent");a.adjustRatio(a.getWidth(),a.getHeight());a.fireEvent("ready",a,c)}};if(!window.onYouTubePlayerReady){window.onYouTubePlayerReady=_onYouTubePlayerReady}else{throw ('"onYouTubePlayerReady" is already defined. Cannot use Ext.ux.XoutubePlayer.')}Ext.namespace("Ext.ux.YoutubePlayer");Ext.ux.YoutubePlayer.Control=Ext.extend(Ext.Toolbar,{task:null,elRuntime:null,ejectButton:null,playButton:null,stopButton:null,previousButton:null,nextButton:null,muteButton:null,volumeSlider:null,sliderField:null,isAdjusting:false,_onEject:function(){var a=this;Ext.Msg.prompt("Load video","Please enter the video id or url:",function(b,c){if(b=="ok"){var e=a._parseVideoId(c);a.player.stopVideo();a.player.clearVideo();a.player.cueVideoById(e)}})},_parseVideoId:function(c){var a=c.indexOf("v=");if(a!==-1){var c=c.substring(a+2);var b=c.indexOf("&");if(b!==-1){c=c.substring(c,b)}}return c},_onError:function(c,a,b){a.stopVideo();Ext.Msg.alert("Error","The video you requested could not be played. Error code "+c)},_onSeekPosition:function(){this.player.seekTo(this.sliderField.getValue())},_onSetVolume:function(){this.muteButton.toggle(false);this.player.setVolume(this.volumeSlider.getValue())},_onMuteToggle:function(a){var c=this.muteButton.pressed;var b=false;if(a instanceof Ext.menu.Item){b=true;c=!c}if(c){a.setIconClass("ext-ux-youtubeplayer-control-muteIcon");if(b){this.muteButton.toggle(true);return}this.player.mute(true)}else{a.setIconClass("ext-ux-youtubeplayer-control-volumeIcon");if(b){this.muteButton.toggle(false);return}this.player.mute(false)}},_onPlay:function(a){var b=this.player.getPlayerState();if(b=="playing"){this.player.pauseVideo()}else{if(b=="paused"||b=="video_cued"){this.player.playVideo()}}},_onStop:function(a){this.player.pauseVideo();this.player.seekTo(0);this.stopButton.setDisabled(true);this._updateVideoInfo.defer(100,this,[true])},initComponent:function(){var a=Ext.Toolbar.Button;this.ejectButton=new a({iconCls:"eject",disabled:true});this.playButton=new a({iconCls:"play",disabled:true});this.stopButton=new a({iconCls:"stop",disabled:true});this.previousButton=new a({iconCls:"start",disabled:true});this.nextButton=new a({iconCls:"end",disabled:true});this.volumeSlider=new Ext.Slider({minValue:0,maxValue:100,width:110,disabled:true});this.sliderField=new Ext.ux.YoutubePlayer.Control.Slider({minValue:0,maxValue:0,disabled:true,listeners:{render:function(){this.el.dom.parentNode.style.width="100%"}}});this.muteButton=new Ext.Toolbar.SplitButton({iconCls:"ext-ux-youtubeplayer-control-volumeIcon",enableToggle:true,width:36,menu:new Ext.menu.Menu({enableScrolling:false,plain:true,showSeparator:false,items:[this.volumeSlider]}),handler:this._onMuteToggle,scope:this});this.elRuntime=new Ext.Toolbar.TextItem({text:"00:00"});Ext.apply(this,{cls:"ext-ux-youtubeplayer-control",items:[this.ejectButton,this.playButton,this.stopButton,this.previousButton,this.nextButton," ",this.sliderField," ",this.elRuntime,new Ext.Toolbar.Spacer(),this.muteButton]});Ext.ux.YoutubePlayer.Control.superclass.initComponent.call(this);this.on("beforerender",this._initListeners,this);this.player.on("ready",function(){this.ejectButton.setDisabled(false)},this)},_initListeners:function(){this.on("afterlayout",function(){this.getLayout().onLayout=this.getLayout().onLayout.createInterceptor(function(){this.container.sliderField.el.dom.parentNode.style.width="1px"});this.getLayout().onLayout=this.getLayout().onLayout.createSequence(function(){this.container.sliderField.el.dom.parentNode.style.width="100%"})},this,{single:true});this.muteButton.menu.on("beforeshow",function(){var b=this.player.getState();if(b!="ended"&&b!="unstarted"){this.volumeSlider.setDisabled(false);this.volumeSlider.setValue(this.player.getVolume(),false)}},this);this.playButton.on("click",this._onPlay,this);this.stopButton.on("click",this._onStop,this);this.muteButton.on("toggle",this._onMuteToggle,this);this.on("hide",this._onHide,this);this.on("destroy",this._onDestroy,this);var a=this;this.player.on("stateChange",function(e,b,c){a._processPlayerEvents.defer(1,a,[e,b,c])},this);this.sliderField.on("dragstart",function(){this.isAdjusting=true},this);this.sliderField.on("drag",this._onSeekPosition,this);this.sliderField.on("dragend",function(){this.isAdjusting=false},this);this.volumeSlider.on("drag",this._onSetVolume,this);this.player.on("error",this._onError,this);this.ejectButton.on("click",this._onEject,this)},_onDestroy:function(){if(this.task){Ext.TaskMgr.stop(this.task)}},_updateVideoInfo:function(g){if(!this.player.playerAvailable()){this._processPlayerEvents("ended",this.player,null);return}var i=this.player;var b=this.sliderField;var f=i.getVideoBytesLoaded();if(f!=-1){b.updateSliderBg(Math.floor((b.getWidth()/100)*Math.floor(((f/i.getVideoBytesTotal())*100))))}if(g!==true&&i.getPlayerState()=="paused"){return}var c=Math.max(0,i.getCurrentTime());var a=Math.max(0,i.getDuration());if(a!=0){var j=Math.floor(a-c);var e=Math.max(0,Math.floor(j/60));var h=Math.max(0,(j%60));this.elRuntime.setText((e<10?"0"+e:e)+":"+(h<10?"0"+h:h));this.sliderField.maxValue=a;if(!this.isAdjusting){this.sliderField.setValue(c,false)}}},_processPlayerEvents:function(e,a,b){switch(e){case"unstarted":this._un=true;break;case"ended":if(this.task){Ext.TaskMgr.stop(this.task);this.task=null}this.playButton.setIconClass("play");this.sliderField.setValue(0);this.sliderField.setDisabled(true);this.sliderField.updateSliderBg(0);this.elRuntime.setText("00:00");if(this.volumeField){this.volumeField.setDisabled(true)}this.playButton.setDisabled(true);this.stopButton.setDisabled(true);this.muteButton.setDisabled(true);if(a.videoId&&!this._un){this._un=true;a.cueVideoById(a.videoId,0)}break;case"playing":if(!this.task){var f=this;this.task={run:function(){f._updateVideoInfo()},interval:500};Ext.TaskMgr.start(this.task)}this._un=false;this.sliderField.setDisabled(false);if(this.volumeField){this.volumeField.setDisabled(false)}this.playButton.setIconClass("pause");this.playButton.setDisabled(false);this.stopButton.setDisabled(false);this.muteButton.setDisabled(false);break;case"paused":this.playButton.setIconClass("play");break;case"buffering":break;case"video_cued":this.playButton.setDisabled(false);break;case"unknown":break}}});Ext.ux.YoutubePlayer.Control.Slider=Ext.extend(Ext.Slider,{cls:"ext-ux-youtubeplayer-control-slider",onRender:function(){Ext.ux.YoutubePlayer.Control.Slider.superclass.onRender.apply(this,arguments);this.progress=document.createElement("div");this.progress.className="hbar";this.el.dom.appendChild(this.progress)},updateSliderBg:function(a){this.progress.style.backgroundPosition="-"+(1280-a)+"px 0"}});Ext.grid.RowExpander=Ext.extend(Ext.util.Observable,{header:"",width:20,sortable:false,fixed:true,menuDisabled:true,dataIndex:"",id:"expander",lazyRender:true,enableCaching:true,expandOnEnter:true,expandOnDblClick:true,constructor:function(a){Ext.apply(this,a);this.addEvents({beforeexpand:true,expand:true,beforecollapse:true,collapse:true});Ext.grid.RowExpander.superclass.constructor.call(this);if(this.tpl){if(typeof this.tpl=="string"){this.tpl=new Ext.Template(this.tpl)}this.tpl.compile()}this.state={};this.bodyContent={}},getRowClass:function(a,f,e,c){e.cols=e.cols-1;var b=this.bodyContent[a.id];if(!b&&!this.lazyRender){b=this.getBodyContent(a,f)}if(b){e.body=b}return this.state[a.id]?"x-grid3-row-expanded":"x-grid3-row-collapsed"},init:function(b){this.grid=b;var a=b.getView();a.getRowClass=this.getRowClass.createDelegate(this);a.enableRowBody=true;b.on("render",this.onRender,this)},onRender:function(){var a=this.grid;var b=a.getView().mainBody;b.on("mousedown",this.onMouseDown,this,{delegate:".x-grid3-row-expander"});if(this.expandOnEnter){this.keyNav=new Ext.KeyNav(this.grid.getGridEl(),{enter:this.onEnter,scope:this})}if(this.expandOnDblClick){a.on("rowdblclick",this.onRowDblClick,this)}},onRowDblClick:function(a,b,c){this.toggleRow(b)},onEnter:function(j){var h=this.grid;var k=h.getSelectionModel();var b=k.getSelections();for(var c=0,a=b.length;c<a;c++){var f=h.getStore().indexOf(b[c]);this.toggleRow(f)}},getBodyContent:function(a,b){if(!this.enableCaching){return this.tpl.apply(a.data)}var c=this.bodyContent[a.id];if(!c){c=this.tpl.apply(a.data);this.bodyContent[a.id]=c}return c},onMouseDown:function(b,a){b.stopEvent();var c=b.getTarget(".x-grid3-row");this.toggleRow(c)},renderer:function(b,c,a){c.cellAttr='rowspan="2"';return'<div class="x-grid3-row-expander">&#160;</div>'},beforeExpand:function(b,a,c){if(this.fireEvent("beforeexpand",this,b,a,c)!==false){if(this.tpl&&this.lazyRender){a.innerHTML=this.getBodyContent(b,c)}return true}else{return false}},toggleRow:function(a){if(typeof a=="number"){a=this.grid.view.getRow(a)}this[Ext.fly(a).hasClass("x-grid3-row-collapsed")?"expandRow":"collapseRow"](a)},expandRow:function(c){if(typeof c=="number"){c=this.grid.view.getRow(c)}var b=this.grid.store.getAt(c.rowIndex);var a=Ext.DomQuery.selectNode("tr:nth(2) div.x-grid3-row-body",c);if(this.beforeExpand(b,a,c.rowIndex)){this.state[b.id]=true;Ext.fly(c).replaceClass("x-grid3-row-collapsed","x-grid3-row-expanded");this.fireEvent("expand",this,b,a,c.rowIndex)}},collapseRow:function(c){if(typeof c=="number"){c=this.grid.view.getRow(c)}var b=this.grid.store.getAt(c.rowIndex);var a=Ext.fly(c).child("tr:nth(1) div.x-grid3-row-body",true);if(this.fireEvent("beforecollapse",this,b,a,c.rowIndex)!==false){this.state[b.id]=false;Ext.fly(c).replaceClass("x-grid3-row-expanded","x-grid3-row-collapsed");this.fireEvent("collapse",this,b,a,c.rowIndex)}}});