!function(){var fieldModule=angular.module("agaFields",["agaMain"]);fieldModule.factory("fieldsFactory",function(){return{setParentMetabox:function(item){var scope=angular.element(document.getElementById("fieldsController")).scope();scope.fArr=item.fields}}}),fieldModule.controller("fieldsController",["$scope",function($scope){angular.element(document.getElementById("fieldsController")).scope();$scope.bFC=!1,$scope.fArr=[],this.fVis=!1,this.fIShow=!1,this.fLabel="",$scope.aFOptions=function(){$scope.bFC?$scope.bFC=!1:$scope.bFC=!0,$scope.fModel=""},$scope.addField=function(fType,fArr){$scope.aFOptions(),$scope.fieldOptions.forEach(function(arr,i){if(arr.type==fType)if(null!=fArr){var tempArr={name:arr.name+Math.floor(6*Math.random())+1,label:arr.label,type:arr.type,description:arr.description,extraText:arr.extraText,"default":arr["default"],options:arr.options};fArr.push(tempArr)}else fArr=[arr]})},$scope.cFSettingsVis=function(){this.fIShow?this.fIShow=!1:this.fIShow=!0},$scope.changeValue=function(fromV,toV){this.fromV=toV},$scope.addOptionA=function(tArr){var emptyArr={key:"",value:""};tArr.push(emptyArr)},$scope.deleteOption=function(tArr,i){tArr.splice(i,1)},$scope.showIfType=function(tField,strings){return stringsArr=strings.split("|"),stringsArr.forEach(function(arr,i){return tField.type==arr?!0:void 0}),!1},$scope.setDefault=function(field){var type=field.type,model=null;switch(type){case"selectPages":case"selectPosts":model=field.post_status,void 0===model&&(model="publish")}},$scope.fieldsArr=[{name:"Field1",label:"Field 1"},{name:"Field2",label:"Field 2"}],$scope.fieldsOptions=[{label:"- Select Field Type -",value:""},{label:"Text Box",value:"textbox"},{label:"Text-Area",value:"textarea"},{label:"CheckBox",value:"checkbox"},{label:"Select - Custom",value:"selectCustom"},{label:"Select - Categories",value:"selectCategories"},{label:"Select - Tags",value:"selectTags"},{label:"Select - Pages",value:"selectPages"},{label:"Select - Posts",value:"selectPosts"}],$scope.logEvent=function(message,event){console.log(message,"(triggered by the following",event.type,"event)"),console.log(event)},$scope.fieldOptions=[{name:"textbox",label:"Text Box",type:"textbox",description:"This is just a text box.","default":"Some default text."},{name:"textarea",label:"text Area",type:"textarea",description:"This is just a textarea!","default":"Some default text."},{name:"checkbox",label:"Check Box",type:"checkbox",description:"Click the checkbox to enable it.",extraText:"If you check it, the status will be enabled","default":"on"},{name:"selectCustom",label:"Custom Dropdown",type:"selectCustom",description:"This is a list of stuff. Select something",options:[{key:"keyA",value:"ValueA (Example)"},{key:"keyB",value:"ValueB (Example)"}],"default":{key:"",value:""}},{name:"selectCategories",label:"Categories Dropdown",type:"selectCategories",description:"This is a list of categories. Select something"},{name:"selectTags",label:"Tags Dropdown",type:"selectTags",description:"This is a list of tags. Select something"},{name:"selectPages",label:"Pages Dropdown",type:"selectPages",description:"This is a list of Pages. Select something"},{name:"selectPosts",label:"Posts Dropdown",type:"selectPosts",description:"This is a list of Posts. Select something"}],$scope.pPStatuses=[{key:"publish",label:"Publish"},{key:"private",label:"Private"},{key:"draft",label:"Draft"}]}])}(),function(){var debug=!0,agaApp=angular.module("agaHTTP",["agaMain","agaMenus","agaSettings"]);debug&&console.log("loadSave Module loaded");agaApp.factory("httpFactory",function(){return{getPlugins:function(){var scope=angular.element(document.getElementById("restHTTP")).scope();return scope.getPlugins(),!0},getThemes:function(){var scope=angular.element(document.getElementById("restHTTP")).scope();return scope.getThemes(),!0}}});agaApp.controller("restHTTP",function($http,$scope,mainFactory,menusFactory,settingFactory){debug&&console.log("http controller loaded"),$scope.$watch("$viewContentLoaded",function(){$scope.getData()}),$scope.saveData=function(){debug&&console.log("HTTP request to DB with all the data...");var arrAll=new mainFactory.getMainArr;console.log(arrAll),arrAll.menus.forEach(function(arr,i){arr.selected===!0&&(arr.selected=!1)}),$http({method:"POST",url:window.agaPath+"/wp-json/aga/v1/setDbData",params:{key:window.agaKey,data:JSON.stringify(arrAll)}}).then(function(response){debug&&(console.log("presumably saved."),console.log("getting return data:"),console.log(response))},function(response){})},$scope.getData=function(){debug&&console.log("loading mainArr From DB"),$http({method:"POST",url:window.agaPath+"/wp-json/aga/v1/getDbData",params:{key:window.agaKey}}).then(function(response){debug&&console.log("getting DB data:");var returnedResponse=JSON.parse(response.data.stripSlashes());debug&&(console.log("data being loaded:"),console.log(returnedResponse)),mainFactory.setMainArr(returnedResponse),menusFactory.bindMenu(returnedResponse.menus),"1"===returnedResponse.sTPOption?$scope.getThemes():$scope.getPlugins();var sArr={sLabel:returnedResponse.sLabel,sDescription:returnedResponse.sDescription,sTPOption:returnedResponse.sTPOption,pTSelect:returnedResponse.pTSelect,sTPLink:returnedResponse.sTPLink};settingFactory.setSettings(sArr)},function(response){})},$scope.getCPTs=function(){debug&&console.log("Sending request...."),$http({method:"POST",url:window.agaPath+"/wp-json/aga/v1/getCPTs",params:{key:window.agaKey}}).then(function(response){var objx=response.data;debug&&(console.log("avaiable CPT's:"),console.log(objx));var objx=response.data;settingFactory.setSelect(objx)},function(response){})},$scope.getPlugins=function(){debug&&console.log("Sending get plugins request...."),$http({method:"POST",url:window.agaPath+"/wp-json/aga/v1/getPlugins",params:{key:window.agaKey}}).then(function(response){var objx="";objx=response.data,debug&&(console.log("avaiable Plugins's:"),console.log(objx)),settingFactory.setSelect(objx)},function(response){})},$scope.getThemes=function(){debug&&console.log("Sending get themes request...."),$http({method:"POST",url:window.agaPath+"/wp-json/aga/v1/getThemes",params:{key:window.agaKey}}).then(function(response){var objx=null;objx=response.data,debug&&(console.log("avaiable Themes's:"),console.log(objx)),settingFactory.setSelect(objx)},function(response){})},String.prototype.stripSlashes=function(){return this.replace(/\\(.)/gm,"$1")}})}(),function(){var debug=!1,agaApp=angular.module("agaMain",["agaHTTP","agaMenus","agaSettings","agaMetaBoxes","agaFields"]);debug&&console.log("agaMain Module loaded"),agaApp.factory("mainFactory",function(){return{getMainArr:function(){var scope=angular.element(document.getElementById("menuCtrl")).scope();return mainArr=scope.data,mainArr},setMainArr:function(newArr){return mainArr=newArr,debug&&(console.log("main Array setting:"),console.log(mainArr)),!0}}});agaApp.controller("mainController",function($scope){debug&&console.log("v.0.0.1"),$scope.showSettings=function(){var settScope=angular.element(document.getElementById("agaSettCtrl")).scope();settScope.sShow=!0;var scope=angular.element(document.getElementById("menuCtrl")).scope();settScope.importExport=JSON.stringify(scope.data)}});this.mainArr={menus:[{label:"Test",type:999,show:!0,selected:!1,unique:!1,name:"test",optArr:[{}]},{label:"Test2",type:999,show:!0,selected:!1,unique:!1,name:"test2",optArr:[{}]}],sLabel:"Settings Label",sDescription:"Settings Description",sTPOption:"",pTSelect:"",sTPLink:"http://www.wordpress.org"}}(),function(){var debug=!0,agaApp=angular.module("agaMenus",["agaMain","agaMetaBoxes"]);debug&&console.log("agaMenus Module loaded"),agaApp.factory("menusFactory",function(){return{bindMenu:function(newMenu){var scope=angular.element(document.getElementById("menuCtrl")).scope();return scope.setMenu(newMenu),!0},getAllArr:function(){var scope=angular.element(document.getElementById("menuCtrl")).scope();return scope.getAllArr()},getSettings:function(){var scope=angular.element(document.getElementById("menuCtrl")).scope();return scope.data},setSettings:function(sData){var scope=angular.element(document.getElementById("menuCtrl")).scope();return scope.data.sLabel=sData.sLabel,scope.data.sDescription=sData.sDescription,scope.data.sTPOption=sData.sTPOption,scope.data.pTSelect=sData.pTSelect,scope.data.sTPArr=sData.sTPArr,!0}}}),agaApp.controller("menuCtrl",function($scope,mainFactory,panelsFactory){function updateMainArrMenus(){var oldMainArr=mainFactory.getMainArr();oldMainArr.menus=$scope.data.menus,mainFactory.setMainArr(oldMainArr)}debug&&console.log("Controler initiated. Running inside menuCtrl controller"),$scope.data={showMO:!1,mO:menuOpt,menus:[],sLabel:"",sDescription:"",sTPOption:"",pTSelect:""},$scope.nMO="0",$scope.selMenu="",$scope.selectUnique=function(){$scope.data.menus.forEach(function(arr,i){console.log(arr.label),$scope.data.mO.forEach(function(arrB,iB){arrB.type==arr.type&&arr.unique&&(arrB.show=!1)})})},$scope.delMenuItem=function(item){$scope.data.menus.forEach(function(arr,i){arr.name==item.name&&($scope.data.mO.forEach(function(arr2,y){arr2.name==arr.name&&(arr2.show=!0)}),$scope.data.menus.splice(i,1))}),updateMainArrMenus()},$scope.editMenuItem=function(item){$scope.menuClick(item);var scope=angular.element(document.getElementById("panelsCtrl")).scope();scope.mSettings=!0,scope.pSLabel=item.label,scope.pSName=item.name},$scope.canDelete=function(unique,hover){return!(!hover||unique)},$scope.setMenu=function(newMenu){$scope.data.menus=newMenu},$scope.getAllArr=function(){return $scope.data},$scope.addMenu=function(menuItem){var newIndex=1;$scope.data.menus.forEach(function(arr,i){arr.type==menuItem&&newIndex++}),$scope.data.mO.forEach(function(arr,i){if(arr.type==menuItem){var tempNewName=arr.name,tempNewLabel=arr.label;arr.unique?arr.show=!1:(tempNewName+=newIndex,tempNewLabel+="-"+newIndex);var newTempArr={label:tempNewLabel,type:arr.type,selected:arr.selected,unique:arr.unique,name:tempNewName,optArr:arr.optArr};if(0===menuItem)return;$scope.data.menus.push(newTempArr),$scope.data.showMO=!1,$scope.nMO="0"}}),updateMainArrMenus()},$scope.showMenuOpt=function(){$scope.selectUnique(),$scope.data.showMO=1},$scope.menuClick=function(item){$scope.selMenu=item;var scope=angular.element(document.getElementById("agaSettCtrl")).scope();scope.sShow=!1;var panelCtrlScope=angular.element(document.getElementById("panelsCtrl")).scope();panelCtrlScope.mSettings=!1,panelCtrlScope.aMBShow=!0,$scope.data.menus.forEach(function(arr,i){arr.selected=!1,item.name==arr.name&&panelsFactory.getMenuPanels(item)}),item.selected=!0}});var menuOpt=[{label:"-- Select a type --",type:0,show:!0,selected:!1,unique:!0,name:"none",optArr:{panels:[]}},{label:"Posts",type:1,show:!0,selected:!1,unique:!0,name:"posts",optArr:{panels:[]}},{label:"Pages",type:2,show:!0,selected:!1,unique:!0,name:"pages",optArr:{panels:[]}}]}(),function(){var debug=!1,agaApp=angular.module("agaMetaBoxes",["agaMain","agaMenus","agaFields"]);debug&&(console.log("Meta Boxes module loaded..."),console.log(window.agaPP)),agaApp.factory("panelsFactory",function(){return{getMenuPanels:function(item){var scope=angular.element(document.getElementById("panelsCtrl")).scope();scope.getPanels(item)},getSettings:function(){var scope=angular.element(document.getElementById("menuCtrl")).scope();return debug&&(console.log("hook loaded..."),console.log(scope.data),console.log("data loaded ^^")),scope.data},setSettings:function(sData){var scope=angular.element(document.getElementById("menuCtrl")).scope();return scope.data.sLabel=sData.sLabel,scope.data.sDescription=sData.sDescription,scope.data.sTPOption=sData.sTPOption,scope.data.pTSelect=sData.pTSelect,scope.data.sTPLink=sData.sTPLink,!0}}});agaApp.controller("panelsCtrl",function($scope,mainFactory,menusFactory,fieldsFactory){$scope.pSLabel="",$scope.pSName="",this.selMB="",$scope.aMBShow=!1,this.vis=!1,this.pShow=!1,$scope.mSettings=!1,$scope.eCClass=this.eCClass="down",debug&&console.log("panelsCtrl loaded..."),$scope.cArr=[{key:"",name:"Select a context"},{key:"normal",name:"Normal"},{key:"side",name:"Side"},{key:"advanced",name:"Advanced (default)"}],$scope.pArr=[{key:"",name:"Select a priority"},{key:"default",name:"Default"},{key:"low",name:"Low"},{key:"high",name:"High"}],$scope.panelArr=[],$scope.list=$scope.panelArr,$scope.getPanels=function(item){var scope=angular.element(document.getElementById("menuCtrl")).scope(),totalArr=scope.data;totalArr.menus.forEach(function(arr,i){arr.name==item.name&&"undefined"!=typeof item.optArr.panels&&($scope.panelArr=item.optArr.panels)})},$scope.addPanel=function(){var i=1,newPanel={name:"metabox"+i,label:"Meta Box "+i,fields:[]};"undefined"!=typeof $scope.panelArr?(i=$scope.panelArr.length+1,newPanel={name:"metabox"+i,label:"Meta Box "+i,fields:[]},$scope.panelArr.push(newPanel)):$scope.panelArr=[newPanel];var mainArr=mainFactory.getMainArr();mainArr.menus.forEach(function(arr,i){arr.selected===!0&&(arr.optArr.panels=$scope.panelArr)})},$scope.move=function(type,panelArr,i){var valA=panelArr[i],valB=valA,y=0;switch(console.log(valA),type){case"up":y=0==i?panelArr.length-1:i-1;break;case"down":y=i==panelArr.length-1?0:i+1}valB=panelArr[y],panelArr[i]=valB,panelArr[y]=valA},$scope.changeVis=function(bool,item){bool=bool=!0,item=item?item:"",this.vis?(this.vis=!1,this.eCClass="down"):(fieldsFactory.setParentMetabox(item),this.vis=!0,this.eCClass="")},$scope.cMBSettingsVis=function(){this.pShow?this.pShow=!1:(this.vis||this.changeVis(),this.pShow=!0)},$scope.changeMenuSettings=function(item){var scope=angular.element(document.getElementById("menuCtrl")).scope();scope.selMenu.label=$scope.pSLabel,scope.selMenu.name=$scope.pSName}})}(),function(){var debug=!0,agaApp=angular.module("agaSettings",["agaMenus","agaMain","agaHTTP"]);debug&&console.log("Settings module loaded"),agaApp.factory("settingFactory",function(){return{getSettings:function(){var scope=angular.element(document.getElementById("agaSettCtrl")).scope(),sData={sLabel:scope.sLabel,sDescription:scope.sDescription,sTPOption:scope.sTPOption,pTSelect:scope.pTSelect};return sData},setSettings:function(newArr){var scope=angular.element(document.getElementById("agaSettCtrl")).scope();return scope.sLabel=newArr.sLabel,scope.sDescription=newArr.sDescription,scope.sTPOption=newArr.sTPOption,scope.pTSelect=newArr.pTSelect,scope.sTPArr=newArr.sTPArr,!0},setSelect:function(newArr){var scope=angular.element(document.getElementById("agaSettCtrl")).scope(),found=!1;return newArr.forEach(function(arr,i){arr.key==scope.pTSelect&&(found=!0)}),found||(scope.pTSelect="0"),newArr.unshift({key:"0",name:"Default(None)"}),scope.ptArr=newArr,debug&&(console.log("new select pTSelect aray:"),console.log(newArr),console.log(scope.pTSelect)),!0}}});agaApp.controller("agaSettCtrl",function($scope,menusFactory,mainFactory,httpFactory){function updateMainArrSettings(){var oldMainArr=mainFactory.getMainArr();oldMainArr.sLabel=$scope.sLabel,oldMainArr.sDescription=$scope.sDescription,oldMainArr.sTPOption=$scope.sTPOption,oldMainArr.pTSelect=$scope.pTSelect,oldMainArr.sPTArr=$scope.sSelectedPTArr,mainFactory.setMainArr(oldMainArr)}debug&&console.log("Controler initiated. Running inside agaSettCtrl controller"),$scope.sLabel="",$scope.sDescription="",$scope.sTPOption="",$scope.pTSelect="",$scope.sTPArr="",$scope.sSelectedPTArr="",$scope.ptArr=[{key:"0",name:"Default (none)"}],$scope.loadSettingsContent=function(){$scope.sShow=!0},$scope.saveSettings=function(){var sArgs={sLabel:$scope.sLabel,sDescription:$scope.sDescription,sTPOption:$scope.sTPOption,pTSelect:$scope.pTSelect};$scope.ptArr.forEach(function(arr,i){arr.key==sArgs.pTSelect&&(sArgs.sTPArr=arr.options,$scope.sSelectedPTArr=sArgs.sTPArr)}),debug&&console.log(sArgs),menusFactory.setSettings(sArgs),updateMainArrSettings()},$scope.loadPTs=function(type){1==type?httpFactory.getThemes():httpFactory.getPlugins()},$scope.resetSettings=function(){$scope.sLabel="",$scope.sDescription="",$scope.sTPOption="",$scope.pTSelect="0",updateMainArrSettings()},$scope.agaImport=function(){var scope=angular.element(document.getElementById("menuCtrl")).scope();scope.data=JSON.parse($scope.importExport),console.log(scope.data)}})}();