Subject: [PATCH] Built motion from commit f782815 on branch develop.

From: Motion Team <[email-masked]>
Date: Mon, 7 Dec 2015 15:07:24 +0100

---
 package.json                                       |    2 +-
 public/app/808268be.app.css                        |    1 -
 public/app/84bcebb1.app.js                         |   44 ----
 public/app/d242789b.app.css                        |    1 +
 public/app/f18fc4d6.app.js                         |   46 ++++
 public/assets/images/media/tag.png                 |  Bin 0 -> 11836 bytes
 public/assets/languages/locale-en_EN.json          |   10 +
 public/assets/languages/locale-it.json             |   24 ++-
 public/index.html                                  |    6 +-
 release-notes/changelog_0.0.2.txt                  |   76 ------
 release-notes/changelog_0.0.3.txt                  |   68 ++++++
 .../contact_manager/contact_manager.controller.js  |  240 ++++++++++++++++++++
 .../api/contact_manager/contact_manager.socket.js  |   32 +++
 server/api/contact_manager/contact_manager.spec.js |   20 ++
 server/api/contact_manager/index.js                |   19 ++
 server/api/tag/index.js                            |   18 ++
 server/api/tag/tag.controller.js                   |  209 +++++++++++++++++
 server/api/tag/tag.socket.js                       |   24 ++
 server/api/tag/tag.spec.js                         |   20 ++
 server/api/update/update.controller.js             |   65 ++----
 server/api/zendesk_configuration/index.js          |   17 +-
 .../zendesk_configuration.controller.js            |   61 +++---
 server/app.json                                    |   13 +
 server/config/environment/config.json              |    6 +-
 server/config/environment/config_history.json      |    6 +-
 server/config/socketio.js                          |    2 +
 server/models/managed_contact.js                   |   33 +++
 server/models/managed_contact_email.js             |   17 ++
 server/models/managed_contact_history.js           |   14 ++
 server/models/managed_contact_phone.js             |   17 ++
 server/models/tag.js                               |   22 ++
 server/models/zendesk_configuration.js             |    4 +
 server/models/zendesk_field.js                     |    3 +-
 server/routes.js                                   |    2 +
 34 files changed, 927 insertions(+), 215 deletions(-)
 delete mode 100644 public/app/808268be.app.css
 delete mode 100644 public/app/84bcebb1.app.js
 create mode 100644 public/app/d242789b.app.css
 create mode 100644 public/app/f18fc4d6.app.js
 create mode 100644 public/assets/images/media/tag.png
 delete mode 100644 release-notes/changelog_0.0.2.txt
 create mode 100644 release-notes/changelog_0.0.3.txt
 create mode 100644 server/api/contact_manager/contact_manager.controller.js
 create mode 100644 server/api/contact_manager/contact_manager.socket.js
 create mode 100644 server/api/contact_manager/contact_manager.spec.js
 create mode 100644 server/api/contact_manager/index.js
 create mode 100644 server/api/tag/index.js
 create mode 100644 server/api/tag/tag.controller.js
 create mode 100644 server/api/tag/tag.socket.js
 create mode 100644 server/api/tag/tag.spec.js
 create mode 100644 server/app.json
 create mode 100644 server/models/managed_contact.js
 create mode 100644 server/models/managed_contact_email.js
 create mode 100644 server/models/managed_contact_history.js
 create mode 100644 server/models/managed_contact_phone.js
 create mode 100644 server/models/tag.js

diff --git a/package.json b/package.json
index 383309e..265c1bc 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "motion",
-  "version": "0.0.3",
+  "version": "0.0.4",
   "main": "server/app.js",
   "dependencies": {
     "accept-language-parser": "^1.0.2",
diff --git a/public/app/808268be.app.css b/public/app/808268be.app.css
deleted file mode 100644
index 421845f..0000000
--- a/public/app/808268be.app.css
+++ /dev/null
@@ -1 +0,0 @@
-.badge,.btn-arrow-link,.btn-lg{vertical-align:middle}.chart-tooltip,.chart-tooltip .label,.chat-form,.dashboard-stat .more,.dashboard-stat2 .display:after,.dashboard-stat2 .progress-info,.dashboard-stat2 .progress-info .progress,.dashboard-stat:after,.dropdown-menu li>a,.feeds li .col1,.feeds li:after,.form .form-actions:after,.general-item-list>.item>.item-head:after,.portlet>.portlet-title:after,.social-icons:after,.tabbable:after,.table-toolbar:after,.tiles .tile .tile-object:after,.tiles:after{clear:both}.animate-enter{-webkit-transition:1s linear all;transition:1s linear all;opacity:0}.animate-enter.animate-enter-active{opacity:1}#faxMessages::-webkit-scrollbar-track{background-color:#fff!important}#faxMessages::-webkit-scrollbar{width:5px}.interval-to{min-height:34px;padding:9px 12px}.inbox{margin-bottom:20px}.inbox .inbox{margin-bottom:0}.inbox .tab-content{overflow:inherit}.inbox .inbox-loading{display:none;font-size:22px;font-weight:300}.inbox .inbox-nav{margin:0;padding:0;list-style:none}.inbox .inbox-nav li{position:relative}.inbox .inbox-nav li a{color:#4d82a3;display:block;font-size:15px;border-left:none;text-align:left!important;padding:8px 14px;margin-bottom:1px;background:#f4f9fd}.inbox .inbox-nav li.active a,.inbox .inbox-nav li.active:hover a{color:#fff;border-left:none;background:#169ef4!important;text-decoration:none}.inbox .inbox-nav li.active b{top:12px;right:-6px;width:6px;position:absolute;display:inline-block;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid #169ef4}.inbox .inbox-nav li:hover a{color:#4d82a3;background:#eef4f7!important;text-decoration:none}.inbox .inbox-nav li.compose-btn a{color:#fff;text-shadow:none;text-align:center;margin-bottom:18px;background:#35aa47}.inbox .pagination-control,.inbox th.text-right{text-align:right}.inbox .inbox-nav li.compose-btn i,.inbox .inbox-nav li.compose-btn:hover i{top:1px;color:#fff;font-size:15px;position:relative;background:0 0!important}.inbox .inbox-nav li.compose-btn a:hover{background-color:#1d943b!important}.inbox .inbox-header{overflow:hidden}.inbox .inbox-header h1{margin:0 0 10px;color:#666}.inbox tr label,.inbox ul.inbox-nav{margin-bottom:0}.inbox .pagination-control .pagination-info{display:inline-block;padding-right:10px;font-size:14px;line-height:14px}.inbox tr{color:#777;font-size:13px}.inbox tr label{display:inline-block}.inbox tr.unread td{font-weight:600}.audio-portlet .audio-portlet-title,h1,h2,h3,h4,h5,h6{font-family:"Open Sans",sans-serif;font-weight:300}.inbox td i.icon-paper-clip{top:2px;color:#d8e0e5;font-size:17px;position:relative}.inbox tr i.icon-star,.inbox tr i.icon-trash{cursor:pointer}.inbox tr i.icon-star{color:#eceef0}.inbox tr i.icon-star:hover,.inbox tr i.inbox-started{color:#fd7b12}.inbox .table td,.inbox .table th{border:none}.inbox .table th{background:#eef4f7;border-bottom:solid 5px #fff}.inbox .inbox-drafts,.inbox-view-info{border-top:solid 1px #eee;border-bottom:solid 1px #eee}.inbox th label.inbox-select-all{color:#828f97;font-size:13px;padding:1px 4px 0}.inbox ul.inbox-nav li{padding:0}.inbox ul.inbox-nav li span{color:#828f97;font-size:12px;margin-right:10px}.inbox ul.inbox-nav i{color:#fff;padding:1px 0;font-size:15px;cursor:pointer;background:#d0dde4!important}.inbox ul.inbox-nav i:hover{background:#169ef4!important}.inbox td.text-right{width:100px;text-align:right}.inbox td.inbox-small-cells,.small-cells{width:10px}.inbox .table-hover tbody tr:hover>td,.inbox .table-hover tbody tr:hover>th,.inbox .table-striped tbody>tr:nth-child(odd)>td,.inbox .table-striped tbody>tr:nth-child(odd)>th{background:#f8fbfd;cursor:pointer}.inbox .table-hover tbody tr:hover>td,.inbox .table-hover tbody tr:hover>th{background:#eef4f7}.inbox .inbox-drafts{padding:8px 0;text-align:center}.inbox-view-header{margin-bottom:20px}.inbox-view-header h1{color:#666;font-size:22px;line-height:24px;margin-bottom:0!important}.inbox-view-header h1 a{top:-2px;color:#fff;cursor:pointer;font-size:13px;padding:2px 7px;line-height:16px;position:relative;background:#b0bcc4;display:inline-block}.inbox-view-header h1 a:hover{background:#aab5bc;text-decoration:none}.inbox-view-header i.icon-print{color:#94a4ab;cursor:pointer;font-size:14px;display:inline-block;padding:6px 8px!important;background:#edf1f4!important}.inbox-view-header i.icon-print:hover{background:#e7ebef!important}.inbox-view-info{color:#666;padding:5px 0;margin-bottom:10px}.inbox-view-info strong{color:#666;margin:0 10px 0 5px}.inbox-view-info .inbox-info-btn{text-align:right}.inbox-view-info .inbox-info-btn ul{text-align:left}.inbox-view-info button{top:2px;color:#94a4ab;font-size:13px;margin-left:4px;padding:3px 10px;position:relative;background:#edf1f4}.inbox-view-info button:hover{color:#94a4ab;background:#e7ebef}.inbox-view{color:#666;padding:15px 0 0}.inbox-view a{color:#169ce9}.inbox-attached{line-height:16px}.inbox-attached a{margin:0 2px}.inbox-attached span,.inbox-compose-btn button i{margin-right:3px}.inbox-attached img{height:auto;max-width:250px;margin-bottom:5px}.inbox-attached strong{color:#555;display:block;font-size:13px}.inbox-attached .margin-bottom-25{margin-bottom:25px}.inbox-attached .margin-bottom-15{margin-bottom:15px}.inbox-compose{margin-top:1px;border:1px solid #eee}.inbox-compose-btn{padding:8px 4px;background:#f0f6fa}.inbox-compose-attachment{padding:8px}.inbox-compose-attachment .btn{padding:4px 10px}.inbox-compose-btn button{color:#fff;font-size:14px;margin-left:4px;padding:4px 10px;background:#c0cfdd}.inbox-compose-btn button:hover{color:#fff;background:#4d90fe}.inbox-compose .inbox-form-group{margin-bottom:0;position:relative;border-bottom:solid 1px #eee}.inbox-compose .controls{margin-left:85px}.inbox-compose .inbox-form-group>label{width:80px;float:left;color:#979797;text-align:right}.inbox-compose .controls>input{border:none!important}.inbox-compose .controls-to{padding-right:55px}.inbox-compose .controls-bcc,.inbox-compose .controls-cc{padding-right:20px}.inbox-compose .inbox-form-group a.close{top:13px;right:10px;position:absolute}.inbox-compose .mail-to .inbox-cc-bcc{display:inline-block;top:7px;right:10px;color:#979797;font-size:14px;cursor:pointer;position:absolute}.inbox-compose .mail-to .inbox-bcc{margin-left:5px}.inbox-compose .mail-to inbox-bcc:hover,.inbox-compose .mail-to inbox-cc:hover{color:#777}.inbox-compose .wysihtml5{padding:0!important;margin:0!important;border:0!important}.inbox-compose .wysihtml5-sandbox{padding:0!important;margin:5px 0 0!important;display:block!important;border:0!important;width:100%!important;border-left:none;border-right:none}.inbox-compose .wysihtml5-toolbar{border:0;border-bottom:1px solid #eee}.inbox-compose .wysihtml5-toolbar>li{height:34px;margin-right:0;margin-bottom:0}.inbox-compose .wysihtml5-toolbar>li>a,.inbox-compose .wysihtml5-toolbar>li>div>a{background:#fff}.inbox-compose .wysihtml5-toolbar>li>a:hover,.inbox-compose .wysihtml5-toolbar>li>div>a:hover{background:#f1f1f1;border-radius:0}.inbox-compose .wysihtml5-toolbar .dropdown.open .dropdown-toggle,ul.wysihtml5-toolbar a.btn.wysihtml5-command-active{background:#eee!important}@media (max-width:480px){.inbox-compose .inbox-form-group>label{margin-top:7px}}#mailMessages::-webkit-scrollbar-track{background-color:#fff!important}#mailMessages::-webkit-scrollbar{width:5px}.inbox-editor{padding:10px;margin:0!important}blockquote{margin-top:20px;margin-left:10px;margin-bottom:20px;border-left:1px solid #666!important;padding-left:5px;display:block;opacity:.7;filter:alpha(opacity=70)}.wysiwyg-color-black{color:#000}.wysiwyg-color-silver{color:silver}.wysiwyg-color-gray{color:gray}.wysiwyg-color-white{color:#fff}.wysiwyg-color-maroon{color:maroon}.wysiwyg-color-red{color:red}.wysiwyg-color-purple{color:purple}.wysiwyg-color-fuchsia{color:#f0f}.wysiwyg-color-green{color:green}.wysiwyg-color-lime{color:#0f0}.wysiwyg-color-olive{color:olive}.wysiwyg-color-yellow{color:#ff0}.wysiwyg-color-navy{color:navy}.wysiwyg-color-blue{color:#00f}.wysiwyg-color-teal{color:teal}.wysiwyg-color-aqua{color:#0ff}.wysiwyg-color-orange{color:orange}.our-integrations h3{margin-bottom:0;padding:10px;background:#f9f9f9}.our-integrations small{display:block;font-size:12px;color:#999;margin-top:5px}.our-integrations .integration-info{padding:10px;overflow:hidden;background:#f5f5f5}.audio-portlet .audio-portlet-title{margin-bottom:0;padding:10px;background:#f9f9f9;font-size:17px;word-wrap:break-word;margin-top:20px;line-height:1.1;color:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.audio-portlet .audio-portlet-title a{display:block;word-wrap:break-word;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.audio-portlet .file-info{padding:10px;overflow:hidden;background:#f5f5f5;height:105px}.audio-portlet-wrapper{float:left;margin:0 0 0 20px;-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s;-moz-transition:all .5s linear;-webkit-transition:all .5s linear;transition:all .5s linear}.animate-repeat{list-style:none;box-sizing:border-box}.animate-repeat.ng-enter,.animate-repeat.ng-leave,.animate-repeat.ng-move{-webkit-transition:all linear .5s;transition:all linear .5s}.animate-repeat.ng-enter,.animate-repeat.ng-leave.ng-leave-active,.animate-repeat.ng-move{opacity:0;max-height:0}.animate-repeat.ng-enter.ng-enter-active,.animate-repeat.ng-leave,.animate-repeat.ng-move.ng-move-active{opacity:1;max-height:600px}audio{-moz-transition:all .5s linear;-webkit-transition:all .5s linear;transition:all .5s linear;border-radius:0}@media (min-width:502px){.audio-portlet-wrapper{width:240px}.editable-error,audio{width:220px}}@media (max-width:501px){.audio-portlet-wrapper{width:320px}.editable-error,audio{width:300px}}.editable-error{white-space:pre-line}#description_div,.table-scrollable>.table>tbody>tr>th,.table-scrollable>.table>tfoot>tr>td,.table-scrollable>.table>tfoot>tr>th,.table-scrollable>.table>thead>tr>th{white-space:nowrap}#description_div{text-overflow:ellipsis;overflow:hidden;word-wrap:break-word}.portlet-title.collapsible{cursor:pointer}.group{background-color:#fff;padding:15px;border-radius:5px;border:1px solid #666}.group-conditions{margin-left:20px}.alert-group{margin-top:10px;margin-bottom:10px;border-color:#dcc896}.condition,.group{margin-top:15px;margin-bottom:15px}div[contenteditable]{max-height:100px;overflow:auto;display:block;width:100%;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}a,button,code,div,img,input,label,li,p,pre,select,span,table,td,textarea,th,ul{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.img-circle{border-radius:50%!important}.img-rounded{border-radius:6px!important}body{color:#333;font-family:"Open Sans",sans-serif;padding:0!important;margin:0!important;font-size:13px;direction:ltr}@-ms-viewport{width:device-width}@-o-viewport{width:device-width}@viewport{width:device-width}@-ms-viewport{width:auto!important}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background-color:#eaeaea;border-radius:0;box-shadow:none;border:0}::-webkit-scrollbar-thumb{background-color:#cecece;border-radius:0;box-shadow:none;border:0}::-webkit-scrollbar-thumb:hover{background-color:#aaa}.bars,.chart,.pie,.primary-font{font-family:"Open Sans",sans-serif!important}h1{font-size:33px}h2{font-size:27px}h3{font-size:23px}h4{font-size:17px}h5{font-size:13px}h6{font-size:12px}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#444}h1.block,h2.block,h3.block,h4.block,h5.block,h6.block{padding-top:10px;padding-bottom:10px}a{text-shadow:none;color:#5b9bd1}a:active,a:focus,a:hover{outline:0}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:0}.list-unstyled li>.list-unstyled{margin-left:25px}code{border:1px solid #e1e1e1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.1);-moz-box-shadow:0 1px 4px rgba(0,0,0,.1);box-shadow:0 1px 4px rgba(0,0,0,.1)}.disabled-link .disable-target{opacity:.5!important;filter:alpha(opacity=50)!important}.disabled-link .disable-target:hover,.disabled-link:hover{cursor:not-allowed!important}a:hover{color:#3175af;cursor:pointer}.primary-link{color:#65A0D0;font-weight:600}.primary-link:hover{color:#5194ca}.rounded-2{border-radius:2px!important}.rounded-3{border-radius:3px!important}.rounded-4{border-radius:4px!important}.circle{border-radius:25px!important}.circle-right{border-radius:0 25px 25px 0!important}.circle-left{border-radius:25px 0 0 25px!important}.circle-bottom{border-radius:0 0 25px 25px!important}.circle-top{border-radius:25px 25px 0 0!important}.display-hide,.display-none{display:none}.hidden{display:none!important}.bold{font-weight:700!important}.thin{font-weight:300!important}.uppercase{text-transform:uppercase!important}.fix-margin{margin-left:0!important}.border{border:1px solid red}.font-hg{font-size:23px}.font-lg{font-size:18px}.font-md{font-size:14px}.font-sm{font-size:13px}.font-xs{font-size:11px}.inline{display:inline}.inline-block{display:inline-block}.text-align-reverse{text-align:right}.top-news a,.top-news span{text-align:left;display:block}.no-space{margin:0!important;padding:0!important}.no-margin{margin:0}.margin-bottom-5{margin-bottom:5px}.margin-bottom-10{margin-bottom:10px!important}.margin-top-10{margin-top:10px!important}.margin-top-15{margin-top:15px!important}.margin-bottom-15{margin-bottom:15px!important}.margin-bottom-20{margin-bottom:20px!important}.margin-top-20{margin-top:20px!important}.margin-bottom-25{margin-bottom:25px!important}.margin-bottom-30{margin-bottom:30px!important}.margin-right-10{margin-right:10px!important}.visible-ie8{display:none}.ie8 .visible-ie8{display:inherit!important}.visible-ie9{display:none}.ie9 .visible-ie9{display:inherit!important}.hidden-ie8{display:inherit}.ie8 .hidden-ie8{display:none!important}.hidden-ie9{display:inherit}.ie9 .hidden-ie9{display:none!important}@media (max-width:1024px){.hidden-1024{display:none}}@media (max-width:480px){.hidden-480{display:none}}@media (max-width:320px){.hidden-320{display:none}}.scrollspy-example{position:relative;height:200px;margin-top:10px;overflow:auto}.util-btn-group-margin-bottom-5 .btn-group,.util-btn-margin-bottom-5 .btn{margin-bottom:5px!important}.user-info{margin-bottom:10px!important}.user-info img{float:left;margin-right:5px}.number-stats .stat-left,.number-stats .stat-left .stat-chart{float:right}.user-info .details{display:inline-block}.user-info .label{font-weight:300;font-size:11px}.top-news{color:#fff;margin:8px 0}.top-news em{font-size:13px;margin-bottom:0;font-style:normal;display:block}.top-news em i{font-size:14px}.top-news span{font-size:18px;margin-bottom:5px}.top-news a{padding:10px;position:relative;margin-bottom:10px}.top-news a .top-news-icon{right:8px;bottom:15px;opacity:.3;font-size:35px;position:absolute;filter:alpha(opacity=30)}.blog-images{margin-bottom:0}.blog-images li{padding:0;margin:0;display:inline}.blog-images li a:hover{text-decoration:none}.blog-images li img{width:50px;height:50px;opacity:.6;margin:0 2px 8px}.blog-images li img:hover{opacity:1;box-shadow:0 0 0 4px #72c02c;transition:all .4s ease-in-out 0s;-moz-transition:all .4s ease-in-out 0s;-webkit-transition:all .4s ease-in-out 0s}.sidebar-tags li{padding:0}.sidebar-tags li a{color:#555;font-size:12px;padding:3px 5px;background:#f7f7f7;margin:0 2px 5px 0;display:inline-block}.sidebar-tags li a:hover,.sidebar-tags li a:hover i{background:#EEE;text-decoration:none;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.sidebar-tags li a i{color:#777}.ver-inline-menu{padding:0;margin:0;list-style:none}.ver-inline-menu li{position:relative;margin-bottom:1px}.ver-inline-menu li i{width:37px;height:37px;display:inline-block;color:#b9cbd5;font-size:15px;padding:12px 10px 10px 8px;margin:0 8px 0 0;text-align:center;background:#e0eaf0!important}.ver-inline-menu li a{font-size:14px;font-weight:300;color:#557386;display:block;background:#f0f6fa;border-left:solid 2px #c4d5df}.ver-inline-menu li:hover a{background:#e0eaf0;text-decoration:none}.ver-inline-menu li:hover i{color:#fff;background:#c4d5df!important}.ver-inline-menu li.active a{border-left:solid 2px #0c91e5}.ver-inline-menu li.active i{background:#0c91e5!important}.ver-inline-menu li.active a,.ver-inline-menu li.active i{color:#fff;background:#169ef4;text-decoration:none}.ver-inline-menu li.active a,.ver-inline-menu li:hover a{font-size:14px}.ver-inline-menu li.active:after{content:'';display:inline-block;border-bottom:6px solid transparent;border-top:6px solid transparent;border-left:6px solid #169ef4;position:absolute;top:12px;right:-5px}.list-separated{margin-top:10px;margin-bottom:15px}.list-separated>div{border-right1:1px solid #f5f5f5}.list-separated>div:last-child{border-right:0}@media (max-width:767px){.ver-inline-menu>li.active:after{display:none}.list-separated>div{margin-bottom:20px}}.number-stats{margin:10px 0}.number-stats .stat-number{display:inline-block;margin:0 5px}.number-stats .stat-number .title{font-size:13px;margin-bottom:3px;color:#B8C3C7}.number-stats .stat-number .number{font-size:27px;line-height:27px;color:#7D8C9D}.number-stats>div{border-right:1px solid #f5f5f5}.number-stats>div:last-child{border-right:0}.number-stats .stat-left .stat-number{float:right;text-align:right}.number-stats .stat-right{float:left!important}.number-stats .stat-right .stat-number{float:left;text-align:left}.number-stats .stat-right .stat-chart{float:left}.number-stats .stat-number{float:left;text-align:left}.number-stats .stat-chart{display:inline-block;margin:0 5px;float:left}.general-item-list>.item{padding:10px 0;border-bottom:1px solid #F1F4F7}.general-item-list>.item:last-child{border-bottom:0}.general-item-list>.item>.item-head{margin-bottom:5px}.general-item-list>.item>.item-head:after,.general-item-list>.item>.item-head:before{content:" ";display:table}.general-item-list>.item>.item-head>.item-details{display:inline-block;float:left}.general-item-list>.item>.item-head>.item-details>.item-pic{height:35px;margin-right:10px;-webkit-border-radius:100%;-moz-border-radius:100%;-ms-border-radius:100%;-o-border-radius:100%;border-radius:100%}.general-item-list>.item>.item-head>.item-details>.item-name{display:inline-block;margin-right:10px}.general-item-list>.item>.item-head>.item-details>.item-label{color:#C0C9CC}.general-item-list>.item>.item-head>.item-status{color:#C0C9CC;top:10px;position:relative;display:inline-block;float:right}.general-item-list>.item>.item-head>.item-status>.badge{margin-top:-2px}.general-item-list>.item>.item-body{color:#96a5aa}.file-drop-zone{border:2px dashed #ddd;padding:30px;text-align:center}.file-drop-zone.file-drop-zone-over{border-color:#aaa}[class*=" fa-"],[class*=" glyphicon-"],[class*=" icon-"],[class^=fa-],[class^=glyphicon-],[class^=icon-]{display:inline-block;margin-top:1px;font-size:14px;line-height:14px;-webkit-font-smoothing:antialiased}li [class*=" fa-"],li [class*=" glyphicon-"],li [class*=" icon-"],li [class^=fa-],li [class^=glyphicon-],li [class^=icon-]{display:inline-block;width:1.25em;text-align:center}li [class*=" glyphicon-"],li [class^=glyphicon-]{top:2px}li [class*=" icon-"],li [class^=icon-]{top:1px;position:relative}li [class*=" fa-"].icon-large,li [class*=" glyphicon-"].icon-large,li [class*=" icon-"].icon-large,li [class^=fa-].icon-large,li [class^=glyphicon-].icon-large,li [class^=icon-].icon-large{width:1.5625em}.fa-sm,.icon-sm{font-size:12px}.fa-lg,.icon-lg{font-size:16px!important}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.icon-state-default{color:#c6c6c6}.icon-state-success{color:#45B6AF}.icon-state-info{color:#89C4F4}.icon-state-warning{color:#dfba49}.icon-state-danger{color:#F3565D}.fa-item{font-size:14px;padding:10px 10px 10px 20px}.fa-item i{font-size:16px;display:inline-block;width:20px;color:#333}.fa-item:hover{cursor:pointer;background:#eee}.badge-danger,.badge-default,.badge-info,.badge-primary,.badge-success,.badge-warning{background-image:none}.simplelineicons-demo .item-box{display:inline-block;font-size:16px;margin:0 -.22em 1em 0;padding-left:1em;width:100%}.simplelineicons-demo .item-box .item{background-color:#fff;color:#33383e;border-radius:8px;display:inline-block;padding:10px;width:100%}.bs-glyphicons,.glyphicons-demo ul{padding-left:0;padding-bottom:1px;margin-bottom:20px;overflow:hidden;list-style:none}.simplelineicons-demo .item-box .item span{font-size:22px}@media only screen and (min-width:768px){.simplelineicons-demo .item-box{width:33.333%}}.bs-glyphicon-class{text-align:center}.glyphicons-demo ul li{float:left;width:25%;height:115px;padding:10px;margin:0 -1px -1px 0;font-size:14px;line-height:1.4;text-align:center;border:1px solid #ddd}.glyphicons-demo .glyphicon{display:block;margin:5px auto 10px;font-size:24px;color:#444}.glyphicons-demo ul li:hover{background-color:rgba(86,61,124,.1)}.badge-default,.label-default{background-color:#c6c6c6}@media (min-width:768px){.glyphicons-demo ul li{width:12.5%}}.alert.alert-borderless{border:0}.badge{font-size:11px!important;font-weight:300;height:18px;padding:3px 6px;-webkit-border-radius:12px!important;-moz-border-radius:12px!important;border-radius:12px!important;text-shadow:none!important;text-align:center}.badge.badge-roundless{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.badge.badge-empty{display:inline-block;padding:0;min-width:8px;height:8px;width:8px}.badge-primary{background-color:#428bca}.badge-info{background-color:#89C4F4}.badge-success{background-color:#45B6AF}.badge-danger{background-color:#F3565D}.badge-warning{background-color:#dfba49}.nav.nav-pills>li>a>.badge,.nav.nav-stacked>li>a>.badge{margin-top:-2px}.dropdown-menu>li>a>.badge{position:absolute;margin-top:1px;right:3px;display:inline;font-size:11px;font-weight:300;text-shadow:none;height:18px;padding:3px 6px;text-align:center;vertical-align:middle;-webkit-border-radius:12px!important;-moz-border-radius:12px!important;border-radius:12px!important}.btn,.btn>i{font-size:14px}.dropdown-menu.badge-roundless{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.btn{border-width:0;padding:7px 14px;outline:0!important;background-image:none!important;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none}.btn-group .btn.dropdown-toggle,.btn.active,.btn.dropdown-toggle,.btn:active,.btn:disabled,.btn:focus,.btn:hover,.btn[disabled]{outline:0!important;background-image:none!important;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none}.btn-default{border-width:1px;padding:6px 13px;color:#333;background-color:#fff;border-color:#ccc}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .btn-default.dropdown-toggle{color:#333;background-color:#ededed;border-color:#b3b3b3}.btn-default.active,.btn-default:active{background-image:none;background-color:#e0e0e0}.btn-default.active:hover,.btn-default:active:hover{background-color:#e6e6e6}.open .btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-default>i{color:#aaa}.btn-default>i[class*=icon-],.btn-default>i[class^=icon-]{color:#8c8c8c}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .btn-primary.dropdown-toggle{color:#fff;background-color:#3379b5;border-color:#2a6496}.btn-primary.active,.btn-primary:active{background-image:none;background-color:#2d6ca2}.btn-primary.active:hover,.btn-primary:active:hover{background-color:#3071a9}.open .btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#45B6AF;border-color:#3ea49d}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .btn-success.dropdown-toggle{color:#fff;background-color:#3b9c96;border-color:#307f7a}.btn-success.active,.btn-success:active{background-image:none;background-color:#348a84}.btn-success.active:hover,.btn-success:active:hover{background-color:#37918b}.open .btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#45B6AF;border-color:#3ea49d}.btn-success .badge{color:#45B6AF;background-color:#fff}.btn-info{color:#fff;background-color:#89C4F4;border-color:#72b8f2}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .btn-info.dropdown-toggle{color:#fff;background-color:#68b4f1;border-color:#43a1ed}.btn-info.active,.btn-info:active{background-image:none;background-color:#51a8ef}.btn-info.active:hover,.btn-info:active:hover{background-color:#5aadf0}.open .btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#89C4F4;border-color:#72b8f2}.btn-info .badge{color:#89C4F4;background-color:#fff}.btn-warning{color:#fff;background-color:#dfba49;border-color:#dbb233}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .btn-warning.dropdown-toggle{color:#fff;background-color:#daae2b;border-color:#bb9521}.btn-warning.active,.btn-warning:active{background-image:none;background-color:#c89f23}.btn-warning.active:hover,.btn-warning:active:hover{background-color:#d0a625}.open .btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#dfba49;border-color:#dbb233}.btn-warning .badge{color:#dfba49;background-color:#fff}.btn-danger{color:#fff;background-color:#F3565D;border-color:#f13e46}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .btn-danger.dropdown-toggle{color:#fff;background-color:#f1353d;border-color:#ec111b}.btn-danger.active,.btn-danger:active{background-image:none;background-color:#ef1d26}.btn-danger.active:hover,.btn-danger:active:hover{background-color:#f0262f}.open .btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#F3565D;border-color:#f13e46}.btn-danger .badge{color:#F3565D;background-color:#fff}.btn-lg,.btn-lg>i{font-size:18px}.btn-lg{padding:10px 16px;line-height:1.33}.btn-sm,.btn-xs{padding:4px 10px 5px;font-size:13px;line-height:1.5}.btn-sm>i,.btn-xs>i{font-size:13px}.btn-xs{padding:1px 5px}.btn-group .input-sm .btn-default{padding-top:3px;padding-bottom:3px}.btn-arrow-link{display:inline-block;font-size:13px}.btn-arrow-link>i{font-size:14px;line-height:14px;vertical-align:top;margin:2px 3px;color:#999}.btn-arrow-link.btn-arrow-link-lg{font-size:14px}.btn-arrow-link.btn-arrow-link-lg>i{font-size:16px;line-height:16px;margin:2px 3px 1px}.btn-circle{border-radius:25px!important}.btn-circle-right{border-radius:0 25px 25px 0!important}.btn-circle-left{border-radius:25px 0 0 25px!important}.btn-circle-bottom{border-radius:0 0 25px 25px!important}.btn-circle-top{border-radius:25px 25px 0 0!important}.btn-icon-only{height:34px;width:34px;text-align:center;padding-left:0;padding-right:0}.btn-icon-only>[class^=icon-],.btn-icon-only>i{text-align:center;margin-top:2px}.btn-sm>[class*=" glyphicon-"],.btn-sm>[class^=glyphicon-],.btn-sm>i{font-size:13px}.btn-xs>[class*=" glyphicon-"],.btn-xs>[class^=glyphicon-],.btn-xs>i{font-size:11px}.btn-group.btn-group-circle>.btn:first-child{border-radius:25px 0 0 25px!important}.btn-group.btn-group-circle>.btn:last-child{border-radius:0 25px 25px 0!important}.btn-group.btn-group-devided>.btn{margin-right:5px}.btn-group.btn-group-devided>.btn:last-child{margin-right:0}.btn-group-vertical.btn-group-vertical-circle>.btn:first-child{border-radius:25px 25px 0 0!important}.btn-group-vertical.btn-group-vertical-circle>.btn:last-child{border-radius:0 0 25px 25px!important}.carousel.image-carousel .carousel-inner{padding-top:0;padding-bottom:0}.carousel.image-carousel .carousel-control i{position:absolute;top:40%}.carousel.image-carousel.image-carousel-hoverable .carousel-control i{display:none}.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i{display:inline-block}.carousel.image-carousel .carousel-control.left i{left:10px}.carousel.image-carousel .carousel-control.right i{right:10px}.carousel.image-carousel .carousel-indicators{margin-top:10px;bottom:-7px}.carousel.image-carousel .carousel-indicators li,.carousel.image-carousel .carousel-indicators li.active{background-color:#666}.carousel.image-carousel .carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px 15px 25px;background:#333;background:rgba(0,0,0,.75)}.carousel.image-carousel .carousel-caption h2,.carousel.image-carousel .carousel-caption h3,.carousel.image-carousel .carousel-caption h4,.carousel.image-carousel .carousel-caption p{text-align:left;line-height:20px;color:#fff}.carousel.image-carousel .carousel-caption h2,.carousel.image-carousel .carousel-caption h3,.carousel.image-carousel .carousel-caption h4{margin:0 0 5px}.carousel.image-carousel .carousel-caption h2 a,.carousel.image-carousel .carousel-caption h3 a,.carousel.image-carousel .carousel-caption h4 a{color:#aaa}.carousel.image-carousel .carousel-caption p{margin-bottom:0}.carousel.image-carousel .carousel-caption .item{margin:0}.bars,.chart,.pie{overflow:hidden;height:300px;width:100%;font-size:14px}.item-list.table .percent{width:30px;float:right;margin-right:10px;margin-top:3px}.chart-tooltip{z-index:100;background-color:#736e6e!important;padding:5px!important;color:#fff}.chart-tooltip .label{display:block;margin-bottom:2px}.bar-chart,.line-chart{display:none}.chats{margin:-15px 0 0;padding:0}.chats li{list-style:none;padding:5px 0;margin:10px auto;font-size:12px}.chats li .body{display:block}.chats li .avatar{height:45px;width:45px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;border-radius:50%!important}.chats li.in .avatar{float:left;margin-right:10px}.chats li.out .avatar{float:right;margin-left:10px}.chats li .name{color:#3590c1;font-size:13px;font-weight:400}.chats li .datetime{color:#333;font-size:13px;font-weight:400}.chats li .message{border-radius:5px!important;-webkit-border-readius:5px!important;-moz-border-radius:5px!important;display:block;padding:5px;position:relative}.chats li.in .message .arrow,.chats li.out .message .arrow{display:block;position:absolute;top:5px;border-top:8px solid transparent;border-bottom:8px solid transparent}.chats li.in .message{text-align:left;border-left:2px solid #e9e9e9;margin-left:65px;background:#e9e9e9}.chats li.in .message .arrow{left:-8px;width:0;height:0;border-right:8px solid #e9e9e9}.chats li.out .message{border-right:2px solid #C7E9E6;margin-right:65px;background:#C7E9E6;text-align:right}.chats li.out .message .arrow{right:-8px;border-left:8px solid #C7E9E6}.chats li.out .datetime,.chats li.out .name{text-align:right}.chat-form{margin-top:15px;padding:10px;background-color:#e9eff3;overflow:hidden}.chat-form .input-cont{margin-right:40px}.chat-form .input-cont .form-control{border:1px solid #ddd;width:100%!important;margin-top:0;background-color:#fff!important}.chat-form .input-cont .form-control:focus{border:1px solid #4b8df9!important}.chat-form .btn-cont{margin-top:-42px;position:relative;float:right;width:44px}.chat-form .btn-cont .arrow{position:absolute;top:17px;right:43px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid #4d90fe;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chat-form .btn-cont .btn{margin-top:8px}.chat-form .btn-cont:hover .arrow{border-right-color:#0362fd}.chat-form .btn-cont:hover .btn{background-color:#0362fd}.close{display:inline-block;margin-top:0;margin-right:0;width:9px;height:9px;background-repeat:no-repeat!important;text-indent:-10000px;outline:0;background-image:url(../../assets/images/remove-icon-small.png)!important}.dropdown.open>.dropdown-toggle,.dropup.open>.dropdown-toggle{border-color:#ddd}.dropdown-menu{min-width:175px;position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;list-style:none;text-shadow:none;padding:0;margin:10px 0 0;background-color:#fffff;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #eee;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.dropdown-menu li.divider{background:#f1f3f6}.dropdown-menu li>a{padding:8px 14px;color:#555;text-decoration:none;display:block;font-weight:300;line-height:18px;white-space:nowrap}.dropdown-menu li>a>[class*=" fa-"],.dropdown-menu li>a>[class^=fa-]{color:#888}.dropdown-menu li>a>[class*=" icon-"],.dropdown-menu li>a>[class^=icon-]{color:#666}.dropdown-menu li>a>[class*=" glyphicon-"],.dropdown-menu li>a>[class^=glyphicon-]{color:#888}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{text-decoration:none;background-image:none;background-color:#f6f6f6;color:#555;filter:none}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px}.btn-group>.dropdown-menu,.dropdown-toggle>.dropdown-menu,.dropdown>.dropdown-menu{margin-top:10px}.btn-group>.dropdown-menu:before,.dropdown-toggle>.dropdown-menu:before,.dropdown>.dropdown-menu:before{position:absolute;top:-8px;left:9px;right:auto;display:inline-block!important;border-right:8px solid transparent;border-bottom:8px solid #e0e0e0;border-left:8px solid transparent;content:''}.btn-group>.dropdown-menu:after,.dropdown-toggle>.dropdown-menu:after,.dropdown>.dropdown-menu:after{position:absolute;top:-7px;left:10px;right:auto;display:inline-block!important;border-right:7px solid transparent;border-bottom:7px solid #fff;border-left:7px solid transparent;content:''}.btn-group>.dropdown-menu.pull-left:before,.dropdown-toggle>.dropdown-menu.pull-left:before,.dropdown>.dropdown-menu.pull-left:before{left:auto;right:9px}.btn-group>.dropdown-menu.pull-left:after,.dropdown-toggle>.dropdown-menu.pull-left:after,.dropdown>.dropdown-menu.pull-left:after{left:auto;right:10px}.btn-group>.dropdown-menu.pull-right:before,.dropdown-toggle>.dropdown-menu.pull-right:before,.dropdown>.dropdown-menu.pull-right:before{left:auto;right:9px}.btn-group>.dropdown-menu.pull-right:after,.dropdown-toggle>.dropdown-menu.pull-right:after,.dropdown>.dropdown-menu.pull-right:after{left:auto;right:10px}.btn-group.dropup>.dropdown-menu,.dropdown-toggle.dropup>.dropdown-menu,.dropdown.dropup>.dropdown-menu{margin-top:0;margin-bottom:10px}.btn-group.dropup>.dropdown-menu:after,.btn-group.dropup>.dropdown-menu:before,.dropdown-toggle.dropup>.dropdown-menu:after,.dropdown-toggle.dropup>.dropdown-menu:before,.dropdown.dropup>.dropdown-menu:after,.dropdown.dropup>.dropdown-menu:before{display:none!important}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:5px;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu>a:after{position:absolute;display:inline-block;font-size:14px;right:7px;top:7px;font-family:FontAwesome;height:auto;content:"\f105";font-weight:300}.label,.table.table-light>thead>tr>th{font-family:"Open Sans",sans-serif}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px}.nav.pull-right>li>.dropdown-menu,.nav>li>.dropdown-menu.pull-right{right:0;left:auto}.nav.pull-right>li>.dropdown-menu:before,.nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.nav.pull-right>li>.dropdown-menu:after,.nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.nav.pull-right>li>.dropdown-menu .dropdown-menu,.nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:absolute;float:left;width:auto;margin-top:0;background-color:#fff;border:1px solid #efefef;box-shadow:5px 5px rgba(102,102,102,.1)}.navbar-nav .open .dropdown-menu>li>a{padding:6px 0 6px 13px;color:#333}.navbar-nav .open .dropdown-menu>li>a:active,.navbar-nav .open .dropdown-menu>li>a:hover{ackground-color:#eee}}.feeds li .col1,.feeds li .col1>.cont>.cont-col2{width:100%;float:left}.dropdown-checkboxes,.dropdown-content,.dropdown-radiobuttons{padding:5px}.dropdown-content form{margin:0}.dropdown.inline .dropdown-menu{display:inline-block;position:relative}.dropdown-checkboxes label,.dropdown-radiobuttons label{display:block;font-weight:300;color:#333;margin-bottom:4px;margin-top:4px}.dropdown-checkboxes label .radio,.dropdown-radiobuttons label .radio{margin-right:3px}.feeds{margin:0;padding:0;list-style:none}.feeds li{background-color:#fafafa;color:#82949a;margin-bottom:7px}.feeds li:after,.feeds li:before{display:table;line-height:0;content:""}.feeds li:last-child{margin-bottom:0}.feeds li .col1>.cont{float:left;margin-right:75px;overflow:hidden}.feeds li .col1>.cont>.cont-col1{float:left;margin-right:-100%}.feeds li .col1>.cont>.cont-col1>.label{display:inline-block;padding:5px 4px 6px 5px;vertical-align:middle;text-align:center}.feeds li .col1>.cont>.cont-col1>.label>i{text-align:center;font-size:14px}.feeds li .col1>.cont>.cont-col2>.desc{margin-left:35px;padding-top:4px;padding-bottom:5px;overflow:hidden}.modal,.modal-open{overflow-y:auto!important}.feeds li .col2{float:left;width:75px;margin-left:-75px}.feeds li .col2>.date{padding:4px 9px 5px 4px;text-align:right;font-style:italic;color:#c1cbd0}.static-info{margin-bottom:10px}.static-info .name{font-size:14px}.static-info .value{font-size:14px;font-weight:600}.static-info.align-reverse .name,.static-info.align-reverse .value{text-align:right}.help-block{margin-top:5px;margin-bottom:5px}.help-inline{font-size:13px;color:#737373;display:inline-block;padding:5px}.form-inline input{margin-bottom:0!important}.control-label{margin-top:1px}.control-label .required{color:#e02222;font-size:12px;padding-left:2px}.form{padding:0!important}.form .form-body{padding:10px}.portlet.light .form .form-body{padding-left:0;padding-right:0}.form .form-actions{padding:20px 10px;margin:0;background-color:#f5f5f5;border-top:1px solid #e5e5e5}.portlet.light .form .form-actions{background:0 0;padding-left:0;padding-right:0}.portlet .form .form-actions{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.form .form-actions:after,.form .form-actions:before{content:" ";display:table}.form .form-actions.right{padding-left:0;padding-right:10px;text-align:right}.portlet.light .form .form-actions.right{padding-right:0}.form .form-actions.left{padding-left:10px;padding-right:0;text-align:left}.checkbox-list>label.checkbox-inline:first-child,.checkbox>label,.form-horizontal .checkbox>label,.portlet.light .form .form-actions.left,.radio-list>label.radio-inline:first-child{padding-left:0}.form .form-actions.nobg{background-color:transparent}.form .form-actions.top{margin-top:0;margin-bottom:20px;border-top:0;border-bottom:1px solid #e5e5e5}.portlet.light .form .form-actions.top{background:0 0}.form .form-actions .btn-set{display:inline-block}@media (max-width:767px){.form .form-actions .btn-set{margin-bottom:3px;margin-top:3px;float:left!important}}.form .form-section{margin:30px 0 25px;padding-bottom:5px;border-bottom:1px solid #eee}.form .form-bordered .form-group .help-block,.form .form-row-seperated .form-group .help-block,.form-horizontal .radio-list>label{margin-bottom:0}.form .form-section:first-child{margin-top:5px}.checkbox,.form-horizontal .checkbox{padding:0}.checkbox-list>label{display:block}.checkbox-list>label.checkbox-inline{display:inline-block}.input-icon>i,.radio-list>label{display:block}.form-control-static,.icon-btn,.input-inline,.radio-list>label.radio-inline{display:inline-block}.form-horizontal .radio-list .radio{padding-top:1px}.form-horizontal .radio>span{margin-top:2px}.form .form-row-seperated .portlet-body{padding:0}.form .form-row-seperated .form-group{margin:0;border-bottom:1px solid #efefef;padding:15px 0}.form .form-row-seperated .form-group.last{border-bottom:0;margin-bottom:0;padding-bottom:13px}.form .form-row-seperated .form-body{padding:0}.form .form-row-seperated .form-actions{padding-left:15px!important;padding-right:15px!important}.form .form-bordered .form-group{margin:0;border-bottom:1px solid #efefef}.form .form-bordered .form-group>div{padding:15px;border-left:1px solid #efefef}.form .form-bordered .form-group.last{border-bottom:0}.form .form-bordered .form-group .control-label{padding-top:20px}@media (max-width:991px){.form .form-bordered .form-group>div{border-left:0}.form .form-bordered .form-group .control-label{padding-top:10px}}.form .form-bordered .form-group .form-control{margin:0}.form .form-bordered .form-body{margin:0;padding:0}.form .form-bordered .form-actions{margin-top:0;padding-left:16px!important;padding-right:16px!important}@media (max-width:991px){.form .form-bordered .form-actions{padding-left:15px!important;padding-right:15px!important}}.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even){background-color:#fcfcfc}.form .form-horizontal.form-bordered.form-row-stripped .form-control{background:#fff!important}.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even)>div{background-color:#fff}.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even){background-color:#fcfcfc}.form-control::-moz-placeholder{color:#b3b3b3;opacity:1}.form-control:-ms-input-placeholder{color:#b3b3b3}.form-control::-webkit-input-placeholder{color:#b3b3b3}.form-control{font-size:14px;font-weight:400;color:#333;background-color:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#999;outline:0;-webkit-box-shadow:none;box-shadow:none}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.form-control.height-auto{height:auto}.form-control.form-control-solid{background-color:#F1F3F8;border-color:#F1F3F8;color:#A6B2BA}.note .highlight,.note code,.uneditable-input{background-color:#fff}.form-control.form-control-solid:focus{border-color:#e3e7f1}.form-control.form-control-solid::-moz-placeholder{color:#acb7be;opacity:1}.form-control.form-control-solid:-ms-input-placeholder{color:#acb7be}.form-control.form-control-solid::-webkit-input-placeholder{color:#acb7be}.uneditable-input{padding:6px 12px;min-width:206px;font-size:14px;font-weight:400;height:34px;color:#333;border:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.icon-btn,.icon-btn:hover{-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease}.input-mini{width:45px!important}.input-xsmall{width:80px!important}.input-small{width:145px!important}.input-medium{width:240px!important}.input-large{width:320px!important}.input-xlarge{width:420px!important}.input-inline{width:auto;vertical-align:middle}.form-group .input-inline{margin-right:5px}.input-sm{height:28px;padding:5px 10px;font-size:13px}select.input-sm{height:28px;line-height:28px;padding:2px 10px}@media (max-width:768px){.input-large{width:250px!important}.input-xlarge{width:300px!important}}.input-group .btn-default{border-color:#e5e5e5}.input-group .input-group-addon{border-color:#e5e5e5;background:#e5e5e5;min-width:39px}.input-group .input-group-addon>i{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .help-inline,.has-success .radio,.has-success .radio-inline{color:#3c763d}input[type=text].spinner,input[type=password].spinner,input[type=datetime].spinner,input[type=datetime-local].spinner,input[type=date].spinner,input[type=month].spinner,input[type=time].spinner,input[type=week].spinner,input[type=number].spinner,input[type=email].spinner,input[type=url].spinner,input[type=search].spinner,input[type=tel].spinner,input[type=color].spinner{background-image:url(../../assets/images/input-spinner.gif)!important;background-repeat:no-repeat;background-position:right 8px}label{font-weight:400;font-size:14px}.form-control-static{margin:2px 0}.has-success .form-control{border-color:#d6e9c6;-webkit-box-shadow:none;box-shadow:none}.has-success .form-control:focus{border-color:#bbdba1;-webkit-box-shadow:none;box-shadow:none}.has-success .input-group-addon{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .help-inline,.has-warning .radio,.has-warning .radio-inline{color:#8a6d3b}.has-warning .form-control{border-color:#faebcc;-webkit-box-shadow:none;box-shadow:none}.has-warning .form-control:focus{border-color:#f5d89e;-webkit-box-shadow:none;box-shadow:none}.has-warning .input-group-addon{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .help-inline,.has-error .radio,.has-error .radio-inline{color:#a94442}.has-error .form-control{border-color:#ebccd1;-webkit-box-shadow:none;box-shadow:none}.has-error .form-control:focus{border-color:#dca7b0;-webkit-box-shadow:none;box-shadow:none}.has-error .input-group-addon{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.input-circle{border-radius:25px!important}.input-circle-right{border-radius:0 25px 25px 0!important}.input-circle-left{border-radius:25px 0 0 25px!important}.input-circle-bottom{border-radius:0 0 25px 25px!important}.input-circle-top{border-radius:25px 25px 0 0!important}.icon-btn{height:60px;min-width:80px;margin:5px 5px 0 0;border:1px solid #ddd;padding:12px 0 0;background-color:#fafafa;background-image:none;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;color:#646464;text-shadow:none;text-align:center;cursor:pointer;position:relative;transition:all .3s ease}.loading-message,.page-loading{min-width:125px;vertical-align:middle}[class^=m-icon-],[class^=m-icon-big-]{background-image:url(../../assets/images/syncfusion-icons.png);background-position:0 0;background-repeat:no-repeat}.icon-btn:hover,.icon-btn:hover>.badge{-webkit-box-shadow:none;-moz-box-shadow:none}.close,.icon-btn:hover{text-shadow:0 1px 0 #fff}.icon-btn:hover{text-decoration:none;border-color:#999;color:#444;transition:all .3s ease;box-shadow:none}.icon-btn:hover>.badge{-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;box-shadow:none}.icon-btn>div{margin-top:5px;margin-bottom:20px;color:#000;font-size:12px;font-weight:300}.icon-btn>.badge{position:absolute;font-size:11px;font-weight:300;top:-5px;right:-5px;padding:3px 6px;color:#fff;text-shadow:none;border-width:0;border-style:solid;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.input-group .input-icon>.form-control,.tabs-left.nav-tabs>li>a:focus,.tabs-left.nav-tabs>li>a:hover{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-ms-border-radius:4px 0 0 4px;-o-border-radius:4px 0 0 4px}.icon-btn>i{font-size:18px}.ie8 .icon-btn:hover{filter:none}.input-icon{position:relative}.input-icon>.form-control{padding-left:33px}.input-group .input-icon>.form-control{border-radius:4px 0 0 4px}.input-icon>i{color:#ccc;position:absolute;margin:11px 2px 4px 10px;z-index:3;width:16px;height:16px;font-size:16px;text-align:center}.modal .input-icon>i{z-index:10055}.has-success .input-icon>i{color:#45B6AF}.has-warning .input-icon>i{color:#dfba49}.has-info .input-icon>i{color:#89C4F4}.has-error .input-icon>i{color:#F3565D}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.input-group .input-icon.right>.form-control{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-icon.right>i{right:8px;float:right}.input-icon.input-icon-lg>i{margin-top:16px}.input-icon.input-icon-sm>i{margin-top:8px;font-size:13px}.label{text-shadow:none!important;font-size:13px;font-weight:300;padding:3px 6px;color:#fff}.label.label-sm{font-size:12px;padding:0 4px 1px}h1 .label,h2 .label,h3 .label,h4 .label,h5 .label,h6 .label{font-size:75%}.label-default[href]:focus,.label-default[href]:hover{background-color:#adadad}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#45B6AF}.label-success[href]:focus,.label-success[href]:hover{background-color:#37918b}.label-info{background-color:#89C4F4}.label-info[href]:focus,.label-info[href]:hover{background-color:#5aadf0}.label-warning{background-color:#dfba49}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#d0a625}.label-danger{background-color:#F3565D}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#f0262f}.label.label-icon{padding:4px 0 4px 4px;margin-right:2px;text-align:center!important}.label.label-icon>i{font-size:12px;text-align:center!important}.note p,.page-loading,.panel .panel-body{font-size:13px}.ie8 .label.label-icon,.ie9 .label.label-icon{padding:3px 0 3px 3px}.text-default{color:#c6c6c6}.text-primary{color:#428bca}.text-success{color:#45B6AF}.text-info{color:#89C4F4}.text-warning{color:#dfba49}.text-danger{color:#F3565D}.list-group .list-group-item-success{color:#3c763d;background-color:#dff0d8}.list-group a.list-group-item-success{color:#3c763d}.list-group a.list-group-item-success .list-group-item-heading{color:inherit}.list-group a.list-group-item-success:focus,.list-group a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}.list-group a.list-group-item-success.active,.list-group a.list-group-item-success.active:focus,.list-group a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group .list-group-item-info{color:#31708f;background-color:#d9edf7}.list-group a.list-group-item-info{color:#31708f}.list-group a.list-group-item-info .list-group-item-heading{color:inherit}.list-group a.list-group-item-info:focus,.list-group a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}.list-group a.list-group-item-info.active,.list-group a.list-group-item-info.active:focus,.list-group a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}.list-group a.list-group-item-warning{color:#8a6d3b}.list-group a.list-group-item-warning .list-group-item-heading{color:inherit}.list-group a.list-group-item-warning:focus,.list-group a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}.list-group a.list-group-item-warning.active,.list-group a.list-group-item-warning.active:focus,.list-group a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group .list-group-item-danger{color:#a94442;background-color:#f2dede}.list-group a.list-group-item-danger{color:#a94442}.list-group a.list-group-item-danger .list-group-item-heading{color:inherit}.list-group a.list-group-item-danger:focus,.list-group a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}.list-group a.list-group-item-danger.active,.list-group a.list-group-item-danger.active:focus,.list-group a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.loading-message{display:inline-block;padding:10px;margin:0 auto;color:#000!important;font-size:13px;font-weight:400;text-align:center}.loading-message.loading-message-boxed{border:1px solid #ddd;background-color:#eee;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.loading-message>span{line-height:20px;vertical-align:middle}.page-loading{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;position:fixed;top:50%;left:50%;margin-left:-60px;margin-top:-30px;padding:7px;text-align:center;color:#333;border:1px solid #ddd;background-color:#eee;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.block-spinner-bar>div,.page-spinner-bar>div{border-radius:100%!important;display:inline-block}.panel,.well{-webkit-box-shadow:none!important}.page-loading>span{line-height:20px;vertical-align:middle}.page-spinner-bar{position:fixed;z-index:10051;width:100px;top:40%;left:50%;margin-left:-55px;text-align:center}.page-spinner-bar>div{margin:0 5px;width:18px;height:18px;-webkit-animation:bounceDelay 1.4s infinite ease-in-out;animation:bounceDelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.page-spinner-bar .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.page-spinner-bar .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}.block-spinner-bar{display:inline-block;width:80px;text-align:center}.block-spinner-bar>div{margin:0 2px;width:15px;height:15px;-webkit-animation:bounceDelay 1.4s infinite ease-in-out;animation:bounceDelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.note,.tabs-right.nav-tabs>li>a:focus,.tabs-right.nav-tabs>li>a:hover{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0}.block-spinner-bar .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.block-spinner-bar .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}[class^=m-icon-]{display:inline-block;width:14px;height:14px;margin-top:3px;line-height:14px;vertical-align:top}[class^=m-icon-big-]{display:inline-block;width:30px;height:30px;margin:6px;vertical-align:middle}.btn.m-icon-big{padding:9px 16px 8px}.btn.m-icon-big.m-icon-only{padding:9px 8px 8px 0}.btn.m-icon-big [class^=m-icon-big-]{margin:0 0 0 10px}.btn.m-icon-ony>i{margin-left:0}.btn.m-icon{padding:7px 14px}.btn.m-icon [class^=m-icon-]{margin:4px 0 0 5px}.btn.m-icon.m-icon-only{padding:7px 10px 7px 6px}.m-icon-white{background-image:url(../../assets/images/syncfusion-icons-white.png)}.m-icon-swapright{background-position:-27px -10px}.m-icon-swapdown{background-position:-68px -10px}.m-icon-swapleft{background-position:-8px -10px}.m-icon-swapup{background-position:-46px -10px}.m-icon-big-swapright{background-position:-42px -28px}.m-icon-big-swapdown{background-position:-115px -28px}.m-icon-big-swapleft{background-position:-6px -28px}.m-icon-big-swapup{background-position:-78px -28px}.modal{z-index:10050;outline:0}.modal .modal-header{border-bottom:1px solid #EFEFEF}.modal .modal-header h3{font-weight:300}.modal .modal-header .close{margin-top:0!important}.modal .modal-dialog{z-index:10051}.modal>.loading{position:absolute;top:50%;left:50%;margin-top:-22px;margin-left:-22px}.modal.in .page-loading{display:none}.modal-open-noscroll{overflow-y:hidden!important}.modal-full.modal-dialog{width:99%}@media (max-width:768px){.modal-full.modal-dialog{width:auto}}.note{margin:0 0 20px;padding:15px 30px 15px 15px;border-left:5px solid #eee;border-radius:0 4px 4px 0}.note h1,.note h2,.note h3,.note h4,.note h5,.note h6{margin-top:0}.note h1 .close,.note h2 .close,.note h3 .close,.note h4 .close,.note h5 .close,.note h6 .close{margin-right:-10px}.note p:last-child{margin-bottom:0}.note.note-default{background-color:#d3d3d3;border-color:#a0a0a0;color:#333,80%}.note.note-default.note-bordered{background-color:#c9c9c9;border-color:#a5a5a5}.note.note-primary{background-color:#5697d0;border-color:#2a7696;color:#D8E3F2,80%}.note.note-primary.note-bordered{background-color:#468dcb;border-color:#2c7c9e}.note.note-success{background-color:#eef7ea;border-color:#bbdba1;color:#3c763d,80%}.note.note-success.note-bordered{background-color:#e2f1dc;border-color:#c1dea8}.note.note-info{background-color:#eef7fb;border-color:#91d9e8;color:#31708f,80%}.note.note-info.note-bordered{background-color:#ddeff8;border-color:#9adcea}.note.note-warning{background-color:#fcf8e3;border-color:#f2cf87;color:#8a6d3b,80%}.note.note-warning.note-bordered{background-color:#faf3d1;border-color:#f3d390}.note.note-danger{background-color:#f9f0f0;border-color:#dca7b0;color:#a94442,80%}.note.note-danger.note-bordered{background-color:#f3e2e2;border-color:#dfaeb7}.pagination{margin:10px 0}.pagination.pagination-circle>li:first-child>a{border-radius:25px 0 0 25px!important}.pagination.pagination-circle>li:last-child>a{border-radius:0 25px 25px 0!important}.dashboard-stat,.portlet{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px}.pagination .active>a,.pagination .active>a:hover{background:#eee;border-color:#ddd;color:#333}.panel{-moz-box-shadow:none!important;box-shadow:none!important}.panel-group .panel{overflow:visible}.panel .panel-title>a:hover{text-decoration:none}.accordion .panel .panel-heading,.accordion .panel .panel-title{padding:0}.accordion .panel .panel-title .accordion-toggle{display:block;padding:10px 15px}.accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled{background:url(../../assets/images/accordion-plusminus.png) right -19px no-repeat;margin-right:15px}.accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed{background-position:right 12px}.panel-default{border-color:#e0e0e0}.panel-default>.panel-heading{color:#333;background-color:#f9f9f9;border-color:#e0e0e0}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#e0e0e0}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#e0e0e0}.panel-primary{border-color:#3595bd}.panel-primary>.panel-heading{color:#D8E3F2;background-color:#428bca;border-color:#3595bd}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#3595bd}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#3595bd}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.accordion-heading{background:#eee}.accordion-heading a,.accordion-heading a:hover{text-decoration:none}.popover{box-shadow:5px 5px rgba(102,102,102,.1);padding:0}.portlet.calendar .fc-button,.progress{-webkit-box-shadow:none;-moz-box-shadow:none}.popover .popover-title{margin:0!important}.popover.name .popover-content,.popover.name .popover-title,name .popover .popover-content{color:#F3565D}.popovers.yellow+.popover,.popovers.yellow+.popover .popover-content,.popovers.yellow+.popover .popover-title{background:#ff0}.page-portlet-fullscreen{overflow:hidden}.portlet{margin-top:0;margin-bottom:25px;padding:0;border-radius:4px}.portlet.portlet-fullscreen{z-index:10060;margin:0;position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;background:#fff}.portlet.portlet-fullscreen>.portlet-body{overflow-y:auto;overflow-x:hidden;padding:0 10px}.portlet.portlet-fullscreen>.portlet-title{padding:0 10px}.portlet>.portlet-title{border-bottom:1px solid #eee;padding:0;margin-bottom:10px;min-height:41px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.portlet>.portlet-title:after,.portlet>.portlet-title:before{content:" ";display:table}.portlet>.portlet-title>.caption{float:left;display:inline-block;font-size:18px;line-height:18px;font-weight:300;padding:10px 0}.portlet>.portlet-title>.caption.bold{font-weight:400}.portlet>.portlet-title>.caption>i{float:left;margin-top:4px;display:inline-block;font-size:13px;margin-right:5px;color:#666}.portlet>.portlet-title>.caption>i.glyphicon{margin-top:2px}.portlet>.portlet-title>.caption>.caption-helper{padding:0;margin:0;line-height:13px;color:#9eacb4;font-size:13px;font-weight:400}.portlet>.portlet-title>.actions{float:right;display:inline-block;padding:6px 0}.portlet>.portlet-title>.actions>.dropdown-menu i{color:#555}.portlet>.portlet-title>.actions>.btn,.portlet>.portlet-title>.actions>.btn-group>.btn,.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm,.portlet>.portlet-title>.actions>.btn.btn-sm{padding:4px 10px;font-size:13px;line-height:1.5}.portlet>.portlet-title>.actions>.btn-group>.btn.btn-default,.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm.btn-default,.portlet>.portlet-title>.actions>.btn.btn-default,.portlet>.portlet-title>.actions>.btn.btn-sm.btn-default{padding:3px 9px}.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm>i,.portlet>.portlet-title>.actions>.btn-group>.btn>i,.portlet>.portlet-title>.actions>.btn.btn-sm>i,.portlet>.portlet-title>.actions>.btn>i{font-size:13px}.portlet>.portlet-title>.actions .btn-icon-only{padding:5px 7px 3px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default{padding:4px 6px 2px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default>i{font-size:14px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen{font-family:FontAwesome;color:#a0a0a0;padding-top:3px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen.btn-sm{padding:3px!important;height:27px;width:27px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen:before{content:"\f065"}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen.on:before{content:"\f066"}.portlet>.portlet-title>.tools{float:right;display:inline-block;padding:12px 0 8px}.portlet>.portlet-title>.tools>a{display:inline-block;height:16px;margin-left:5px;opacity:1;filter:alpha(opacity=100)}.portlet>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon.png);background-repeat:no-repeat;width:11px}.portlet>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon.png);background-repeat:no-repeat;width:12px}.portlet>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon.png);width:13px}.portlet>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon.png);width:14px;visibility:visible}.portlet>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon.png);width:14px;visibility:visible}.portlet>.portlet-title>.tools>a.fullscreen{display:inline-block;top:-3px;position:relative;font-size:13px;font-family:FontAwesome;color:#ACACAC}.portlet>.portlet-title>.tools>a.fullscreen:before{content:"\f065"}.portlet>.portlet-title>.tools>a.fullscreen.on:before{content:"\f066"}.portlet>.portlet-title>.tools>a:hover{text-decoration:none;-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out;opacity:.8;filter:alpha(opacity=80)}.portlet>.portlet-title>.pagination{float:right;display:inline-block;margin:2px 0 0;border:0;padding:4px 0}.portlet>.portlet-title>.nav-tabs{background:0 0;margin:0;float:right;display:inline-block;border:0}.portlet>.portlet-title>.nav-tabs>li{background:0 0;margin:0;border:0}.portlet>.portlet-title>.nav-tabs>li>a{background:0 0;margin:5px 0 0 1px;border:0;padding:8px 10px;color:#fff}.portlet>.portlet-title>.nav-tabs>li.active>a,.portlet>.portlet-title>.nav-tabs>li:hover>a{color:#333;background:#fff;border:0}.portlet>.portlet-body{clear:both;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.portlet>.portlet-empty{min-height:125px}.portlet.full-height-content{margin-bottom:0}.portlet.bordered{border-left:2px solid #e6e9ec!important}.portlet.bordered>.portlet-title{border-bottom:0}.portlet.solid{padding:0 10px 10px;border:0}.portlet.solid>.portlet-title{border-bottom:0;margin-bottom:10px}.portlet.solid>.portlet-title>.caption{padding:16px 0 2px}.portlet.solid>.portlet-title>.actions{padding:12px 0 6px}.portlet.solid>.portlet-title>.tools{padding:14px 0 6px}.portlet.solid.bordered>.portlet-title{margin-bottom:10px}.portlet.box{padding:0!important}.portlet.box>.portlet-title{border-bottom:0;padding:0 10px;margin-bottom:0;color:#fff}.portlet.box>.portlet-title>.caption{padding:11px 0 9px}.portlet.box>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.box>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.box>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.box>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.box>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.box>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box>.portlet-title>.actions{padding:7px 0 5px}.portlet.box>.portlet-body{background-color:#fff;padding:10px}.portlet.box.portlet-fullscreen>.portlet-body{padding:10px}.portlet.light{padding:12px 20px 15px;background-color:#fff}.portlet.light.bordered{border:1px solid #e1e1e1!important}.portlet.light.bordered>.portlet-title{border-bottom:1px solid #eee}.portlet.light.bg-inverse{background:#F7F7F7}.portlet.light>.portlet-title{padding:0;min-height:48px}.portlet.light>.portlet-title>.caption{color:#666;padding:10px 0}.portlet.light>.portlet-title>.caption>.caption-subject{font-size:16px}.portlet.light>.portlet-title>.caption>i{color:#777;font-size:15px;font-weight:300;margin-top:3px}.portlet.light>.portlet-title>.caption.caption-md>.caption-subject{font-size:15px}.portlet.light>.portlet-title>.caption.caption-md>i{font-size:14px}.portlet.light>.portlet-title>.actions{padding:6px 0 14px}.portlet.light>.portlet-title>.actions .btn-default{color:#666}.portlet.light>.portlet-title>.actions .btn-icon-only{height:27px;width:27px}.portlet.light>.portlet-title>.actions .dropdown-menu li>a{color:#555}.portlet.light>.portlet-title>.inputs{float:right;display:inline-block;padding:4px 0}.portlet.light>.portlet-title>.inputs>.portlet-input .input-icon>i{font-size:14px;margin-top:9px}.portlet.light>.portlet-title>.inputs>.portlet-input .input-icon>.form-control{height:30px;padding:2px 26px 3px 10px;font-size:13px}.portlet.light>.portlet-title>.inputs>.portlet-input>.form-control{height:30px;padding:3px 10px;font-size:13px}.portlet.light>.portlet-title>.pagination{padding:2px 0 13px}.portlet.light>.portlet-title>.tools{padding:10px 0 13px;margin-top:2px}.portlet.light>.portlet-title>.nav-tabs>li{margin:0;padding:0}.portlet.light>.portlet-title>.nav-tabs>li>a{margin:0;padding:12px 13px 13px;font-size:13px;color:#666}.portlet.light>.portlet-title>.nav-tabs>li.active>a,.portlet.light>.portlet-title>.nav-tabs>li:hover>a{margin:0;background:0 0;color:#333}.blue.btn.active,.blue.btn:active,.btn.default.active,.btn.default:active,.open .blue.btn.dropdown-toggle,.open .btn.default.dropdown-toggle,.progress,.progress-striped .progress>.progress-bar-default,.progress-striped .progress>.progress-bar-info,.progress-striped .progress>.progress-bar-success,.progress-striped .progress>.progress-bar-warning{background-image:none}.portlet.light.form-fit{padding:0}.portlet.light.form-fit>.portlet-title{padding:17px 20px 10px;margin-bottom:0}.portlet.light .portlet-body{padding-top:8px}.portlet.light.portlet-fullscreen>.portlet-body{padding:8px 0}.tab-pane>p:last-child{margin-bottom:0}.tabs-reversed>li{float:right;margin-right:0}.tabs-reversed>li>a{margin-right:0}.portlet-sortable:not(.portlet-fullscreen)>.portlet-title{cursor:move}.portlet-sortable-placeholder{border:2px dashed #eee;margin-bottom:25px}.portlet-sortable-empty{height:45px}.progress{border:0;filter:none;box-shadow:none}.progress.progress-sm{height:12px}.progress>.progress-bar-default{background-color:#c6c6c6}.progress>.progress-bar-success{background-color:#45B6AF}.progress>.progress-bar-info{background-color:#89C4F4}.progress>.progress-bar-danger{background-color:#F3565D}.progress-striped .progress>.progress-bar-danger{background-image:none}.progress>.progress-bar-warning{background-color:#dfba49}.dashboard-stat{display:block;margin-bottom:25px;overflow:hidden;border-radius:4px}.dashboard-stat:after,.dashboard-stat:before{content:" ";display:table}.portlet .dashboard-stat:last-child{margin-bottom:0}.dashboard-stat .visual{width:80px;height:80px;display:block;float:left;padding-top:10px;padding-left:15px;margin-bottom:15px;font-size:35px;line-height:35px}.dashboard-stat .visual>i{margin-left:-35px;font-size:110px;line-height:110px}.dashboard-stat .details{position:absolute;right:15px;padding-right:15px}.dashboard-stat .details .number{padding-top:25px;text-align:right;font-size:34px;line-height:36px;letter-spacing:-1px;margin-bottom:0;font-weight:300}.dashboard-stat .details .desc{text-align:right;font-size:16px;letter-spacing:0;font-weight:300}.dashboard-stat .more{display:block;padding:6px 10px;position:relative;text-transform:uppercase;font-weight:300;font-size:11px;opacity:.7;filter:alpha(opacity=70)}.dashboard-stat .more:hover{text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.dashboard-stat .more>i{display:inline-block;margin-top:1px;float:right}.dashboard-stat-light{padding-bottom:20px;margin-bottom:20px}.dashboard-stat-light .details{margin-bottom:5px}.dashboard-stat-light .details .number{font-weight:300;margin-bottom:0}.dashboard-stat2,.dashboard-stat2 .display{margin-bottom:20px}.dashboard-stat2{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;background:#fff;padding:15px 15px 30px}.dashboard-stat2 .display:after,.dashboard-stat2 .display:before{content:" ";display:table}.dashboard-stat2 .display .number{float:left;display:inline-block}.dashboard-stat2 .display .number h3{margin:0 0 2px;padding:0;font-size:30px;font-weight:400}.dashboard-stat2 .display .number h3>small{font-size:23px}.dashboard-stat2 .display .number small{font-size:14px;color:#AAB5BC;font-weight:600;text-transform:uppercase}.dashboard-stat2 .display .icon{display:inline-block;float:right;padding:7px 0 0}.dashboard-stat2 .display .icon>i{color:#cbd4e0;font-size:26px}.dashboard-stat2 .progress-info .progress{margin:0;height:4px;display:block}.dashboard-stat2 .progress-info .status{margin-top:5px;font-size:11px;color:#AAB5BC;font-weight:600;text-transform:uppercase}.dashboard-stat2 .progress-info .status .status-title{float:left;display:inline-block}.dashboard-stat2 .progress-info .status .status-number{float:right;display:inline-block}.text-stat h3{margin-top:5px;margin-bottom:0;font-size:18px}.text-stat span{font-size:13px!important}@media (max-width:767px){.text-stat{margin-top:20px}}.social-icons{padding:0;margin:0}.social-icons:after,.social-icons:before{content:" ";display:table}.social-icons li{float:left;display:inline;list-style:none;margin-right:5px;margin-bottom:5px;text-indent:-9999px}.social-icons li>a{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;width:28px;height:28px;display:block;background-position:0 0;background-repeat:no-repeat;transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;-ms-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-webkit-transition:all .3s ease-in-out}.social-icons li:hover>a{background-position:0 -38px}.social-icons li .amazon{background:url(../../assets/images/social/amazon.png) no-repeat}.social-icons li .behance{background:url(../../assets/images/social/behance.png) no-repeat}.social-icons li .blogger{background:url(../../assets/images/social/blogger.png) no-repeat}.social-icons li .deviantart{background:url(../../assets/images/social/deviantart.png) no-repeat}.social-icons li .dribbble{background:url(../../assets/images/social/dribbble.png) no-repeat}.social-icons li .dropbox{background:url(../../assets/images/social/dropbox.png) no-repeat}.social-icons li .evernote{background:url(../../assets/images/social/evernote.png) no-repeat}.social-icons li .facebook{background:url(../../assets/images/social/facebook.png) no-repeat}.social-icons li .forrst{background:url(../../assets/images/social/forrst.png) no-repeat}.social-icons li .github{background:url(../../assets/images/social/github.png) no-repeat}.social-icons li .googleplus{background:url(../../assets/images/social/googleplus.png) no-repeat}.social-icons li .jolicloud{background:url(../../assets/images/social/jolicloud.png) no-repeat}.social-icons li .last-fm{background:url(../../assets/images/social/last-fm.png) no-repeat}.social-icons li .linkedin{background:url(../../assets/images/social/linkedin.png) no-repeat}.social-icons li .picasa{background:url(../../assets/images/social/picasa.png) no-repeat}.social-icons li .pintrest{background:url(../../assets/images/social/pintrest.png) no-repeat}.social-icons li .rss{background:url(../../assets/images/social/rss.png) no-repeat}.social-icons li .skype{background:url(../../assets/images/social/skype.png) no-repeat}.social-icons li .spotify{background:url(../../assets/images/social/spotify.png) no-repeat}.social-icons li .stumbleupon{background:url(../../assets/images/social/stumbleupon.png) no-repeat}.social-icons li .tumblr{background:url(../../assets/images/social/tumblr.png) no-repeat}.social-icons li .twitter{background:url(../../assets/images/social/twitter.png) no-repeat}.social-icons li .vimeo{background:url(../../assets/images/social/vimeo.png) no-repeat}.social-icons li .wordpress{background:url(../../assets/images/social/wordpress.png) no-repeat}.social-icons li .xing{background:url(../../assets/images/social/xing.png) no-repeat}.social-icons li .yahoo{background:url(../../assets/images/social/yahoo.png) no-repeat}.social-icons li .youtube{background:url(../../assets/images/social/youtube.png) no-repeat}.social-icons li .vk{background:url(../../assets/images/social/vk.png) no-repeat}.social-icons li .instagram{background:url(../../assets/images/social/instagram.png) no-repeat}.social-icons li .reddit{background:url(../../assets/images/social/reddit.png) no-repeat}.social-icons li .aboutme{background:url(../../assets/images/social/aboutme.png) no-repeat}.social-icons li .flickr{background:url(../../assets/images/social/flickr.png) no-repeat}.social-icons li .foursquare{background:url(../../assets/images/social/foursquare.png) no-repeat}.social-icons li .gravatar{background:url(../../assets/images/social/gravatar.png) no-repeat}.social-icons li .klout{background:url(../../assets/images/social/klout.png) no-repeat}.social-icons li .myspace{background:url(../../assets/images/social/myspace.png) no-repeat}.social-icons li .quora{background:url(../../assets/images/social/quora.png) no-repeat}.social-icons.social-icons-color>li>a{opacity:.7;background-position:0 -38px!important}.social-icons.social-icons-color>li>a:hover{opacity:1}.social-icons.social-icons-circle>li>a{border-radius:25px!important}.social-icon{display:inline-block!important;width:28px;height:28px;background-position:0 0;background-repeat:no-repeat;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;-ms-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-webkit-transition:all .3s ease-in-out}.social-icon.social-icon-circle{border-radius:25px!important}.social-icon.amazon{background:url(../../assets/images/social/amazon.png) no-repeat}.social-icon.behance{background:url(../../assets/images/social/behance.png) no-repeat}.social-icon.blogger{background:url(../../assets/images/social/blogger.png) no-repeat}.social-icon.deviantart{background:url(../../assets/images/social/deviantart.png) no-repeat}.social-icon.dribbble{background:url(../../assets/images/social/dribbble.png) no-repeat}.social-icon.dropbox{background:url(../../assets/images/social/dropbox.png) no-repeat}.social-icon.evernote{background:url(../../assets/images/social/evernote.png) no-repeat}.social-icon.facebook{background:url(../../assets/images/social/facebook.png) no-repeat}.social-icon.forrst{background:url(../../assets/images/social/forrst.png) no-repeat}.social-icon.github{background:url(../../assets/images/social/github.png) no-repeat}.social-icon.googleplus{background:url(../../assets/images/social/googleplus.png) no-repeat}.social-icon.jolicloud{background:url(../../assets/images/social/jolicloud.png) no-repeat}.social-icon.last-fm{background:url(../../assets/images/social/last-fm.png) no-repeat}.social-icon.linkedin{background:url(../../assets/images/social/linkedin.png) no-repeat}.social-icon.picasa{background:url(../../assets/images/social/picasa.png) no-repeat}.social-icon.pintrest{background:url(../../assets/images/social/pintrest.png) no-repeat}.social-icon.rss{background:url(../../assets/images/social/rss.png) no-repeat}.social-icon.skype{background:url(../../assets/images/social/skype.png) no-repeat}.social-icon.spotify{background:url(../../assets/images/social/spotify.png) no-repeat}.social-icon.stumbleupon{background:url(../../assets/images/social/stumbleupon.png) no-repeat}.social-icon.tumblr{background:url(../../assets/images/social/tumblr.png) no-repeat}.social-icon.twitter{background:url(../../assets/images/social/twitter.png) no-repeat}.social-icon.vimeo{background:url(../../assets/images/social/vimeo.png) no-repeat}.social-icon.wordpress{background:url(../../assets/images/social/wordpress.png) no-repeat}.social-icon.xing{background:url(../../assets/images/social/xing.png) no-repeat}.social-icon.yahoo{background:url(../../assets/images/social/yahoo.png) no-repeat}.social-icon.youtube{background:url(../../assets/images/social/youtube.png) no-repeat}.social-icon.vk{background:url(../../assets/images/social/vk.png) no-repeat}.social-icon.instagram{background:url(../../assets/images/social/instagram.png) no-repeat}.social-icon.reddit{background:url(../../assets/images/social/reddit.png) no-repeat}.social-icon.aboutme{background:url(../../assets/images/social/aboutme.png) no-repeat}.social-icon.flickr{background:url(../../assets/images/social/flickr.png) no-repeat}.social-icon.foursquare{background:url(../../assets/images/social/foursquare.png) no-repeat}.social-icon.gravatar{background:url(../../assets/images/social/gravatar.png) no-repeat}.social-icon.klout{background:url(../../assets/images/social/klout.png) no-repeat}.social-icon.myspace{background:url(../../assets/images/social/myspace.png) no-repeat}.social-icon.quora{background:url(../../assets/images/social/quora.png) no-repeat}.social-icon:hover{background-position:0 -38px}.social-icon-color{opacity:.7;background-position:0 -38px!important}.social-icon-color:hover{opacity:1}.table.table-bordered thead>tr>th{border-bottom:0}.table tr.heading>th{background-color:#eee!important}.table td .img-responsive{width:100%}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background:#a6c8e6;color:#132339}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background:#92bce0}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background:#dff0d8;color:#3c763d}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background:#d9edf7;color:#31708f}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background:#fcf8e3;color:#8a6d3b}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background:#f2dede;color:#a94442}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background:#ebcccc}.table-scrollable{width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid #ddd;margin:10px 0!important}.table-scrollable.table-scrollable-borderless,.table-scrollable>.table-bordered{border:0}.table-scrollable>.table{width:100%!important;margin:0!important;background-color:#fff}.table-scrollable>.table-bordered>tbody>tr>td:first-child,.table-scrollable>.table-bordered>tbody>tr>th:first-child,.table-scrollable>.table-bordered>tfoot>tr>td:first-child,.table-scrollable>.table-bordered>tfoot>tr>th:first-child,.table-scrollable>.table-bordered>thead>tr>td:first-child,.table-scrollable>.table-bordered>thead>tr>th:first-child{border-left:0}.table-scrollable>.table-bordered>tbody>tr>td:last-child,.table-scrollable>.table-bordered>tbody>tr>th:last-child,.table-scrollable>.table-bordered>tfoot>tr>td:last-child,.table-scrollable>.table-bordered>tfoot>tr>th:last-child,.table-scrollable>.table-bordered>thead>tr>td:last-child,.table-scrollable>.table-bordered>thead>tr>th:last-child{border-right:0}.table-scrollable>.table-bordered>tbody>tr:last-child>td,.table-scrollable>.table-bordered>tbody>tr:last-child>th,.table-scrollable>.table-bordered>tfoot>tr:last-child>td,.table-scrollable>.table-bordered>tfoot>tr:last-child>th,.table-scrollable>.table-bordered>thead>tr:last-child>td,.table-scrollable>.table-bordered>thead>tr:last-child>th{border-bottom:0}.flip-scroll table{width:100%}@media only screen and (max-width:768px){.flip-scroll .flip-content:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.flip-scroll * html .flip-content{zoom:1}.flip-scroll td,.flip-scroll th{margin:0;vertical-align:top}.flip-scroll th{border:0!important;border-bottom:1px solid #ddd!important;border-right:1px solid #ddd!important;font-size:13px!important;padding:5px;width:auto!important;display:block;text-align:right}.flip-scroll table{border-collapse:collapse;border-spacing:0;display:block;position:relative;width:100%}.flip-scroll thead{display:block;float:left}.flip-scroll tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}.flip-scroll thead tr{display:block}.flip-scroll tbody tr{display:inline-block;vertical-align:top;margin-left:-5px}.flip-scroll td{display:block;min-height:1.25em;text-align:left;border-top:0!important;border-left:0!important;border-right:0!important;border-bottom:0}.flip-scroll th{border-left:0}.flip-scroll tbody tr{border-left:1px solid #ddd}.flip-scroll td:last-child,.flip-scroll th:last-child{border-bottom:1px solid #ddd}}.centered-td,.page-404,.tiles .tile .tile-body>i{text-align:center}.table-toolbar{margin-bottom:15px}.table-toolbar:after,.table-toolbar:before{content:" ";display:table}.table.table-full-width{width:100%!important}.table .btn{margin-top:0;margin-left:0;margin-right:5px}.table thead tr th{font-size:14px;font-weight:600}.table-advance{margin-bottom:10px!important}.table-advance thead{color:#999}.table-advance thead tr th{background-color:#DDD;font-size:14px;font-weight:400;color:#666}.table-advance div.danger,.table-advance div.important,.table-advance div.info,.table-advance div.success,.table-advance div.warning{position:absolute;margin-top:-5px;float:left;width:2px;height:30px;margin-right:20px!important}.table-advance tr td{border-left-width:0}.table-advance tr td:first-child{border-left-width:1px!important}.table-advance tr td.highlight:first-child a{margin-left:15px}.table-advance td.highlight div.primary{border-left:2px solid #428bca}.table-advance td.highlight div.success{border-left:2px solid #45B6AF}.table-advance td.highlight div.info{border-left:2px solid #89C4F4}.table-advance td.highlight div.warning{border-left:2px solid #dfba49}.table-advance td.highlight div.danger{border-left:2px solid #F3565D}@media (max-width:767px){.table-advance tr>td.highlight:first-child a{margin-left:8px}}.table.table-light{border:0!important}.table.table-light>thead>tr:hover>th{background:0 0}.table.table-light>thead>tr.uppercase{text-transform:uppercase}.table.table-light>thead>tr>th{font-weight:600;font-size:13px;color:#a7b3b9;border:0;border-bottom:1px solid #F2F5F8}.table.table-light>tbody>tr:last-child>td{border:0}.table.table-light>tbody>tr>td{border:0;border-bottom:1px solid #F2F5F8;color:#9ca8b0;vertical-align:middle}.table.table-light>tbody>tr>td.fit{width:1px;padding-right:3px}.table.table-light>tbody>tr>td .user-pic{display:inline-block;vertical-align:middle;height:30px;-webkit-border-radius:100%;-moz-border-radius:100%;-ms-border-radius:100%;-o-border-radius:100%;border-radius:100%}.table.table-light.table-hover>tbody>tr:hover>td,.table.table-light.table-hover>tbody>tr:hover>th,.table.table-light.table-hover>tbody>tr>td:hover,.table.table-light.table-hover>tbody>tr>th:hover{background:#f9fafb}.nav-pills,.nav-tabs{margin-bottom:10px}.nav-pills>li>a,.nav-tabs>li>a{font-size:14px}.nav-pills>li>a>.badge,.nav-tabs>li>a>.badge{margin-top:-3px}.nav-pills>li .dropdown-menu:after,.nav-pills>li .dropdown-menu:before,.nav-tabs>li .dropdown-menu:after,.nav-tabs>li .dropdown-menu:before{display:none}.nav-pills.nav-pills-sm>li>a,.nav-pills.nav-tabs-sm>li>a,.nav-tabs.nav-pills-sm>li>a,.nav-tabs.nav-tabs-sm>li>a{font-size:13px}.nav-pills .dropdown.open>.dropdown-toggle,.nav-tabs .dropdown.open>.dropdown-toggle{background:#eee;color:#0d638f;border-color:transparent}.tabs-left.nav-tabs,.tabs-right.nav-tabs{border-bottom:0}.tabs-left.nav-tabs>li,.tabs-right.nav-tabs>li{float:none}.tabs-left.nav-tabs>li>a,.tabs-right.nav-tabs>li>a{margin-right:0;margin-bottom:3px}.tabs-left.nav-tabs{border-right:1px solid #ddd}.tabs-left.nav-tabs>li>a{display:block;margin-right:-1px}.tabs-left.nav-tabs>li>a:focus,.tabs-left.nav-tabs>li>a:hover{border-radius:4px 0 0 4px;border-color:#eee #ddd #eee #eee}.tabs-left.nav-tabs>li.active>a,.tabs-left.nav-tabs>li.active>a:hover>li.active>a:focus{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-ms-border-radius:4px 0 0 4px;-o-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;border-color:#ddd transparent #ddd #ddd}.tabs-right.nav-tabs{border-left:1px solid #ddd}.tabs-right.nav-tabs>li>a{display:block;margin-left:-1px}.tabbable:after,.tabbable:before,.tiles:after,.tiles:before{display:table;content:" "}.tabs-right.nav-tabs>li>a:focus,.tabs-right.nav-tabs>li>a:hover{border-radius:0 4px 4px 0;border-color:#eee #eee #eee #ddd}.tabs-right.nav-tabs>li.active>a,.tabs-right.nav-tabs>li.active>a:hover>li.active>a:focus{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;border-color:#ddd #ddd #ddd transparent}.tabs-below>.nav-pills,.tabs-below>.nav-tabs{border-bottom:0;margin-bottom:0;margin-top:10px}.tabs-below>.nav-tabs{border-top:1px solid #ddd;margin-bottom:0;margin-top:10px}.tabs-below>.nav-tabs>li>a{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a:focus,.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>li>a .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.tabs-below>.nav-tabs .active a,.tabs-below>.nav-tabs .active a:hover .active a:focus{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;border-color:transparent #ddd #ddd}.tabbable-custom{margin-bottom:15px;padding:0;overflow:hidden}.tabbable-custom>.nav-tabs{border:none;margin:0}.tabbable-custom>.nav-tabs>li.active>a,.tabbable-custom>.nav-tabs>li>a{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0}.tabbable-custom>.nav-tabs>li{margin-right:2px;border-top:2px solid transparent}.tabbable-custom>.nav-tabs>li>a{margin-right:0;border-radius:0}.tabbable-custom>.nav-tabs>li>a:hover{background:0 0;border-color:transparent}.tabbable-custom>.nav-tabs>li.active{border-top:3px solid #F3565D;margin-top:0;position:relative}.tabbable-custom>.nav-tabs>li.active>a{border-top:none;font-weight:400;border-radius:0}.tabbable-custom>.nav-tabs>li.active>a:hover{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;border-top:none;background:#fff;border-color:#d4d4d4 #d4d4d4 transparent}.tabbable-custom>.tab-content{background-color:#fff;border:1px solid #ddd;padding:10px;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabbable-custom.nav-justified>.tab-content{margin-top:-1px}.tabbable-custom.boxless>.tab-content{padding:15px 0;border-left:none;border-right:none;border-bottom:none}.tabbable-custom.tabs-below.nav-justified .tab-content{margin-top:0;margin-bottom:-2px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.tabbable-custom.tabbable-full-width>.nav-tabs>li>a{color:#424242;font-size:15px;padding:9px 15px}.tabbable-custom.tabbable-full-width>.tab-content{padding:15px 0;border-left:none;border-right:none;border-bottom:none}.tabbable-custom.tabs-below .nav-tabs>li>a{border-top:none;border-bottom:2px solid transparent;margin-top:-1px}.tabbable-custom.tabs-below .nav-tabs>li.active{border-top:none;border-bottom:3px solid #d12610;margin-bottom:0;position:relative}.tabbable-custom.tabs-below .nav-tabs>li.active>a{border-bottom:none}.tabbable-custom.tabs-below .nav-tabs>li.active>a:hover{background:#fff;border-color:#d4d4d4 #d4d4d4 transparent}.tabbable-custom.tabbable-noborder .tab-content,.tabbable-custom.tabbable-noborder>.nav-tabs>li>a{border:0}.tabbable-line>.nav-tabs{border:none;margin:0}.tabbable-line>.nav-tabs>li{margin-right:2px}.tabbable-line>.nav-tabs>li>a{border:0;margin-right:0;color:#737373}.tabbable-line>.nav-tabs>li>a>i{color:#a6a6a6}.tabbable-line>.nav-tabs>li.open,.tabbable-line>.nav-tabs>li:hover{border-bottom:4px solid #fbcdcf}.tabbable-line>.nav-tabs>li.open>a,.tabbable-line>.nav-tabs>li:hover>a{border:0;background:0 0!important;color:#333}.tabbable-line>.nav-tabs>li.open>a>i,.tabbable-line>.nav-tabs>li:hover>a>i{color:#a6a6a6}.tabbable-line>.nav-tabs>li.open .dropdown-menu,.tabbable-line>.nav-tabs>li:hover .dropdown-menu{margin-top:0}.tabbable-line>.nav-tabs>li.active{border-bottom:4px solid #F3565D;position:relative}.tabbable-line>.nav-tabs>li.active>a{border:0;color:#333}.tabbable-line>.nav-tabs>li.active>a>i{color:#404040}.tabbable-line>.tab-content{margin-top:-3px;background-color:#fff;border:0;border-top:1px solid #eee;padding:15px 0}.portlet .tabbable-line>.tab-content{padding-bottom:0}.tabbable-line.tabs-below>.nav-tabs>li{border-top:4px solid transparent}.tabbable-line.tabs-below>.nav-tabs>li>a{margin-top:0}.tabbable-line.tabs-below>.nav-tabs>li:hover{border-bottom:0;border-top:4px solid #fbcdcf}.tabbable-line.tabs-below>.nav-tabs>li.active{margin-bottom:-2px;border-bottom:0;border-top:4px solid #F3565D}.tabbable-line.tabs-below>.tab-content{margin-top:-10px;border-top:0;border-bottom:1px solid #eee;padding-bottom:15px}.tiles{margin-right:-10px}.tiles .tile{display:block;float:left;height:135px;width:135px!important;cursor:pointer;text-decoration:none;color:#fff;position:relative;font-weight:300;font-size:12px;letter-spacing:.02em;line-height:20px;overflow:hidden;border:4px solid transparent;margin:0 10px 10px 0}.tiles .tile .tile-body>.content,.tiles .tile.image .tile-body h3,.tiles .tile.selected .check:after{display:inline-block}.tiles .tile:after,.tiles .tile:before{content:"";float:left}.tiles .tile.double{width:280px!important}.tiles .tile.double-down{height:280px!important}.tiles .tile.double-down i{margin-top:95px}.tiles .tile:hover{border-color:#aaa!important}.tiles .tile.selected,.tiles .tile:active{border-color:#ccc!important}.tiles .tile.selected .corner:after{content:"";display:inline-block;border-left:40px solid transparent;border-bottom:40px solid transparent;border-right:40px solid #ccc;position:absolute;top:-3px;right:-3px}.tiles .tile.selected .check:after{font-family:FontAwesome;font-size:13px;content:"\f00c";position:absolute;top:2px;right:2px}.tiles .tile.icon{padding:0}.tiles .tile.image .tile-body{padding:0!important}.tiles .tile.image .tile-body>img{width:100%;height:auto;min-height:100%;max-width:100%}.tiles .tile .tile-body{height:100%;vertical-align:top;padding:10px;overflow:hidden;position:relative;font-weight:400;font-size:12px;color:#fff;margin-bottom:10px}.tiles .tile .tile-body p{font-weight:400;font-size:13px;color:#fff;overflow:hidden}.tiles .tile .tile-body p:active{color:rgba(0,0,0,.4)}.tiles .tile .tile-body p:hover{color:#fff}.tiles .tile .tile-body img{float:left;margin-right:10px}.tiles .tile .tile-body img.pull-right{float:right!important;margin-left:10px;margin-right:0}.close,.float-right{float:right}.tiles .tile .tile-body>i{margin-top:17px;display:block;font-size:56px;line-height:56px}.tiles .tile .tile-body h1,.tiles .tile .tile-body h2,.tiles .tile .tile-body h3,.tiles .tile .tile-body h4,.tiles .tile .tile-body h5,.tiles .tile .tile-body h6,.tiles .tile .tile-body p{padding:0;margin:0;line-height:14px}.tiles .tile .tile-body h1:hover,.tiles .tile .tile-body h2:hover,.tiles .tile .tile-body h3:hover,.tiles .tile .tile-body h4:hover,.tiles .tile .tile-body h5:hover,.tiles .tile .tile-body h6:hover,.tiles .tile .tile-body p:hover{color:#fff}.tiles .tile .tile-body h3,.tiles .tile .tile-body h4{margin-bottom:5px}.tiles .tile .tile-object{position:absolute;bottom:0;left:0;right:0;min-height:30px;background-color:transparent}.tiles .tile .tile-object:after,.tiles .tile .tile-object:before{display:table;content:""}.tiles .tile .tile-object>.name{position:absolute;bottom:0;left:0;margin-bottom:5px;margin-left:10px;margin-right:15px;font-weight:400;font-size:13px;color:#fff}.tiles .tile .tile-object>.name>i{vertical-align:middle;display:block;font-size:24px;height:18px;width:24px}.tiles .tile .tile-object>.number{position:absolute;bottom:0;right:0;color:#fff;text-align:center;font-weight:600;font-size:14px;letter-spacing:.01em;line-height:14px;margin-bottom:8px;margin-right:10px}.well{background-color:#eee;border:0;-moz-box-shadow:none!important;box-shadow:none!important}.blue.btn,.btn.default{border-color:""}@-webkit-keyframes fadeInUpm{0%{opacity:0;-webkit-transform:translateY(15px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-moz-keyframes fadeInUpm{0%{opacity:0;-moz-transform:translateY(15px)}100%{opacity:1;-moz-transform:translateY(0)}}@-o-keyframes fadeInUpm{0%{opacity:0;-o-transform:translateY(15px)}100%{opacity:1;-o-transform:translateY(0)}}@keyframes fadeInUpm{0%{opacity:0;transform:translateY(15px)}100%{opacity:1;transform:translateY(0)}}.fade-in-up{-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s}@-webkit-keyframes bounceDelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes bounceDelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.btn.default{color:#333;background-color:#E5E5E5}.btn.default.active,.btn.default:active,.btn.default:focus,.btn.default:hover,.open .btn.default.dropdown-toggle{color:#333;background-color:#d3d3d3}.btn.default.active,.btn.default:active{background-color:#c6c6c6}.btn.default.active:hover,.btn.default:active:hover{background-color:#ccc}.btn.default.disabled,.btn.default.disabled.active,.btn.default.disabled:active,.btn.default.disabled:focus,.btn.default.disabled:hover,.btn.default[disabled],.btn.default[disabled].active,.btn.default[disabled]:active,.btn.default[disabled]:focus,.btn.default[disabled]:hover,fieldset[disabled] .btn.default,fieldset[disabled] .btn.default.active,fieldset[disabled] .btn.default:active,fieldset[disabled] .btn.default:focus,fieldset[disabled] .btn.default:hover{background-color:#E5E5E5}.btn.default .badge{color:#E5E5E5;background-color:#333}.blue.btn{color:#FFF;background-color:#4B8DF8}.blue.btn.active,.blue.btn:active,.blue.btn:focus,.blue.btn:hover,.open .blue.btn.dropdown-toggle{color:#FFF;background-color:#2977f7}.blue.btn.active,.blue.btn:active{background-color:#1068f6}.blue.btn.active:hover,.blue.btn:active:hover{background-color:#1a6ef6}.blue.btn.disabled,.blue.btn.disabled.active,.blue.btn.disabled:active,.blue.btn.disabled:focus,.blue.btn.disabled:hover,.blue.btn[disabled],.blue.btn[disabled].active,.blue.btn[disabled]:active,.blue.btn[disabled]:focus,.blue.btn[disabled]:hover,fieldset[disabled] .blue.btn,fieldset[disabled] .blue.btn.active,fieldset[disabled] .blue.btn:active,fieldset[disabled] .blue.btn:focus,fieldset[disabled] .blue.btn:hover{background-color:#4B8DF8}.blue.btn .badge{color:#4B8DF8;background-color:#FFF}.portlet.blue,.portlet.box.blue>.portlet-title,.portlet>.portlet-body.blue{background-color:#4B8DF8}.btn.blue-stripe{border-left:3px solid #4B8DF8}.portlet.solid.blue>.portlet-body,.portlet.solid.blue>.portlet-title{border:0;color:#FFF}.portlet.solid.blue>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue{border:1px solid #7cacfa;border-top:0}.portlet.box.blue>.portlet-title>.caption,.portlet.box.blue>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b7d1fc;color:#d0e1fd}.portlet.box.blue>.portlet-title>.actions .btn-default>i{color:#deeafe}.portlet.box.blue>.portlet-title>.actions .btn-default.active,.portlet.box.blue>.portlet-title>.actions .btn-default:active,.portlet.box.blue>.portlet-title>.actions .btn-default:focus,.portlet.box.blue>.portlet-title>.actions .btn-default:hover{border:1px solid #e8f0fe;color:#fff}.dashboard-stat.blue{background-color:#4B8DF8}.dashboard-stat.blue.dashboard-stat-light:hover{background-color:#3781f7}.dashboard-stat.blue .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue .details .number{color:#FFF}.dashboard-stat.blue .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue .more{color:#FFF;background-color:#3781f7}.bg-blue{border-color:#4B8DF8!important;background-image:none!important;background-color:#4B8DF8!important;color:#FFF!important}.font-blue{color:#4B8DF8!important}.progress-bar.blue{background:#4B8DF8!important;color:#FFF!important}.blue-madison.btn{color:#FFF;background-color:#578ebe;border-color:""}.blue-madison.btn.active,.blue-madison.btn:active,.blue-madison.btn:focus,.blue-madison.btn:hover,.open .blue-madison.btn.dropdown-toggle{color:#FFF;background-color:#437cae}.blue-madison.btn.active,.blue-madison.btn:active{background-image:none;background-color:#3c6f9c}.blue-madison.btn.active:hover,.blue-madison.btn:active:hover{background-color:#3f74a3}.open .blue-madison.btn.dropdown-toggle{background-image:none}.blue-madison.btn.disabled,.blue-madison.btn.disabled.active,.blue-madison.btn.disabled:active,.blue-madison.btn.disabled:focus,.blue-madison.btn.disabled:hover,.blue-madison.btn[disabled],.blue-madison.btn[disabled].active,.blue-madison.btn[disabled]:active,.blue-madison.btn[disabled]:focus,.blue-madison.btn[disabled]:hover,fieldset[disabled] .blue-madison.btn,fieldset[disabled] .blue-madison.btn.active,fieldset[disabled] .blue-madison.btn:active,fieldset[disabled] .blue-madison.btn:focus,fieldset[disabled] .blue-madison.btn:hover{background-color:#578ebe}.blue-madison.btn .badge{color:#578ebe;background-color:#FFF}.portlet.blue-madison,.portlet.box.blue-madison>.portlet-title,.portlet>.portlet-body.blue-madison{background-color:#578ebe}.btn.blue-madison-stripe{border-left:3px solid #578ebe}.portlet.solid.blue-madison>.portlet-body,.portlet.solid.blue-madison>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-madison>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-madison>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-madison{border:1px solid #7ca7cc;border-top:0}.portlet.box.blue-madison>.portlet-title>.caption,.portlet.box.blue-madison>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-madison>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #a8c4dd;color:#bad1e4}.portlet.box.blue-madison>.portlet-title>.actions .btn-default>i{color:#c5d8e9}.portlet.box.blue-madison>.portlet-title>.actions .btn-default.active,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:active,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:hover{border:1px solid #cdddec;color:#dfeaf3}.dashboard-stat.blue-madison{background-color:#578ebe}.dashboard-stat.blue-madison.dashboard-stat-light:hover{background-color:#4884b8}.dashboard-stat.blue-madison .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-madison .details .number{color:#FFF}.dashboard-stat.blue-madison .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-madison .more{color:#FFF;background-color:#4884b8}.bg-blue-madison{border-color:#578ebe!important;background-image:none!important;background-color:#578ebe!important;color:#FFF!important}.font-blue-madison{color:#578ebe!important}.progress-bar.blue-madison{background:#578ebe!important;color:#FFF!important}.blue-chambray.btn{color:#FFF;background-color:#2C3E50;border-color:""}.blue-chambray.btn.active,.blue-chambray.btn:active,.blue-chambray.btn:focus,.blue-chambray.btn:hover,.open .blue-chambray.btn.dropdown-toggle{color:#FFF;background-color:#1f2c39}.blue-chambray.btn.active,.blue-chambray.btn:active{background-image:none;background-color:#161f29}.blue-chambray.btn.active:hover,.blue-chambray.btn:active:hover{background-color:#1a242f}.open .blue-chambray.btn.dropdown-toggle{background-image:none}.blue-chambray.btn.disabled,.blue-chambray.btn.disabled.active,.blue-chambray.btn.disabled:active,.blue-chambray.btn.disabled:focus,.blue-chambray.btn.disabled:hover,.blue-chambray.btn[disabled],.blue-chambray.btn[disabled].active,.blue-chambray.btn[disabled]:active,.blue-chambray.btn[disabled]:focus,.blue-chambray.btn[disabled]:hover,fieldset[disabled] .blue-chambray.btn,fieldset[disabled] .blue-chambray.btn.active,fieldset[disabled] .blue-chambray.btn:active,fieldset[disabled] .blue-chambray.btn:focus,fieldset[disabled] .blue-chambray.btn:hover{background-color:#2C3E50}.blue-chambray.btn .badge{color:#2C3E50;background-color:#FFF}.portlet.blue-chambray,.portlet.box.blue-chambray>.portlet-title,.portlet>.portlet-body.blue-chambray{background-color:#2C3E50}.btn.blue-chambray-stripe{border-left:3px solid #2C3E50}.portlet.solid.blue-chambray>.portlet-body,.portlet.solid.blue-chambray>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-chambray>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-chambray>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-chambray{border:1px solid #3e5771;border-top:0}.portlet.box.blue-chambray>.portlet-title>.caption,.portlet.box.blue-chambray>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #547698;color:#5f83a7}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default>i{color:#698aac}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default.active,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:active,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:hover{border:1px solid #6f90b0;color:#809cb9}.dashboard-stat.blue-chambray{background-color:#2C3E50}.dashboard-stat.blue-chambray.dashboard-stat-light:hover{background-color:#253443}.dashboard-stat.blue-chambray .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-chambray .details .number{color:#FFF}.dashboard-stat.blue-chambray .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-chambray .more{color:#FFF;background-color:#253443}.bg-blue-chambray{border-color:#2C3E50!important;background-image:none!important;background-color:#2C3E50!important;color:#FFF!important}.font-blue-chambray{color:#2C3E50!important}.progress-bar.blue-chambray{background:#2C3E50!important;color:#FFF!important}.blue-ebonyclay.btn{color:#FFF;background-color:#22313F;border-color:""}.blue-ebonyclay.btn.active,.blue-ebonyclay.btn:active,.blue-ebonyclay.btn:focus,.blue-ebonyclay.btn:hover,.open .blue-ebonyclay.btn.dropdown-toggle{color:#FFF;background-color:#151f28}.blue-ebonyclay.btn.active,.blue-ebonyclay.btn:active{background-image:none;background-color:#0d1217}.blue-ebonyclay.btn.active:hover,.blue-ebonyclay.btn:active:hover{background-color:#10171e}.open .blue-ebonyclay.btn.dropdown-toggle{background-image:none}.blue-ebonyclay.btn.disabled,.blue-ebonyclay.btn.disabled.active,.blue-ebonyclay.btn.disabled:active,.blue-ebonyclay.btn.disabled:focus,.blue-ebonyclay.btn.disabled:hover,.blue-ebonyclay.btn[disabled],.blue-ebonyclay.btn[disabled].active,.blue-ebonyclay.btn[disabled]:active,.blue-ebonyclay.btn[disabled]:focus,.blue-ebonyclay.btn[disabled]:hover,fieldset[disabled] .blue-ebonyclay.btn,fieldset[disabled] .blue-ebonyclay.btn.active,fieldset[disabled] .blue-ebonyclay.btn:active,fieldset[disabled] .blue-ebonyclay.btn:focus,fieldset[disabled] .blue-ebonyclay.btn:hover{background-color:#22313F}.blue-ebonyclay.btn .badge{color:#22313F;background-color:#FFF}.portlet.blue-ebonyclay,.portlet.box.blue-ebonyclay>.portlet-title,.portlet>.portlet-body.blue-ebonyclay{background-color:#22313F}.btn.blue-ebonyclay-stripe{border-left:3px solid #22313F}.portlet.solid.blue-ebonyclay>.portlet-body,.portlet.solid.blue-ebonyclay>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-ebonyclay>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-ebonyclay{border:1px solid #344b60;border-top:0}.portlet.box.blue-ebonyclay>.portlet-title>.caption,.portlet.box.blue-ebonyclay>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #496a88;color:#527798}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default>i{color:#587ea2}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default.active,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:active,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:hover{border:1px solid #5d83a7;color:#6d90b0}.dashboard-stat.blue-ebonyclay{background-color:#22313F}.dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover{background-color:#1b2732}.dashboard-stat.blue-ebonyclay .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-ebonyclay .details .number{color:#FFF}.dashboard-stat.blue-ebonyclay .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-ebonyclay .more{color:#FFF;background-color:#1b2732}.bg-blue-ebonyclay{border-color:#22313F!important;background-image:none!important;background-color:#22313F!important;color:#FFF!important}.font-blue-ebonyclay{color:#22313F!important}.progress-bar.blue-ebonyclay{background:#22313F!important;color:#FFF!important}.blue-hoki.btn{color:#FFF;background-color:#67809F;border-color:""}.blue-hoki.btn.active,.blue-hoki.btn:active,.blue-hoki.btn:focus,.blue-hoki.btn:hover,.open .blue-hoki.btn.dropdown-toggle{color:#FFF;background-color:#586e8b}.blue-hoki.btn.active,.blue-hoki.btn:active{background-image:none;background-color:#4e627b}.blue-hoki.btn.active:hover,.blue-hoki.btn:active:hover{background-color:#526781}.open .blue-hoki.btn.dropdown-toggle{background-image:none}.blue-hoki.btn.disabled,.blue-hoki.btn.disabled.active,.blue-hoki.btn.disabled:active,.blue-hoki.btn.disabled:focus,.blue-hoki.btn.disabled:hover,.blue-hoki.btn[disabled],.blue-hoki.btn[disabled].active,.blue-hoki.btn[disabled]:active,.blue-hoki.btn[disabled]:focus,.blue-hoki.btn[disabled]:hover,fieldset[disabled] .blue-hoki.btn,fieldset[disabled] .blue-hoki.btn.active,fieldset[disabled] .blue-hoki.btn:active,fieldset[disabled] .blue-hoki.btn:focus,fieldset[disabled] .blue-hoki.btn:hover{background-color:#67809F}.blue-hoki.btn .badge{color:#67809F;background-color:#FFF}.portlet.blue-hoki,.portlet.box.blue-hoki>.portlet-title,.portlet>.portlet-body.blue-hoki{background-color:#67809F}.btn.blue-hoki-stripe{border-left:3px solid #67809F}.portlet.solid.blue-hoki>.portlet-body,.portlet.solid.blue-hoki>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-hoki>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-hoki>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-hoki{border:1px solid #869ab3;border-top:0}.portlet.box.blue-hoki>.portlet-title>.caption,.portlet.box.blue-hoki>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #acb9ca;color:#bbc7d4}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default>i{color:#c5ceda}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default.active,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:active,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:hover{border:1px solid #cbd4de;color:#dbe1e8}.dashboard-stat.blue-hoki{background-color:#67809F}.dashboard-stat.blue-hoki.dashboard-stat-light:hover{background-color:#5e7694}.dashboard-stat.blue-hoki .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-hoki .details .number{color:#FFF}.dashboard-stat.blue-hoki .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-hoki .more{color:#FFF;background-color:#5e7694}.bg-blue-hoki{border-color:#67809F!important;background-image:none!important;background-color:#67809F!important;color:#FFF!important}.font-blue-hoki{color:#67809F!important}.progress-bar.blue-hoki{background:#67809F!important;color:#FFF!important}.blue-steel.btn{color:#FFF;background-color:#4B77BE;border-color:""}.blue-steel.btn.active,.blue-steel.btn:active,.blue-steel.btn:focus,.blue-steel.btn:hover,.open .blue-steel.btn.dropdown-toggle{color:#FFF;background-color:#3d66a8}.blue-steel.btn.active,.blue-steel.btn:active{background-image:none;background-color:#365b96}.blue-steel.btn.active:hover,.blue-steel.btn:active:hover{background-color:#395f9d}.open .blue-steel.btn.dropdown-toggle{background-image:none}.blue-steel.btn.disabled,.blue-steel.btn.disabled.active,.blue-steel.btn.disabled:active,.blue-steel.btn.disabled:focus,.blue-steel.btn.disabled:hover,.blue-steel.btn[disabled],.blue-steel.btn[disabled].active,.blue-steel.btn[disabled]:active,.blue-steel.btn[disabled]:focus,.blue-steel.btn[disabled]:hover,fieldset[disabled] .blue-steel.btn,fieldset[disabled] .blue-steel.btn.active,fieldset[disabled] .blue-steel.btn:active,fieldset[disabled] .blue-steel.btn:focus,fieldset[disabled] .blue-steel.btn:hover{background-color:#4B77BE}.blue-steel.btn .badge{color:#4B77BE;background-color:#FFF}.portlet.blue-steel,.portlet.box.blue-steel>.portlet-title,.portlet>.portlet-body.blue-steel{background-color:#4B77BE}.btn.blue-steel-stripe{border-left:3px solid #4B77BE}.portlet.solid.blue-steel>.portlet-body,.portlet.solid.blue-steel>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-steel>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-steel>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.collapse{background-image:url(../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-steel{border:1px solid #7093cc;border-top:0}.portlet.box.blue-steel>.portlet-title>.caption,.portlet.box.blue-steel>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-steel>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9db5dc;color:#b0c3e3}.portlet.box.blue-steel>.portlet-title>.actions .btn-default>i{color:#bbcce7}.portlet.box.blue-steel>.portlet-title>.actions .btn-default.active,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:active,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:hover{border:1px solid #c3d2e9;color:#d6e0f0}.dashboard-stat.blue-steel{background-color:#4B77BE}.dashboard-stat.blue-steel.dashboard-stat-light:hover{background-color:#416db4}.dashboard-stat.blue-steel .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-steel .details .number{color:#FFF}.dashboard-stat.blue-steel .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-steel .more{color:#FFF;background-color:#416db4}.bg-blue-steel{border-color:#4B77BE!important;background-image:none!important;background-color:#4B77BE!important;color:#FFF!important}.font-blue-steel{color:#4B77BE!important}.progress-bar.blue-steel{background:#4B77BE!important;color:#FFF!important}.blue-soft.btn{color:#FFF;background-color:#4c87b9;border-color:""}.blue-soft.btn.active,.blue-soft.btn:active,.blue-soft.btn:focus,.blue-soft.btn:hover,.open .blue-soft.btn.dropdown-toggle{color:#FFF;background-color:#3f75a2}.blue-soft.btn.active,.blue-soft.btn:active{background-image:none;background-color:#386890}.blue-soft.btn.active:hover,.blue-soft.btn:active:hover{background-color:#3b6d97}.open .blue-soft.btn.dropdown-toggle{background-image:none}.blue-soft.btn.disabled,.blue-soft.btn.disabled.active,.blue-soft.btn.disabled:active,.blue-soft.btn.disabled:focus,.blue-soft.btn.disabled:hover,.blue-soft.btn[disabled],.blue-soft.btn[disabled].active,.blue-soft.btn[disabled]:active,.blue-soft.btn[disabled]:focus,.blue-soft.btn[disabled]:hover,fieldset[disabled] .blue-soft.btn,fieldset[disabled] .blue-soft.btn.active,fieldset[disabled] .blue-soft.btn:active,fieldset[disabled] .blue-soft.btn:focus,fieldset[disabled] .blue-soft.btn:hover{background-color:#4c87b9}.blue-soft.btn .badge{color:#4c87b9;background-color:#FFF}.portlet.blue-soft,.portlet.box.blue-soft>.portlet-title,.portlet>.portlet-body.blue-soft{background-color:#4c87b9}.btn.blue-soft-stripe{border-left:3px solid #4c87b9}.portlet.solid.blue-soft>.portlet-body,.portlet.solid.blue-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-soft{border:1px solid #71a0c7;border-top:0}.portlet.box.blue-soft>.portlet-title>.caption,.portlet.box.blue-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9dbdd9;color:#afc9e0}.portlet.box.blue-soft>.portlet-title>.actions .btn-default>i{color:#bad1e4}.portlet.box.blue-soft>.portlet-title>.actions .btn-default.active,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:active,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #c1d6e7;color:#d4e2ee}.dashboard-stat.blue-soft{background-color:#4c87b9}.dashboard-stat.blue-soft.dashboard-stat-light:hover{background-color:#447dad}.dashboard-stat.blue-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-soft .details .number{color:#FFF}.dashboard-stat.blue-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-soft .more{color:#FFF;background-color:#447dad}.bg-blue-soft{border-color:#4c87b9!important;background-image:none!important;background-color:#4c87b9!important;color:#FFF!important}.font-blue-soft{color:#4c87b9!important}.progress-bar.blue-soft{background:#4c87b9!important;color:#FFF!important}.blue-dark.btn{color:#FFF;background-color:#5e738b;border-color:""}.blue-dark.btn.active,.blue-dark.btn:active,.blue-dark.btn:focus,.blue-dark.btn:hover,.open .blue-dark.btn.dropdown-toggle{color:#FFF;background-color:#506176}.blue-dark.btn.active,.blue-dark.btn:active{background-image:none;background-color:#455566}.blue-dark.btn.active:hover,.blue-dark.btn:active:hover{background-color:#495a6d}.open .blue-dark.btn.dropdown-toggle{background-image:none}.blue-dark.btn.disabled,.blue-dark.btn.disabled.active,.blue-dark.btn.disabled:active,.blue-dark.btn.disabled:focus,.blue-dark.btn.disabled:hover,.blue-dark.btn[disabled],.blue-dark.btn[disabled].active,.blue-dark.btn[disabled]:active,.blue-dark.btn[disabled]:focus,.blue-dark.btn[disabled]:hover,fieldset[disabled] .blue-dark.btn,fieldset[disabled] .blue-dark.btn.active,fieldset[disabled] .blue-dark.btn:active,fieldset[disabled] .blue-dark.btn:focus,fieldset[disabled] .blue-dark.btn:hover{background-color:#5e738b}.blue-dark.btn .badge{color:#5e738b;background-color:#FFF}.portlet.blue-dark,.portlet.box.blue-dark>.portlet-title,.portlet>.portlet-body.blue-dark{background-color:#5e738b}.btn.blue-dark-stripe{border-left:3px solid #5e738b}.portlet.solid.blue-dark>.portlet-body,.portlet.solid.blue-dark>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-dark>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-dark>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-dark{border:1px solid #788da4;border-top:0}.portlet.box.blue-dark>.portlet-title>.caption,.portlet.box.blue-dark>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-dark>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9dacbd;color:#acb8c7}.portlet.box.blue-dark>.portlet-title>.actions .btn-default>i{color:#b5c0cd}.portlet.box.blue-dark>.portlet-title>.actions .btn-default.active,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:active,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:hover{border:1px solid #bbc5d1;color:#cad2db}.dashboard-stat.blue-dark{background-color:#5e738b}.dashboard-stat.blue-dark.dashboard-stat-light:hover{background-color:#56697f}.dashboard-stat.blue-dark .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-dark .details .number{color:#FFF}.dashboard-stat.blue-dark .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-dark .more{color:#FFF;background-color:#56697f}.bg-blue-dark{border-color:#5e738b!important;background-image:none!important;background-color:#5e738b!important;color:#FFF!important}.font-blue-dark{color:#5e738b!important}.progress-bar.blue-dark{background:#5e738b!important;color:#FFF!important}.blue-sharp.btn{color:#FFF;background-color:#5C9BD1;border-color:""}.blue-sharp.btn.active,.blue-sharp.btn:active,.blue-sharp.btn:focus,.blue-sharp.btn:hover,.open .blue-sharp.btn.dropdown-toggle{color:#FFF;background-color:#408ac9}.blue-sharp.btn.active,.blue-sharp.btn:active{background-image:none;background-color:#357dbb}.blue-sharp.btn.active:hover,.blue-sharp.btn:active:hover{background-color:#3782c3}.open .blue-sharp.btn.dropdown-toggle{background-image:none}.blue-sharp.btn.disabled,.blue-sharp.btn.disabled.active,.blue-sharp.btn.disabled:active,.blue-sharp.btn.disabled:focus,.blue-sharp.btn.disabled:hover,.blue-sharp.btn[disabled],.blue-sharp.btn[disabled].active,.blue-sharp.btn[disabled]:active,.blue-sharp.btn[disabled]:focus,.blue-sharp.btn[disabled]:hover,fieldset[disabled] .blue-sharp.btn,fieldset[disabled] .blue-sharp.btn.active,fieldset[disabled] .blue-sharp.btn:active,fieldset[disabled] .blue-sharp.btn:focus,fieldset[disabled] .blue-sharp.btn:hover{background-color:#5C9BD1}.blue-sharp.btn .badge{color:#5C9BD1;background-color:#FFF}.portlet.blue-sharp,.portlet.box.blue-sharp>.portlet-title,.portlet>.portlet-body.blue-sharp{background-color:#5C9BD1}.btn.blue-sharp-stripe{border-left:3px solid #5C9BD1}.portlet.solid.blue-sharp>.portlet-body,.portlet.solid.blue-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-sharp{border:1px solid #84b3dc;border-top:0}.portlet.box.blue-sharp>.portlet-title>.caption,.portlet.box.blue-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b4d1ea;color:#c7ddef}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default>i{color:#d3e4f3}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #dbe9f5;color:#eff5fb}.dashboard-stat.blue-sharp{background-color:#5C9BD1}.dashboard-stat.blue-sharp.dashboard-stat-light:hover{background-color:#4c91cd}.dashboard-stat.blue-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-sharp .details .number{color:#FFF}.dashboard-stat.blue-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-sharp .more{color:#FFF;background-color:#4c91cd}.bg-blue-sharp{border-color:#5C9BD1!important;background-image:none!important;background-color:#5C9BD1!important;color:#FFF!important}.font-blue-sharp{color:#5C9BD1!important}.progress-bar.blue-sharp{background:#5C9BD1!important;color:#FFF!important}.green.btn{color:#FFF;background-color:#35aa47;border-color:""}.green.btn.active,.green.btn:active,.green.btn:focus,.green.btn:hover,.open .green.btn.dropdown-toggle{color:#FFF;background-color:#2d8f3c}.green.btn.active,.green.btn:active{background-image:none;background-color:#267b34}.green.btn.active:hover,.green.btn:active:hover{background-color:#298337}.open .green.btn.dropdown-toggle{background-image:none}.green.btn.disabled,.green.btn.disabled.active,.green.btn.disabled:active,.green.btn.disabled:focus,.green.btn.disabled:hover,.green.btn[disabled],.green.btn[disabled].active,.green.btn[disabled]:active,.green.btn[disabled]:focus,.green.btn[disabled]:hover,fieldset[disabled] .green.btn,fieldset[disabled] .green.btn.active,fieldset[disabled] .green.btn:active,fieldset[disabled] .green.btn:focus,fieldset[disabled] .green.btn:hover{background-color:#35aa47}.green.btn .badge{color:#35aa47;background-color:#FFF}.portlet.box.green>.portlet-title,.portlet.green,.portlet>.portlet-body.green{background-color:#35aa47}.btn.green-stripe{border-left:3px solid #35aa47}.portlet.solid.green>.portlet-body,.portlet.solid.green>.portlet-title{border:0;color:#FFF}.portlet.solid.green>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green{border:1px solid #4bc75e;border-top:0}.portlet.box.green>.portlet-title>.caption,.portlet.box.green>.portlet-title>.caption>i{color:#FFF}.portlet.box.green>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #7ad588;color:#8ddc99}.portlet.box.green>.portlet-title>.actions .btn-default>i{color:#99dfa4}.portlet.box.green>.portlet-title>.actions .btn-default.active,.portlet.box.green>.portlet-title>.actions .btn-default:active,.portlet.box.green>.portlet-title>.actions .btn-default:focus,.portlet.box.green>.portlet-title>.actions .btn-default:hover{border:1px solid #a1e2ab;color:#b4e8bc}.dashboard-stat.green{background-color:#35aa47}.dashboard-stat.green.dashboard-stat-light:hover{background-color:#309a41}.dashboard-stat.green .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green .details .number{color:#FFF}.dashboard-stat.green .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green .more{color:#FFF;background-color:#309a41}.bg-green{border-color:#35aa47!important;background-image:none!important;background-color:#35aa47!important;color:#FFF!important}.font-green{color:#35aa47!important}.progress-bar.green{background:#35aa47!important;color:#FFF!important}.green-meadow.btn{color:#FFF;background-color:#1BBC9B;border-color:""}.green-meadow.btn.active,.green-meadow.btn:active,.green-meadow.btn:focus,.green-meadow.btn:hover,.open .green-meadow.btn.dropdown-toggle{color:#FFF;background-color:#179d81}.green-meadow.btn.active,.green-meadow.btn:active{background-image:none;background-color:#13866f}.green-meadow.btn.active:hover,.green-meadow.btn:active:hover{background-color:#158f76}.open .green-meadow.btn.dropdown-toggle{background-image:none}.green-meadow.btn.disabled,.green-meadow.btn.disabled.active,.green-meadow.btn.disabled:active,.green-meadow.btn.disabled:focus,.green-meadow.btn.disabled:hover,.green-meadow.btn[disabled],.green-meadow.btn[disabled].active,.green-meadow.btn[disabled]:active,.green-meadow.btn[disabled]:focus,.green-meadow.btn[disabled]:hover,fieldset[disabled] .green-meadow.btn,fieldset[disabled] .green-meadow.btn.active,fieldset[disabled] .green-meadow.btn:active,fieldset[disabled] .green-meadow.btn:focus,fieldset[disabled] .green-meadow.btn:hover{background-color:#1BBC9B}.green-meadow.btn .badge{color:#1BBC9B;background-color:#FFF}.portlet.box.green-meadow>.portlet-title,.portlet.green-meadow,.portlet>.portlet-body.green-meadow{background-color:#1BBC9B}.btn.green-meadow-stripe{border-left:3px solid #1BBC9B}.portlet.solid.green-meadow>.portlet-body,.portlet.solid.green-meadow>.portlet-title{border:0;color:#FFF}.portlet.solid.green-meadow>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-meadow>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-meadow{border:1px solid #2ae0bb;border-top:0}.portlet.box.green-meadow>.portlet-title>.caption,.portlet.box.green-meadow>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-meadow>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #5fe8cc;color:#75ebd3}.portlet.box.green-meadow>.portlet-title>.actions .btn-default>i{color:#83edd7}.portlet.box.green-meadow>.portlet-title>.actions .btn-default.active,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:active,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:focus,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:hover{border:1px solid #8ceeda;color:#a2f2e1}.dashboard-stat.green-meadow{background-color:#1BBC9B}.dashboard-stat.green-meadow.dashboard-stat-light:hover{background-color:#18aa8c}.dashboard-stat.green-meadow .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-meadow .details .number{color:#FFF}.dashboard-stat.green-meadow .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-meadow .more{color:#FFF;background-color:#18aa8c}.bg-green-meadow{border-color:#1BBC9B!important;background-image:none!important;background-color:#1BBC9B!important;color:#FFF!important}.font-green-meadow{color:#1BBC9B!important}.progress-bar.green-meadow{background:#1BBC9B!important;color:#FFF!important}.green-seagreen.btn{color:#FFF;background-color:#1BA39C;border-color:""}.green-seagreen.btn.active,.green-seagreen.btn:active,.green-seagreen.btn:focus,.green-seagreen.btn:hover,.open .green-seagreen.btn.dropdown-toggle{color:#FFF;background-color:#16847f}.green-seagreen.btn.active,.green-seagreen.btn:active{background-image:none;background-color:#126e6a}.green-seagreen.btn.active:hover,.green-seagreen.btn:active:hover{background-color:#147772}.open .green-seagreen.btn.dropdown-toggle{background-image:none}.green-seagreen.btn.disabled,.green-seagreen.btn.disabled.active,.green-seagreen.btn.disabled:active,.green-seagreen.btn.disabled:focus,.green-seagreen.btn.disabled:hover,.green-seagreen.btn[disabled],.green-seagreen.btn[disabled].active,.green-seagreen.btn[disabled]:active,.green-seagreen.btn[disabled]:focus,.green-seagreen.btn[disabled]:hover,fieldset[disabled] .green-seagreen.btn,fieldset[disabled] .green-seagreen.btn.active,fieldset[disabled] .green-seagreen.btn:active,fieldset[disabled] .green-seagreen.btn:focus,fieldset[disabled] .green-seagreen.btn:hover{background-color:#1BA39C}.green-seagreen.btn .badge{color:#1BA39C;background-color:#FFF}.portlet.box.green-seagreen>.portlet-title,.portlet.green-seagreen,.portlet>.portlet-body.green-seagreen{background-color:#1BA39C}.btn.green-seagreen-stripe{border-left:3px solid #1BA39C}.portlet.solid.green-seagreen>.portlet-body,.portlet.solid.green-seagreen>.portlet-title{border:0;color:#FFF}.portlet.solid.green-seagreen>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-seagreen>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-seagreen{border:1px solid #22cfc6;border-top:0}.portlet.box.green-seagreen>.portlet-title>.caption,.portlet.box.green-seagreen>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #4de1da;color:#63e5de}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default>i{color:#70e7e1}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default.active,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:active,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:focus,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:hover{border:1px solid #78e9e3;color:#8eece8}.dashboard-stat.green-seagreen{background-color:#1BA39C}.dashboard-stat.green-seagreen.dashboard-stat-light:hover{background-color:#18918b}.dashboard-stat.green-seagreen .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-seagreen .details .number{color:#FFF}.dashboard-stat.green-seagreen .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-seagreen .more{color:#FFF;background-color:#18918b}.bg-green-seagreen{border-color:#1BA39C!important;background-image:none!important;background-color:#1BA39C!important;color:#FFF!important}.font-green-seagreen{color:#1BA39C!important}.progress-bar.green-seagreen{background:#1BA39C!important;color:#FFF!important}.green-turquoise.btn{color:#FFF;background-color:#36D7B7;border-color:""}.green-turquoise.btn.active,.green-turquoise.btn:active,.green-turquoise.btn:focus,.green-turquoise.btn:hover,.open .green-turquoise.btn.dropdown-toggle{color:#FFF;background-color:#27c3a4}.green-turquoise.btn.active,.green-turquoise.btn:active{background-image:none;background-color:#22ad92}.green-turquoise.btn.active:hover,.green-turquoise.btn:active:hover{background-color:#24b699}.open .green-turquoise.btn.dropdown-toggle{background-image:none}.green-turquoise.btn.disabled,.green-turquoise.btn.disabled.active,.green-turquoise.btn.disabled:active,.green-turquoise.btn.disabled:focus,.green-turquoise.btn.disabled:hover,.green-turquoise.btn[disabled],.green-turquoise.btn[disabled].active,.green-turquoise.btn[disabled]:active,.green-turquoise.btn[disabled]:focus,.green-turquoise.btn[disabled]:hover,fieldset[disabled] .green-turquoise.btn,fieldset[disabled] .green-turquoise.btn.active,fieldset[disabled] .green-turquoise.btn:active,fieldset[disabled] .green-turquoise.btn:focus,fieldset[disabled] .green-turquoise.btn:hover{background-color:#36D7B7}.green-turquoise.btn .badge{color:#36D7B7;background-color:#FFF}.portlet.box.green-turquoise>.portlet-title,.portlet.green-turquoise,.portlet>.portlet-body.green-turquoise{background-color:#36D7B7}.btn.green-turquoise-stripe{border-left:3px solid #36D7B7}.portlet.solid.green-turquoise>.portlet-body,.portlet.solid.green-turquoise>.portlet-title{border:0;color:#FFF}.portlet.solid.green-turquoise>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-turquoise>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-turquoise{border:1px solid #61dfc6;border-top:0}.portlet.box.green-turquoise>.portlet-title>.caption,.portlet.box.green-turquoise>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #94ead9;color:#a9eee0}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default>i{color:#b6f0e5}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default.active,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:active,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:focus,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:hover{border:1px solid #bef2e8;color:#d3f6ef}.dashboard-stat.green-turquoise{background-color:#36D7B7}.dashboard-stat.green-turquoise.dashboard-stat-light:hover{background-color:#29cfae}.dashboard-stat.green-turquoise .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-turquoise .details .number{color:#FFF}.dashboard-stat.green-turquoise .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-turquoise .more{color:#FFF;background-color:#29cfae}.bg-green-turquoise{border-color:#36D7B7!important;background-image:none!important;background-color:#36D7B7!important;color:#FFF!important}.font-green-turquoise{color:#36D7B7!important}.progress-bar.green-turquoise{background:#36D7B7!important;color:#FFF!important}.green-haze.btn{color:#FFF;background-color:#44b6ae;border-color:""}.green-haze.btn.active,.green-haze.btn:active,.green-haze.btn:focus,.green-haze.btn:hover,.open .green-haze.btn.dropdown-toggle{color:#FFF;background-color:#3a9c95}.green-haze.btn.active,.green-haze.btn:active{background-image:none;background-color:#338983}.green-haze.btn.active:hover,.green-haze.btn:active:hover{background-color:#36918b}.open .green-haze.btn.dropdown-toggle{background-image:none}.green-haze.btn.disabled,.green-haze.btn.disabled.active,.green-haze.btn.disabled:active,.green-haze.btn.disabled:focus,.green-haze.btn.disabled:hover,.green-haze.btn[disabled],.green-haze.btn[disabled].active,.green-haze.btn[disabled]:active,.green-haze.btn[disabled]:focus,.green-haze.btn[disabled]:hover,fieldset[disabled] .green-haze.btn,fieldset[disabled] .green-haze.btn.active,fieldset[disabled] .green-haze.btn:active,fieldset[disabled] .green-haze.btn:focus,fieldset[disabled] .green-haze.btn:hover{background-color:#44b6ae}.green-haze.btn .badge{color:#44b6ae;background-color:#FFF}.portlet.box.green-haze>.portlet-title,.portlet.green-haze,.portlet>.portlet-body.green-haze{background-color:#44b6ae}.btn.green-haze-stripe{border-left:3px solid #44b6ae}.portlet.solid.green-haze>.portlet-body,.portlet.solid.green-haze>.portlet-title{border:0;color:#FFF}.portlet.solid.green-haze>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-haze>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-haze{border:1px solid #67c6bf;border-top:0}.portlet.box.green-haze>.portlet-title>.caption,.portlet.box.green-haze>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-haze>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #93d7d2;color:#a6deda}.portlet.box.green-haze>.portlet-title>.actions .btn-default>i{color:#b1e2de}.portlet.box.green-haze>.portlet-title>.actions .btn-default.active,.portlet.box.green-haze>.portlet-title>.actions .btn-default:active,.portlet.box.green-haze>.portlet-title>.actions .btn-default:focus,.portlet.box.green-haze>.portlet-title>.actions .btn-default:hover{border:1px solid #b9e5e2;color:#cbece9}.dashboard-stat.green-haze{background-color:#44b6ae}.dashboard-stat.green-haze.dashboard-stat-light:hover{background-color:#3ea7a0}.dashboard-stat.green-haze .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-haze .details .number{color:#FFF}.dashboard-stat.green-haze .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-haze .more{color:#FFF;background-color:#3ea7a0}.bg-green-haze{border-color:#44b6ae!important;background-image:none!important;background-color:#44b6ae!important;color:#FFF!important}.font-green-haze{color:#44b6ae!important}.progress-bar.green-haze{background:#44b6ae!important;color:#FFF!important}.green-jungle.btn{color:#FFF;background-color:#26C281;border-color:""}.green-jungle.btn.active,.green-jungle.btn:active,.green-jungle.btn:focus,.green-jungle.btn:hover,.open .green-jungle.btn.dropdown-toggle{color:#FFF;background-color:#20a46d}.green-jungle.btn.active,.green-jungle.btn:active{background-image:none;background-color:#1c8f5f}.green-jungle.btn.active:hover,.green-jungle.btn:active:hover{background-color:#1e9765}.open .green-jungle.btn.dropdown-toggle{background-image:none}.green-jungle.btn.disabled,.green-jungle.btn.disabled.active,.green-jungle.btn.disabled:active,.green-jungle.btn.disabled:focus,.green-jungle.btn.disabled:hover,.green-jungle.btn[disabled],.green-jungle.btn[disabled].active,.green-jungle.btn[disabled]:active,.green-jungle.btn[disabled]:focus,.green-jungle.btn[disabled]:hover,fieldset[disabled] .green-jungle.btn,fieldset[disabled] .green-jungle.btn.active,fieldset[disabled] .green-jungle.btn:active,fieldset[disabled] .green-jungle.btn:focus,fieldset[disabled] .green-jungle.btn:hover{background-color:#26C281}.green-jungle.btn .badge{color:#26C281;background-color:#FFF}.portlet.box.green-jungle>.portlet-title,.portlet.green-jungle,.portlet>.portlet-body.green-jungle{background-color:#26C281}.btn.green-jungle-stripe{border-left:3px solid #26C281}.portlet.solid.green-jungle>.portlet-body,.portlet.solid.green-jungle>.portlet-title{border:0;color:#FFF}.portlet.solid.green-jungle>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-jungle>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-jungle{border:1px solid #41da9a;border-top:0}.portlet.box.green-jungle>.portlet-title>.caption,.portlet.box.green-jungle>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-jungle>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #74e4b5;color:#8ae8c1}.portlet.box.green-jungle>.portlet-title>.actions .btn-default>i{color:#96ebc8}.portlet.box.green-jungle>.portlet-title>.actions .btn-default.active,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:active,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:focus,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:hover{border:1px solid #9feccc;color:#b4f0d7}.dashboard-stat.green-jungle{background-color:#26C281}.dashboard-stat.green-jungle.dashboard-stat-light:hover{background-color:#23b176}.dashboard-stat.green-jungle .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-jungle .details .number{color:#FFF}.dashboard-stat.green-jungle .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-jungle .more{color:#FFF;background-color:#23b176}.bg-green-jungle{border-color:#26C281!important;background-image:none!important;background-color:#26C281!important;color:#FFF!important}.font-green-jungle{color:#26C281!important}.progress-bar.green-jungle{background:#26C281!important;color:#FFF!important}.green-sharp.btn{color:#FFF;background-color:#4DB3A2;border-color:""}.green-sharp.btn.active,.green-sharp.btn:active,.green-sharp.btn:focus,.green-sharp.btn:hover,.open .green-sharp.btn.dropdown-toggle{color:#FFF;background-color:#429a8c}.green-sharp.btn.active,.green-sharp.btn:active{background-image:none;background-color:#3a897b}.green-sharp.btn.active:hover,.green-sharp.btn:active:hover{background-color:#3d9082}.open .green-sharp.btn.dropdown-toggle{background-image:none}.green-sharp.btn.disabled,.green-sharp.btn.disabled.active,.green-sharp.btn.disabled:active,.green-sharp.btn.disabled:focus,.green-sharp.btn.disabled:hover,.green-sharp.btn[disabled],.green-sharp.btn[disabled].active,.green-sharp.btn[disabled]:active,.green-sharp.btn[disabled]:focus,.green-sharp.btn[disabled]:hover,fieldset[disabled] .green-sharp.btn,fieldset[disabled] .green-sharp.btn.active,fieldset[disabled] .green-sharp.btn:active,fieldset[disabled] .green-sharp.btn:focus,fieldset[disabled] .green-sharp.btn:hover{background-color:#4DB3A2}.green-sharp.btn .badge{color:#4DB3A2;background-color:#FFF}.portlet.box.green-sharp>.portlet-title,.portlet.green-sharp,.portlet>.portlet-body.green-sharp{background-color:#4DB3A2}.btn.green-sharp-stripe{border-left:3px solid #4DB3A2}.portlet.solid.green-sharp>.portlet-body,.portlet.solid.green-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.green-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-sharp{border:1px solid #71c2b5;border-top:0}.portlet.box.green-sharp>.portlet-title>.caption,.portlet.box.green-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9cd5cb;color:#addcd4}.portlet.box.green-sharp>.portlet-title>.actions .btn-default>i{color:#b8e1da}.portlet.box.green-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #bfe4de;color:#d1ebe7}.dashboard-stat.green-sharp{background-color:#4DB3A2}.dashboard-stat.green-sharp.dashboard-stat-light:hover{background-color:#46a595}.dashboard-stat.green-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-sharp .details .number{color:#FFF}.dashboard-stat.green-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-sharp .more{color:#FFF;background-color:#46a595}.bg-green-sharp{border-color:#4DB3A2!important;background-image:none!important;background-color:#4DB3A2!important;color:#FFF!important}.font-green-sharp{color:#4DB3A2!important}.progress-bar.green-sharp{background:#4DB3A2!important;color:#FFF!important}.green-soft.btn{color:#FFF;background-color:#3faba4;border-color:""}.green-soft.btn.active,.green-soft.btn:active,.green-soft.btn:focus,.green-soft.btn:hover,.open .green-soft.btn.dropdown-toggle{color:#FFF;background-color:#35918b}.green-soft.btn.active,.green-soft.btn:active{background-image:none;background-color:#2f7e79}.green-soft.btn.active:hover,.green-soft.btn:active:hover{background-color:#318680}.open .green-soft.btn.dropdown-toggle{background-image:none}.green-soft.btn.disabled,.green-soft.btn.disabled.active,.green-soft.btn.disabled:active,.green-soft.btn.disabled:focus,.green-soft.btn.disabled:hover,.green-soft.btn[disabled],.green-soft.btn[disabled].active,.green-soft.btn[disabled]:active,.green-soft.btn[disabled]:focus,.green-soft.btn[disabled]:hover,fieldset[disabled] .green-soft.btn,fieldset[disabled] .green-soft.btn.active,fieldset[disabled] .green-soft.btn:active,fieldset[disabled] .green-soft.btn:focus,fieldset[disabled] .green-soft.btn:hover{background-color:#3faba4}.green-soft.btn .badge{color:#3faba4;background-color:#FFF}.portlet.box.green-soft>.portlet-title,.portlet.green-soft,.portlet>.portlet-body.green-soft{background-color:#3faba4}.btn.green-soft-stripe{border-left:3px solid #3faba4}.portlet.solid.green-soft>.portlet-body,.portlet.solid.green-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.green-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-soft{border:1px solid #5bc2bc;border-top:0}.portlet.box.green-soft>.portlet-title>.caption,.portlet.box.green-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #87d3ce;color:#9adad6}.portlet.box.green-soft>.portlet-title>.actions .btn-default>i{color:#a5deda}.portlet.box.green-soft>.portlet-title>.actions .btn-default.active,.portlet.box.green-soft>.portlet-title>.actions .btn-default:active,.portlet.box.green-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.green-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #ade1dd;color:#bfe7e5}.dashboard-stat.green-soft{background-color:#3faba4}.dashboard-stat.green-soft.dashboard-stat-light:hover{background-color:#3a9c96}.dashboard-stat.green-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-soft .details .number{color:#FFF}.dashboard-stat.green-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-soft .more{color:#FFF;background-color:#3a9c96}.bg-green-soft{border-color:#3faba4!important;background-image:none!important;background-color:#3faba4!important;color:#FFF!important}.font-green-soft{color:#3faba4!important}.progress-bar.green-soft{background:#3faba4!important;color:#FFF!important}.grey.btn{color:#333;background-color:#E5E5E5;border-color:""}.grey.btn.active,.grey.btn:active,.grey.btn:focus,.grey.btn:hover,.open .grey.btn.dropdown-toggle{color:#333;background-color:#d3d3d3}.grey.btn.active,.grey.btn:active{background-image:none;background-color:#c6c6c6}.grey.btn.active:hover,.grey.btn:active:hover{background-color:#ccc}.open .grey.btn.dropdown-toggle{background-image:none}.grey.btn.disabled,.grey.btn.disabled.active,.grey.btn.disabled:active,.grey.btn.disabled:focus,.grey.btn.disabled:hover,.grey.btn[disabled],.grey.btn[disabled].active,.grey.btn[disabled]:active,.grey.btn[disabled]:focus,.grey.btn[disabled]:hover,fieldset[disabled] .grey.btn,fieldset[disabled] .grey.btn.active,fieldset[disabled] .grey.btn:active,fieldset[disabled] .grey.btn:focus,fieldset[disabled] .grey.btn:hover{background-color:#E5E5E5}.grey.btn .badge{color:#E5E5E5;background-color:#333}.portlet.box.grey>.portlet-title,.portlet.grey,.portlet>.portlet-body.grey{background-color:#E5E5E5}.btn.grey-stripe{border-left:3px solid #E5E5E5}.portlet.solid.grey>.portlet-body,.portlet.solid.grey>.portlet-title{border:0;color:#333}.portlet.solid.grey>.portlet-title>.caption>i{color:#333}.portlet.solid.grey>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey{border:1px solid #fff;border-top:0}.portlet.box.grey>.portlet-title>.caption,.portlet.box.grey>.portlet-title>.caption>i{color:#333}.portlet.box.grey>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey>.portlet-title>.actions .btn-default.active,.portlet.box.grey>.portlet-title>.actions .btn-default:active,.portlet.box.grey>.portlet-title>.actions .btn-default:focus,.portlet.box.grey>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey{background-color:#E5E5E5}.dashboard-stat.grey.dashboard-stat-light:hover{background-color:#dbdbdb}.dashboard-stat.grey .visual>i{color:#333;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey .details .number{color:#333}.dashboard-stat.grey .details .desc{color:#333;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey .more{color:#333;background-color:#dbdbdb}.bg-grey{border-color:#E5E5E5!important;background-image:none!important;background-color:#E5E5E5!important;color:#333!important}.font-grey{color:#E5E5E5!important}.progress-bar.grey{background:#E5E5E5!important;color:#333!important}.grey-steel.btn{color:#80898e;background-color:#e9edef;border-color:""}.grey-steel.btn.active,.grey-steel.btn:active,.grey-steel.btn:focus,.grey-steel.btn:hover,.open .grey-steel.btn.dropdown-toggle{color:#80898e;background-color:#d4dce0}.grey-steel.btn.active,.grey-steel.btn:active{background-image:none;background-color:#c6d0d5}.grey-steel.btn.active:hover,.grey-steel.btn:active:hover{background-color:#cbd5da}.open .grey-steel.btn.dropdown-toggle{background-image:none}.grey-steel.btn.disabled,.grey-steel.btn.disabled.active,.grey-steel.btn.disabled:active,.grey-steel.btn.disabled:focus,.grey-steel.btn.disabled:hover,.grey-steel.btn[disabled],.grey-steel.btn[disabled].active,.grey-steel.btn[disabled]:active,.grey-steel.btn[disabled]:focus,.grey-steel.btn[disabled]:hover,fieldset[disabled] .grey-steel.btn,fieldset[disabled] .grey-steel.btn.active,fieldset[disabled] .grey-steel.btn:active,fieldset[disabled] .grey-steel.btn:focus,fieldset[disabled] .grey-steel.btn:hover{background-color:#e9edef}.grey-steel.btn .badge{color:#e9edef;background-color:#80898e}.portlet.box.grey-steel>.portlet-title,.portlet.grey-steel,.portlet>.portlet-body.grey-steel{background-color:#e9edef}.btn.grey-steel-stripe{border-left:3px solid #e9edef}.portlet.solid.grey-steel>.portlet-body,.portlet.solid.grey-steel>.portlet-title{border:0;color:#80898e}.portlet.solid.grey-steel>.portlet-title>.caption>i{color:#80898e}.portlet.solid.grey-steel>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-steel{border:1px solid #fff;border-top:0}.portlet.box.grey-steel>.portlet-title>.caption,.portlet.box.grey-steel>.portlet-title>.caption>i{color:#80898e}.portlet.box.grey-steel>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-steel>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-steel>.portlet-title>.actions .btn-default.active,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:active,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-steel{background-color:#e9edef}.dashboard-stat.grey-steel.dashboard-stat-light:hover{background-color:#dde3e6}.dashboard-stat.grey-steel .visual>i{color:#80898e;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-steel .details .number{color:#80898e}.dashboard-stat.grey-steel .details .desc{color:#80898e;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-steel .more{color:#80898e;background-color:#dde3e6}.bg-grey-steel{border-color:#e9edef!important;background-image:none!important;background-color:#e9edef!important;color:#80898e!important}.font-grey-steel{color:#e9edef!important}.progress-bar.grey-steel{background:#e9edef!important;color:#80898e!important}.grey-cararra.btn{color:#333;background-color:#fafafa;border-color:""}.grey-cararra.btn.active,.grey-cararra.btn:active,.grey-cararra.btn:focus,.grey-cararra.btn:hover,.open .grey-cararra.btn.dropdown-toggle{color:#333;background-color:#e8e8e8}.grey-cararra.btn.active,.grey-cararra.btn:active{background-image:none;background-color:#dbdbdb}.grey-cararra.btn.active:hover,.grey-cararra.btn:active:hover{background-color:#e1e1e1}.open .grey-cararra.btn.dropdown-toggle{background-image:none}.grey-cararra.btn.disabled,.grey-cararra.btn.disabled.active,.grey-cararra.btn.disabled:active,.grey-cararra.btn.disabled:focus,.grey-cararra.btn.disabled:hover,.grey-cararra.btn[disabled],.grey-cararra.btn[disabled].active,.grey-cararra.btn[disabled]:active,.grey-cararra.btn[disabled]:focus,.grey-cararra.btn[disabled]:hover,fieldset[disabled] .grey-cararra.btn,fieldset[disabled] .grey-cararra.btn.active,fieldset[disabled] .grey-cararra.btn:active,fieldset[disabled] .grey-cararra.btn:focus,fieldset[disabled] .grey-cararra.btn:hover{background-color:#fafafa}.grey-cararra.btn .badge{color:#fafafa;background-color:#333}.portlet.box.grey-cararra>.portlet-title,.portlet.grey-cararra,.portlet>.portlet-body.grey-cararra{background-color:#fafafa}.btn.grey-cararra-stripe{border-left:3px solid #fafafa}.portlet.solid.grey-cararra>.portlet-body,.portlet.solid.grey-cararra>.portlet-title{border:0;color:#333}.portlet.solid.grey-cararra>.portlet-title>.caption>i{color:#333}.portlet.solid.grey-cararra>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-cararra{border:1px solid #fff;border-top:0}.portlet.box.grey-cararra>.portlet-title>.caption,.portlet.box.grey-cararra>.portlet-title>.caption>i{color:#333}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default.active,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:active,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-cararra{background-color:#fafafa}.dashboard-stat.grey-cararra.dashboard-stat-light:hover{background-color:#f0f0f0}.dashboard-stat.grey-cararra .visual>i{color:#333;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-cararra .details .number{color:#333}.dashboard-stat.grey-cararra .details .desc{color:#333;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-cararra .more{color:#333;background-color:#f0f0f0}.bg-grey-cararra{border-color:#fafafa!important;background-image:none!important;background-color:#fafafa!important;color:#333!important}.font-grey-cararra{color:#fafafa!important}.progress-bar.grey-cararra{background:#fafafa!important;color:#333!important}.grey-gallery.btn{color:#fff;background-color:#555;border-color:""}.grey-gallery.btn.active,.grey-gallery.btn:active,.grey-gallery.btn:focus,.grey-gallery.btn:hover,.open .grey-gallery.btn.dropdown-toggle{color:#fff;background-color:#434343}.grey-gallery.btn.active,.grey-gallery.btn:active{background-image:none;background-color:#363636}.grey-gallery.btn.active:hover,.grey-gallery.btn:active:hover{background-color:#3b3b3b}.open .grey-gallery.btn.dropdown-toggle{background-image:none}.grey-gallery.btn.disabled,.grey-gallery.btn.disabled.active,.grey-gallery.btn.disabled:active,.grey-gallery.btn.disabled:focus,.grey-gallery.btn.disabled:hover,.grey-gallery.btn[disabled],.grey-gallery.btn[disabled].active,.grey-gallery.btn[disabled]:active,.grey-gallery.btn[disabled]:focus,.grey-gallery.btn[disabled]:hover,fieldset[disabled] .grey-gallery.btn,fieldset[disabled] .grey-gallery.btn.active,fieldset[disabled] .grey-gallery.btn:active,fieldset[disabled] .grey-gallery.btn:focus,fieldset[disabled] .grey-gallery.btn:hover{background-color:#555}.grey-gallery.btn .badge{color:#555;background-color:#fff}.portlet.box.grey-gallery>.portlet-title,.portlet.grey-gallery,.portlet>.portlet-body.grey-gallery{background-color:#555}.btn.grey-gallery-stripe{border-left:3px solid #555}.portlet.solid.grey-gallery>.portlet-body,.portlet.solid.grey-gallery>.portlet-title{border:0;color:#fff}.portlet.solid.grey-gallery>.portlet-title>.caption>i{color:#fff}.portlet.solid.grey-gallery>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-gallery{border:1px solid #6e6e6e;border-top:0}.portlet.box.grey-gallery>.portlet-title>.caption,.portlet.box.grey-gallery>.portlet-title>.caption>i{color:#fff}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #8d8d8d;color:#9a9a9a}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default>i{color:#a2a2a2}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default.active,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:active,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:hover{border:1px solid #a7a7a7;color:#b3b3b3}.dashboard-stat.grey-gallery{background-color:#555}.dashboard-stat.grey-gallery.dashboard-stat-light:hover{background-color:#4b4b4b}.dashboard-stat.grey-gallery .visual>i{color:#fff;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-gallery .details .number{color:#fff}.dashboard-stat.grey-gallery .details .desc{color:#fff;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-gallery .more{color:#fff;background-color:#4b4b4b}.bg-grey-gallery{border-color:#555!important;background-image:none!important;background-color:#555!important;color:#fff!important}.font-grey-gallery{color:#555!important}.progress-bar.grey-gallery{background:#555!important;color:#fff!important}.grey-cascade.btn{color:#FFF;background-color:#95A5A6;border-color:""}.grey-cascade.btn.active,.grey-cascade.btn:active,.grey-cascade.btn:focus,.grey-cascade.btn:hover,.open .grey-cascade.btn.dropdown-toggle{color:#FFF;background-color:#829596}.grey-cascade.btn.active,.grey-cascade.btn:active{background-image:none;background-color:#74898a}.grey-cascade.btn.active:hover,.grey-cascade.btn:active:hover{background-color:#798d8f}.open .grey-cascade.btn.dropdown-toggle{background-image:none}.grey-cascade.btn.disabled,.grey-cascade.btn.disabled.active,.grey-cascade.btn.disabled:active,.grey-cascade.btn.disabled:focus,.grey-cascade.btn.disabled:hover,.grey-cascade.btn[disabled],.grey-cascade.btn[disabled].active,.grey-cascade.btn[disabled]:active,.grey-cascade.btn[disabled]:focus,.grey-cascade.btn[disabled]:hover,fieldset[disabled] .grey-cascade.btn,fieldset[disabled] .grey-cascade.btn.active,fieldset[disabled] .grey-cascade.btn:active,fieldset[disabled] .grey-cascade.btn:focus,fieldset[disabled] .grey-cascade.btn:hover{background-color:#95A5A6}.grey-cascade.btn .badge{color:#95A5A6;background-color:#FFF}.portlet.box.grey-cascade>.portlet-title,.portlet.grey-cascade,.portlet>.portlet-body.grey-cascade{background-color:#95A5A6}.btn.grey-cascade-stripe{border-left:3px solid #95A5A6}.portlet.solid.grey-cascade>.portlet-body,.portlet.solid.grey-cascade>.portlet-title{border:0;color:#FFF}.portlet.solid.grey-cascade>.portlet-title>.caption>i{color:#FFF}.portlet.solid.grey-cascade>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-cascade{border:1px solid #b1bdbd;border-top:0}.portlet.box.grey-cascade>.portlet-title>.caption,.portlet.box.grey-cascade>.portlet-title>.caption>i{color:#FFF}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #d2d9d9;color:#e0e5e5}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default>i{color:#e8ecec}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default.active,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:active,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:hover{border:1px solid #eef0f0;color:#fcfcfc}.dashboard-stat.grey-cascade{background-color:#95A5A6}.dashboard-stat.grey-cascade.dashboard-stat-light:hover{background-color:#8a9c9d}.dashboard-stat.grey-cascade .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-cascade .details .number{color:#FFF}.dashboard-stat.grey-cascade .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-cascade .more{color:#FFF;background-color:#8a9c9d}.bg-grey-cascade{border-color:#95A5A6!important;background-image:none!important;background-color:#95A5A6!important;color:#FFF!important}.font-grey-cascade{color:#95A5A6!important}.progress-bar.grey-cascade{background:#95A5A6!important;color:#FFF!important}.grey-silver.btn{color:#FAFCFB;background-color:#BFBFBF;border-color:""}.grey-silver.btn.active,.grey-silver.btn:active,.grey-silver.btn:focus,.grey-silver.btn:hover,.open .grey-silver.btn.dropdown-toggle{color:#FAFCFB;background-color:#adadad}.grey-silver.btn.active,.grey-silver.btn:active{background-image:none;background-color:#a0a0a0}.grey-silver.btn.active:hover,.grey-silver.btn:active:hover{background-color:#a6a6a6}.open .grey-silver.btn.dropdown-toggle{background-image:none}.grey-silver.btn.disabled,.grey-silver.btn.disabled.active,.grey-silver.btn.disabled:active,.grey-silver.btn.disabled:focus,.grey-silver.btn.disabled:hover,.grey-silver.btn[disabled],.grey-silver.btn[disabled].active,.grey-silver.btn[disabled]:active,.grey-silver.btn[disabled]:focus,.grey-silver.btn[disabled]:hover,fieldset[disabled] .grey-silver.btn,fieldset[disabled] .grey-silver.btn.active,fieldset[disabled] .grey-silver.btn:active,fieldset[disabled] .grey-silver.btn:focus,fieldset[disabled] .grey-silver.btn:hover{background-color:#BFBFBF}.grey-silver.btn .badge{color:#BFBFBF;background-color:#FAFCFB}.portlet.box.grey-silver>.portlet-title,.portlet.grey-silver,.portlet>.portlet-body.grey-silver{background-color:#BFBFBF}.btn.grey-silver-stripe{border-left:3px solid #BFBFBF}.portlet.solid.grey-silver>.portlet-body,.portlet.solid.grey-silver>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-silver>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-silver>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-silver{border:1px solid #d9d9d9;border-top:0}.portlet.box.grey-silver>.portlet-title>.caption,.portlet.box.grey-silver>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-silver>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f7f7f7;color:#fff}.portlet.box.grey-silver>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-silver>.portlet-title>.actions .btn-default.active,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:active,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-silver{background-color:#BFBFBF}.dashboard-stat.grey-silver.dashboard-stat-light:hover{background-color:#b5b5b5}.dashboard-stat.grey-silver .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-silver .details .number{color:#FAFCFB}.dashboard-stat.grey-silver .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-silver .more{color:#FAFCFB;background-color:#b5b5b5}.bg-grey-silver{border-color:#BFBFBF!important;background-image:none!important;background-color:#BFBFBF!important;color:#FAFCFB!important}.font-grey-silver{color:#BFBFBF!important}.progress-bar.grey-silver{background:#BFBFBF!important;color:#FAFCFB!important}.grey-salsa.btn{color:#FAFCFB;background-color:#ACB5C3;border-color:""}.grey-salsa.btn.active,.grey-salsa.btn:active,.grey-salsa.btn:focus,.grey-salsa.btn:hover,.open .grey-salsa.btn.dropdown-toggle{color:#FAFCFB;background-color:#97a3b4}.grey-salsa.btn.active,.grey-salsa.btn:active{background-image:none;background-color:#8895a9}.grey-salsa.btn.active:hover,.grey-salsa.btn:active:hover{background-color:#8e9bae}.open .grey-salsa.btn.dropdown-toggle{background-image:none}.grey-salsa.btn.disabled,.grey-salsa.btn.disabled.active,.grey-salsa.btn.disabled:active,.grey-salsa.btn.disabled:focus,.grey-salsa.btn.disabled:hover,.grey-salsa.btn[disabled],.grey-salsa.btn[disabled].active,.grey-salsa.btn[disabled]:active,.grey-salsa.btn[disabled]:focus,.grey-salsa.btn[disabled]:hover,fieldset[disabled] .grey-salsa.btn,fieldset[disabled] .grey-salsa.btn.active,fieldset[disabled] .grey-salsa.btn:active,fieldset[disabled] .grey-salsa.btn:focus,fieldset[disabled] .grey-salsa.btn:hover{background-color:#ACB5C3}.grey-salsa.btn .badge{color:#ACB5C3;background-color:#FAFCFB}.portlet.box.grey-salsa>.portlet-title,.portlet.grey-salsa,.portlet>.portlet-body.grey-salsa{background-color:#ACB5C3}.btn.grey-salsa-stripe{border-left:3px solid #ACB5C3}.portlet.solid.grey-salsa>.portlet-body,.portlet.solid.grey-salsa>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-salsa>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-salsa>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-salsa{border:1px solid #cacfd8;border-top:0}.portlet.box.grey-salsa>.portlet-title>.caption,.portlet.box.grey-salsa>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #edeff2;color:#fcfcfd}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default.active,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:active,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-salsa{background-color:#ACB5C3}.dashboard-stat.grey-salsa.dashboard-stat-light:hover{background-color:#a0aaba}.dashboard-stat.grey-salsa .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-salsa .details .number{color:#FAFCFB}.dashboard-stat.grey-salsa .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-salsa .more{color:#FAFCFB;background-color:#a0aaba}.bg-grey-salsa{border-color:#ACB5C3!important;background-image:none!important;background-color:#ACB5C3!important;color:#FAFCFB!important}.font-grey-salsa{color:#ACB5C3!important}.progress-bar.grey-salsa{background:#ACB5C3!important;color:#FAFCFB!important}.grey-salt.btn{color:#FAFCFB;background-color:#bfcad1;border-color:""}.grey-salt.btn.active,.grey-salt.btn:active,.grey-salt.btn:focus,.grey-salt.btn:hover,.open .grey-salt.btn.dropdown-toggle{color:#FAFCFB;background-color:#aab9c2}.grey-salt.btn.active,.grey-salt.btn:active{background-image:none;background-color:#9badb7}.grey-salt.btn.active:hover,.grey-salt.btn:active:hover{background-color:#a1b1bc}.open .grey-salt.btn.dropdown-toggle{background-image:none}.grey-salt.btn.disabled,.grey-salt.btn.disabled.active,.grey-salt.btn.disabled:active,.grey-salt.btn.disabled:focus,.grey-salt.btn.disabled:hover,.grey-salt.btn[disabled],.grey-salt.btn[disabled].active,.grey-salt.btn[disabled]:active,.grey-salt.btn[disabled]:focus,.grey-salt.btn[disabled]:hover,fieldset[disabled] .grey-salt.btn,fieldset[disabled] .grey-salt.btn.active,fieldset[disabled] .grey-salt.btn:active,fieldset[disabled] .grey-salt.btn:focus,fieldset[disabled] .grey-salt.btn:hover{background-color:#bfcad1}.grey-salt.btn .badge{color:#bfcad1;background-color:#FAFCFB}.portlet.box.grey-salt>.portlet-title,.portlet.grey-salt,.portlet>.portlet-body.grey-salt{background-color:#bfcad1}.btn.grey-salt-stripe{border-left:3px solid #bfcad1}.portlet.solid.grey-salt>.portlet-body,.portlet.solid.grey-salt>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-salt>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-salt>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-salt{border:1px solid #dde3e6;border-top:0}.portlet.box.grey-salt>.portlet-title>.caption,.portlet.box.grey-salt>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-salt>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-salt>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-salt>.portlet-title>.actions .btn-default.active,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:active,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-salt{background-color:#bfcad1}.dashboard-stat.grey-salt.dashboard-stat-light:hover{background-color:#b3c0c8}.dashboard-stat.grey-salt .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-salt .details .number{color:#FAFCFB}.dashboard-stat.grey-salt .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-salt .more{color:#FAFCFB;background-color:#b3c0c8}.bg-grey-salt{border-color:#bfcad1!important;background-image:none!important;background-color:#bfcad1!important;color:#FAFCFB!important}.font-grey-salt{color:#bfcad1!important}.progress-bar.grey-salt{background:#bfcad1!important;color:#FAFCFB!important}.grey-mint.btn{color:#FAFCFB;background-color:#9eacb4;border-color:""}.grey-mint.btn.active,.grey-mint.btn:active,.grey-mint.btn:focus,.grey-mint.btn:hover,.open .grey-mint.btn.dropdown-toggle{color:#FAFCFB;background-color:#8a9ba4}.grey-mint.btn.active,.grey-mint.btn:active{background-image:none;background-color:#7b8e99}.grey-mint.btn.active:hover,.grey-mint.btn:active:hover{background-color:#81939e}.open .grey-mint.btn.dropdown-toggle{background-image:none}.grey-mint.btn.disabled,.grey-mint.btn.disabled.active,.grey-mint.btn.disabled:active,.grey-mint.btn.disabled:focus,.grey-mint.btn.disabled:hover,.grey-mint.btn[disabled],.grey-mint.btn[disabled].active,.grey-mint.btn[disabled]:active,.grey-mint.btn[disabled]:focus,.grey-mint.btn[disabled]:hover,fieldset[disabled] .grey-mint.btn,fieldset[disabled] .grey-mint.btn.active,fieldset[disabled] .grey-mint.btn:active,fieldset[disabled] .grey-mint.btn:focus,fieldset[disabled] .grey-mint.btn:hover{background-color:#9eacb4}.grey-mint.btn .badge{color:#9eacb4;background-color:#FAFCFB}.portlet.box.grey-mint>.portlet-title,.portlet.grey-mint,.portlet>.portlet-body.grey-mint{background-color:#9eacb4}.btn.grey-mint-stripe{border-left:3px solid #9eacb4}.portlet.solid.grey-mint>.portlet-body,.portlet.solid.grey-mint>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-mint>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-mint>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-mint{border:1px solid #bbc5ca;border-top:0}.portlet.box.grey-mint>.portlet-title>.caption,.portlet.box.grey-mint>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-mint>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #dde2e5;color:#eceef0}.portlet.box.grey-mint>.portlet-title>.actions .btn-default>i{color:#f4f6f7}.portlet.box.grey-mint>.portlet-title>.actions .btn-default.active,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:active,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:hover{border:1px solid #fafbfb;color:#fff}.dashboard-stat.grey-mint{background-color:#9eacb4}.dashboard-stat.grey-mint.dashboard-stat-light:hover{background-color:#92a2ab}.dashboard-stat.grey-mint .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-mint .details .number{color:#FAFCFB}.dashboard-stat.grey-mint .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-mint .more{color:#FAFCFB;background-color:#92a2ab}.bg-grey-mint{border-color:#9eacb4!important;background-image:none!important;background-color:#9eacb4!important;color:#FAFCFB!important}.font-grey-mint{color:#9eacb4!important}.progress-bar.grey-mint{background:#9eacb4!important;color:#FAFCFB!important}.red.btn{color:#FFF;background-color:#d84a38;border-color:""}.open .red.btn.dropdown-toggle,.red.btn.active,.red.btn:active,.red.btn:focus,.red.btn:hover{color:#FFF;background-color:#c63927}.red.btn.active,.red.btn:active{background-image:none;background-color:#b03223}.red.btn.active:hover,.red.btn:active:hover{background-color:#b93524}.open .red.btn.dropdown-toggle{background-image:none}.red.btn.disabled,.red.btn.disabled.active,.red.btn.disabled:active,.red.btn.disabled:focus,.red.btn.disabled:hover,.red.btn[disabled],.red.btn[disabled].active,.red.btn[disabled]:active,.red.btn[disabled]:focus,.red.btn[disabled]:hover,fieldset[disabled] .red.btn,fieldset[disabled] .red.btn.active,fieldset[disabled] .red.btn:active,fieldset[disabled] .red.btn:focus,fieldset[disabled] .red.btn:hover{background-color:#d84a38}.red.btn .badge{color:#d84a38;background-color:#FFF}.portlet.box.red>.portlet-title,.portlet.red,.portlet>.portlet-body.red{background-color:#d84a38}.btn.red-stripe{border-left:3px solid #d84a38}.portlet.solid.red>.portlet-body,.portlet.solid.red>.portlet-title{border:0;color:#FFF}.portlet.solid.red>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red{border:1px solid #e07163;border-top:0}.portlet.box.red>.portlet-title>.caption,.portlet.box.red>.portlet-title>.caption>i{color:#FFF}.portlet.box.red>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ea9f96;color:#efb3ab}.portlet.box.red>.portlet-title>.actions .btn-default>i{color:#f1beb8}.portlet.box.red>.portlet-title>.actions .btn-default.active,.portlet.box.red>.portlet-title>.actions .btn-default:active,.portlet.box.red>.portlet-title>.actions .btn-default:focus,.portlet.box.red>.portlet-title>.actions .btn-default:hover{border:1px solid #f3c6c0;color:#f7dad6}.dashboard-stat.red{background-color:#d84a38}.dashboard-stat.red.dashboard-stat-light:hover{background-color:#d23c29}.dashboard-stat.red .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red .details .number{color:#FFF}.dashboard-stat.red .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red .more{color:#FFF;background-color:#d23c29}.bg-red{border-color:#d84a38!important;background-image:none!important;background-color:#d84a38!important;color:#FFF!important}.font-red{color:#d84a38!important}.progress-bar.red{background:#d84a38!important;color:#FFF!important}.red-pink.btn{color:#FFF;background-color:#E08283;border-color:""}.open .red-pink.btn.dropdown-toggle,.red-pink.btn.active,.red-pink.btn:active,.red-pink.btn:focus,.red-pink.btn:hover{color:#FFF;background-color:#d96567}.red-pink.btn.active,.red-pink.btn:active{background-image:none;background-color:#d45152}.red-pink.btn.active:hover,.red-pink.btn:active:hover{background-color:#d6595a}.open .red-pink.btn.dropdown-toggle{background-image:none}.red-pink.btn.disabled,.red-pink.btn.disabled.active,.red-pink.btn.disabled:active,.red-pink.btn.disabled:focus,.red-pink.btn.disabled:hover,.red-pink.btn[disabled],.red-pink.btn[disabled].active,.red-pink.btn[disabled]:active,.red-pink.btn[disabled]:focus,.red-pink.btn[disabled]:hover,fieldset[disabled] .red-pink.btn,fieldset[disabled] .red-pink.btn.active,fieldset[disabled] .red-pink.btn:active,fieldset[disabled] .red-pink.btn:focus,fieldset[disabled] .red-pink.btn:hover{background-color:#E08283}.red-pink.btn .badge{color:#E08283;background-color:#FFF}.portlet.box.red-pink>.portlet-title,.portlet.red-pink,.portlet>.portlet-body.red-pink{background-color:#E08283}.btn.red-pink-stripe{border-left:3px solid #E08283}.portlet.solid.red-pink>.portlet-body,.portlet.solid.red-pink>.portlet-title{border:0;color:#FFF}.portlet.solid.red-pink>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-pink>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-pink{border:1px solid #eaabac;border-top:0}.portlet.box.red-pink>.portlet-title>.caption,.portlet.box.red-pink>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-pink>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f6dcdc;color:#fbf0f0}.portlet.box.red-pink>.portlet-title>.actions .btn-default>i{color:#fefdfd}.portlet.box.red-pink>.portlet-title>.actions .btn-default.active,.portlet.box.red-pink>.portlet-title>.actions .btn-default:active,.portlet.box.red-pink>.portlet-title>.actions .btn-default:focus,.portlet.box.red-pink>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.red-pink{background-color:#E08283}.dashboard-stat.red-pink.dashboard-stat-light:hover{background-color:#dc7273}.dashboard-stat.red-pink .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-pink .details .number{color:#FFF}.dashboard-stat.red-pink .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-pink .more{color:#FFF;background-color:#dc7273}.bg-red-pink{border-color:#E08283!important;background-image:none!important;background-color:#E08283!important;color:#FFF!important}.font-red-pink{color:#E08283!important}.progress-bar.red-pink{background:#E08283!important;color:#FFF!important}.red-sunglo.btn{color:#FFF;background-color:#E26A6A;border-color:""}.open .red-sunglo.btn.dropdown-toggle,.red-sunglo.btn.active,.red-sunglo.btn:active,.red-sunglo.btn:focus,.red-sunglo.btn:hover{color:#FFF;background-color:#dc4c4c}.red-sunglo.btn.active,.red-sunglo.btn:active{background-image:none;background-color:#d83737}.red-sunglo.btn.active:hover,.red-sunglo.btn:active:hover{background-color:#da3f3f}.open .red-sunglo.btn.dropdown-toggle{background-image:none}.red-sunglo.btn.disabled,.red-sunglo.btn.disabled.active,.red-sunglo.btn.disabled:active,.red-sunglo.btn.disabled:focus,.red-sunglo.btn.disabled:hover,.red-sunglo.btn[disabled],.red-sunglo.btn[disabled].active,.red-sunglo.btn[disabled]:active,.red-sunglo.btn[disabled]:focus,.red-sunglo.btn[disabled]:hover,fieldset[disabled] .red-sunglo.btn,fieldset[disabled] .red-sunglo.btn.active,fieldset[disabled] .red-sunglo.btn:active,fieldset[disabled] .red-sunglo.btn:focus,fieldset[disabled] .red-sunglo.btn:hover{background-color:#E26A6A}.red-sunglo.btn .badge{color:#E26A6A;background-color:#FFF}.portlet.box.red-sunglo>.portlet-title,.portlet.red-sunglo,.portlet>.portlet-body.red-sunglo{background-color:#E26A6A}.btn.red-sunglo-stripe{border-left:3px solid #E26A6A}.portlet.solid.red-sunglo>.portlet-body,.portlet.solid.red-sunglo>.portlet-title{border:0;color:#FFF}.portlet.solid.red-sunglo>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-sunglo>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-sunglo{border:1px solid #ea9595;border-top:0}.portlet.box.red-sunglo>.portlet-title>.caption,.portlet.box.red-sunglo>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f4c8c8;color:#f8dddd}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default>i{color:#fbeaea}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default.active,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:active,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:focus,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:hover{border:1px solid #fdf3f3;color:#fff}.dashboard-stat.red-sunglo{background-color:#E26A6A}.dashboard-stat.red-sunglo.dashboard-stat-light:hover{background-color:#df5959}.dashboard-stat.red-sunglo .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-sunglo .details .number{color:#FFF}.dashboard-stat.red-sunglo .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-sunglo .more{color:#FFF;background-color:#df5959}.bg-red-sunglo{border-color:#E26A6A!important;background-image:none!important;background-color:#E26A6A!important;color:#FFF!important}.font-red-sunglo{color:#E26A6A!important}.progress-bar.red-sunglo{background:#E26A6A!important;color:#FFF!important}.red-intense.btn{color:#FFF;background-color:#e35b5a;border-color:""}.open .red-intense.btn.dropdown-toggle,.red-intense.btn.active,.red-intense.btn:active,.red-intense.btn:focus,.red-intense.btn:hover{color:#FFF;background-color:#de3d3b}.red-intense.btn.active,.red-intense.btn:active{background-image:none;background-color:#da2726}.red-intense.btn.active:hover,.red-intense.btn:active:hover{background-color:#dc302e}.open .red-intense.btn.dropdown-toggle{background-image:none}.red-intense.btn.disabled,.red-intense.btn.disabled.active,.red-intense.btn.disabled:active,.red-intense.btn.disabled:focus,.red-intense.btn.disabled:hover,.red-intense.btn[disabled],.red-intense.btn[disabled].active,.red-intense.btn[disabled]:active,.red-intense.btn[disabled]:focus,.red-intense.btn[disabled]:hover,fieldset[disabled] .red-intense.btn,fieldset[disabled] .red-intense.btn.active,fieldset[disabled] .red-intense.btn:active,fieldset[disabled] .red-intense.btn:focus,fieldset[disabled] .red-intense.btn:hover{background-color:#e35b5a}.red-intense.btn .badge{color:#e35b5a;background-color:#FFF}.portlet.box.red-intense>.portlet-title,.portlet.red-intense,.portlet>.portlet-body.red-intense{background-color:#e35b5a}.btn.red-intense-stripe{border-left:3px solid #e35b5a}.portlet.solid.red-intense>.portlet-body,.portlet.solid.red-intense>.portlet-title{border:0;color:#FFF}.portlet.solid.red-intense>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-intense>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-intense{border:1px solid #ea8686;border-top:0}.portlet.box.red-intense>.portlet-title>.caption,.portlet.box.red-intense>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-intense>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f3baba;color:#f7d0d0}.portlet.box.red-intense>.portlet-title>.actions .btn-default>i{color:#f9dddd}.portlet.box.red-intense>.portlet-title>.actions .btn-default.active,.portlet.box.red-intense>.portlet-title>.actions .btn-default:active,.portlet.box.red-intense>.portlet-title>.actions .btn-default:focus,.portlet.box.red-intense>.portlet-title>.actions .btn-default:hover{border:1px solid #fbe6e6;color:#fefbfb}.dashboard-stat.red-intense{background-color:#e35b5a}.dashboard-stat.red-intense.dashboard-stat-light:hover{background-color:#e04a49}.dashboard-stat.red-intense .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-intense .details .number{color:#FFF}.dashboard-stat.red-intense .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-intense .more{color:#FFF;background-color:#e04a49}.bg-red-intense{border-color:#e35b5a!important;background-image:none!important;background-color:#e35b5a!important;color:#FFF!important}.font-red-intense{color:#e35b5a!important}.progress-bar.red-intense{background:#e35b5a!important;color:#FFF!important}.red-thunderbird.btn{color:#FFF;background-color:#D91E18;border-color:""}.open .red-thunderbird.btn.dropdown-toggle,.red-thunderbird.btn.active,.red-thunderbird.btn:active,.red-thunderbird.btn:focus,.red-thunderbird.btn:hover{color:#FFF;background-color:#b91a14}.red-thunderbird.btn.active,.red-thunderbird.btn:active{background-image:none;background-color:#a21612}.red-thunderbird.btn.active:hover,.red-thunderbird.btn:active:hover{background-color:#ab1813}.open .red-thunderbird.btn.dropdown-toggle{background-image:none}.red-thunderbird.btn.disabled,.red-thunderbird.btn.disabled.active,.red-thunderbird.btn.disabled:active,.red-thunderbird.btn.disabled:focus,.red-thunderbird.btn.disabled:hover,.red-thunderbird.btn[disabled],.red-thunderbird.btn[disabled].active,.red-thunderbird.btn[disabled]:active,.red-thunderbird.btn[disabled]:focus,.red-thunderbird.btn[disabled]:hover,fieldset[disabled] .red-thunderbird.btn,fieldset[disabled] .red-thunderbird.btn.active,fieldset[disabled] .red-thunderbird.btn:active,fieldset[disabled] .red-thunderbird.btn:focus,fieldset[disabled] .red-thunderbird.btn:hover{background-color:#D91E18}.red-thunderbird.btn .badge{color:#D91E18;background-color:#FFF}.portlet.box.red-thunderbird>.portlet-title,.portlet.red-thunderbird,.portlet>.portlet-body.red-thunderbird{background-color:#D91E18}.btn.red-thunderbird-stripe{border-left:3px solid #D91E18}.portlet.solid.red-thunderbird>.portlet-body,.portlet.solid.red-thunderbird>.portlet-title{border:0;color:#FFF}.portlet.solid.red-thunderbird>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-thunderbird{border:1px solid #e9403b;border-top:0}.portlet.box.red-thunderbird>.portlet-title>.caption,.portlet.box.red-thunderbird>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ef7672;color:#f28c89}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default>i{color:#f39997}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default.active,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:active,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:focus,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:hover{border:1px solid #f4a2a0;color:#f7b9b7}.dashboard-stat.red-thunderbird{background-color:#D91E18}.dashboard-stat.red-thunderbird.dashboard-stat-light:hover{background-color:#c71b16}.dashboard-stat.red-thunderbird .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-thunderbird .details .number{color:#FFF}.dashboard-stat.red-thunderbird .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-thunderbird .more{color:#FFF;background-color:#c71b16}.bg-red-thunderbird{border-color:#D91E18!important;background-image:none!important;background-color:#D91E18!important;color:#FFF!important}.font-red-thunderbird{color:#D91E18!important}.progress-bar.red-thunderbird{background:#D91E18!important;color:#FFF!important}.red-flamingo.btn{color:#FFF;background-color:#EF4836;border-color:""}.open .red-flamingo.btn.dropdown-toggle,.red-flamingo.btn.active,.red-flamingo.btn:active,.red-flamingo.btn:focus,.red-flamingo.btn:hover{color:#FFF;background-color:#ec2a15}.red-flamingo.btn.active,.red-flamingo.btn:active{background-image:none;background-color:#d72411}.red-flamingo.btn.active:hover,.red-flamingo.btn:active:hover{background-color:#e02612}.open .red-flamingo.btn.dropdown-toggle{background-image:none}.red-flamingo.btn.disabled,.red-flamingo.btn.disabled.active,.red-flamingo.btn.disabled:active,.red-flamingo.btn.disabled:focus,.red-flamingo.btn.disabled:hover,.red-flamingo.btn[disabled],.red-flamingo.btn[disabled].active,.red-flamingo.btn[disabled]:active,.red-flamingo.btn[disabled]:focus,.red-flamingo.btn[disabled]:hover,fieldset[disabled] .red-flamingo.btn,fieldset[disabled] .red-flamingo.btn.active,fieldset[disabled] .red-flamingo.btn:active,fieldset[disabled] .red-flamingo.btn:focus,fieldset[disabled] .red-flamingo.btn:hover{background-color:#EF4836}.red-flamingo.btn .badge{color:#EF4836;background-color:#FFF}.portlet.box.red-flamingo>.portlet-title,.portlet.red-flamingo,.portlet>.portlet-body.red-flamingo{background-color:#EF4836}.btn.red-flamingo-stripe{border-left:3px solid #EF4836}.portlet.solid.red-flamingo>.portlet-body,.portlet.solid.red-flamingo>.portlet-title{border:0;color:#FFF}.portlet.solid.red-flamingo>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-flamingo>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-flamingo{border:1px solid #f37365;border-top:0}.portlet.box.red-flamingo>.portlet-title>.caption,.portlet.box.red-flamingo>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f7a79e;color:#f9bcb6}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default>i{color:#fac9c4}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default.active,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:active,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:focus,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:hover{border:1px solid #fbd2cd;color:#fde7e5}.dashboard-stat.red-flamingo{background-color:#EF4836}.dashboard-stat.red-flamingo.dashboard-stat-light:hover{background-color:#ed3723}.dashboard-stat.red-flamingo .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-flamingo .details .number{color:#FFF}.dashboard-stat.red-flamingo .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-flamingo .more{color:#FFF;background-color:#ed3723}.bg-red-flamingo{border-color:#EF4836!important;background-image:none!important;background-color:#EF4836!important;color:#FFF!important}.font-red-flamingo{color:#EF4836!important}.progress-bar.red-flamingo{background:#EF4836!important;color:#FFF!important}.red-soft.btn{color:#FFF;background-color:#d05454;border-color:""}.open .red-soft.btn.dropdown-toggle,.red-soft.btn.active,.red-soft.btn:active,.red-soft.btn:focus,.red-soft.btn:hover{color:#FFF;background-color:#c83838}.red-soft.btn.active,.red-soft.btn:active{background-image:none;background-color:#b53232}.red-soft.btn.active:hover,.red-soft.btn:active:hover{background-color:#bd3434}.open .red-soft.btn.dropdown-toggle{background-image:none}.red-soft.btn.disabled,.red-soft.btn.disabled.active,.red-soft.btn.disabled:active,.red-soft.btn.disabled:focus,.red-soft.btn.disabled:hover,.red-soft.btn[disabled],.red-soft.btn[disabled].active,.red-soft.btn[disabled]:active,.red-soft.btn[disabled]:focus,.red-soft.btn[disabled]:hover,fieldset[disabled] .red-soft.btn,fieldset[disabled] .red-soft.btn.active,fieldset[disabled] .red-soft.btn:active,fieldset[disabled] .red-soft.btn:focus,fieldset[disabled] .red-soft.btn:hover{background-color:#d05454}.red-soft.btn .badge{color:#d05454;background-color:#FFF}.portlet.box.red-soft>.portlet-title,.portlet.red-soft,.portlet>.portlet-body.red-soft{background-color:#d05454}.btn.red-soft-stripe{border-left:3px solid #d05454}.portlet.solid.red-soft>.portlet-body,.portlet.solid.red-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.red-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-soft{border:1px solid #db7c7c;border-top:0}.portlet.box.red-soft>.portlet-title>.caption,.portlet.box.red-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #e8acac;color:#eec0c0}.portlet.box.red-soft>.portlet-title>.actions .btn-default>i{color:#f1cccc}.portlet.box.red-soft>.portlet-title>.actions .btn-default.active,.portlet.box.red-soft>.portlet-title>.actions .btn-default:active,.portlet.box.red-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.red-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #f3d4d4;color:#f9e8e8}.dashboard-stat.red-soft{background-color:#d05454}.dashboard-stat.red-soft.dashboard-stat-light:hover{background-color:#c44}.dashboard-stat.red-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-soft .details .number{color:#FFF}.dashboard-stat.red-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-soft .more{color:#FFF;background-color:#c44}.bg-red-soft{border-color:#d05454!important;background-image:none!important;background-color:#d05454!important;color:#FFF!important}.font-red-soft{color:#d05454!important}.progress-bar.red-soft{background:#d05454!important;color:#FFF!important}.red-haze.btn{color:#FFF;background-color:#f36a5a;border-color:""}.open .red-haze.btn.dropdown-toggle,.red-haze.btn.active,.red-haze.btn:active,.red-haze.btn:focus,.red-haze.btn:hover{color:#FFF;background-color:#f14c39}.red-haze.btn.active,.red-haze.btn:active{background-image:none;background-color:#ef3621}.red-haze.btn.active:hover,.red-haze.btn:active:hover{background-color:#f03f2a}.open .red-haze.btn.dropdown-toggle{background-image:none}.red-haze.btn.disabled,.red-haze.btn.disabled.active,.red-haze.btn.disabled:active,.red-haze.btn.disabled:focus,.red-haze.btn.disabled:hover,.red-haze.btn[disabled],.red-haze.btn[disabled].active,.red-haze.btn[disabled]:active,.red-haze.btn[disabled]:focus,.red-haze.btn[disabled]:hover,fieldset[disabled] .red-haze.btn,fieldset[disabled] .red-haze.btn.active,fieldset[disabled] .red-haze.btn:active,fieldset[disabled] .red-haze.btn:focus,fieldset[disabled] .red-haze.btn:hover{background-color:#f36a5a}.red-haze.btn .badge{color:#f36a5a;background-color:#FFF}.portlet.box.red-haze>.portlet-title,.portlet.red-haze,.portlet>.portlet-body.red-haze{background-color:#f36a5a}.btn.red-haze-stripe{border-left:3px solid #f36a5a}.portlet.solid.red-haze>.portlet-body,.portlet.solid.red-haze>.portlet-title{border:0;color:#FFF}.portlet.solid.red-haze>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-haze>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-haze{border:1px solid #f6958a;border-top:0}.portlet.box.red-haze>.portlet-title>.caption,.portlet.box.red-haze>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-haze>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fbc8c3;color:#fcdeda}.portlet.box.red-haze>.portlet-title>.actions .btn-default>i{color:#fdebe9}.portlet.box.red-haze>.portlet-title>.actions .btn-default.active,.portlet.box.red-haze>.portlet-title>.actions .btn-default:active,.portlet.box.red-haze>.portlet-title>.actions .btn-default:focus,.portlet.box.red-haze>.portlet-title>.actions .btn-default:hover{border:1px solid #fef3f2;color:#fff}.dashboard-stat.red-haze{background-color:#f36a5a}.dashboard-stat.red-haze.dashboard-stat-light:hover{background-color:#f25947}.dashboard-stat.red-haze .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-haze .details .number{color:#FFF}.dashboard-stat.red-haze .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-haze .more{color:#FFF;background-color:#f25947}.bg-red-haze{border-color:#f36a5a!important;background-image:none!important;background-color:#f36a5a!important;color:#FFF!important}.font-red-haze{color:#f36a5a!important}.progress-bar.red-haze{background:#f36a5a!important;color:#FFF!important}.yellow.btn{color:#FFF;background-color:#FFB848;border-color:""}.open .yellow.btn.dropdown-toggle,.yellow.btn.active,.yellow.btn:active,.yellow.btn:focus,.yellow.btn:hover{color:#FFF;background-color:#ffaa24}.yellow.btn.active,.yellow.btn:active{background-image:none;background-color:#ffa00b}.yellow.btn.active:hover,.yellow.btn:active:hover{background-color:#ffa415}.open .yellow.btn.dropdown-toggle{background-image:none}.yellow.btn.disabled,.yellow.btn.disabled.active,.yellow.btn.disabled:active,.yellow.btn.disabled:focus,.yellow.btn.disabled:hover,.yellow.btn[disabled],.yellow.btn[disabled].active,.yellow.btn[disabled]:active,.yellow.btn[disabled]:focus,.yellow.btn[disabled]:hover,fieldset[disabled] .yellow.btn,fieldset[disabled] .yellow.btn.active,fieldset[disabled] .yellow.btn:active,fieldset[disabled] .yellow.btn:focus,fieldset[disabled] .yellow.btn:hover{background-color:#FFB848}.yellow.btn .badge{color:#FFB848;background-color:#FFF}.portlet.box.yellow>.portlet-title,.portlet.yellow,.portlet>.portlet-body.yellow{background-color:#FFB848}.btn.yellow-stripe{border-left:3px solid #FFB848}.portlet.solid.yellow>.portlet-body,.portlet.solid.yellow>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow{border:1px solid #ffcc7b;border-top:0}.portlet.box.yellow>.portlet-title>.caption,.portlet.box.yellow>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ffe4b8;color:#ffedd2}.portlet.box.yellow>.portlet-title>.actions .btn-default>i{color:#fff3e1}.portlet.box.yellow>.portlet-title>.actions .btn-default.active,.portlet.box.yellow>.portlet-title>.actions .btn-default:active,.portlet.box.yellow>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow>.portlet-title>.actions .btn-default:hover{border:1px solid #fff7eb;color:#fff}.dashboard-stat.yellow{background-color:#FFB848}.dashboard-stat.yellow.dashboard-stat-light:hover{background-color:#ffb034}.dashboard-stat.yellow .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow .details .number{color:#FFF}.dashboard-stat.yellow .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow .more{color:#FFF;background-color:#ffb034}.bg-yellow{border-color:#FFB848!important;background-image:none!important;background-color:#FFB848!important;color:#FFF!important}.font-yellow{color:#FFB848!important}.progress-bar.yellow{background:#FFB848!important;color:#FFF!important}.yellow-gold.btn{color:#FFF;background-color:#E87E04;border-color:""}.open .yellow-gold.btn.dropdown-toggle,.yellow-gold.btn.active,.yellow-gold.btn:active,.yellow-gold.btn:focus,.yellow-gold.btn:hover{color:#FFF;background-color:#c56b03}.yellow-gold.btn.active,.yellow-gold.btn:active{background-image:none;background-color:#ac5d03}.yellow-gold.btn.active:hover,.yellow-gold.btn:active:hover{background-color:#b66303}.open .yellow-gold.btn.dropdown-toggle{background-image:none}.yellow-gold.btn.disabled,.yellow-gold.btn.disabled.active,.yellow-gold.btn.disabled:active,.yellow-gold.btn.disabled:focus,.yellow-gold.btn.disabled:hover,.yellow-gold.btn[disabled],.yellow-gold.btn[disabled].active,.yellow-gold.btn[disabled]:active,.yellow-gold.btn[disabled]:focus,.yellow-gold.btn[disabled]:hover,fieldset[disabled] .yellow-gold.btn,fieldset[disabled] .yellow-gold.btn.active,fieldset[disabled] .yellow-gold.btn:active,fieldset[disabled] .yellow-gold.btn:focus,fieldset[disabled] .yellow-gold.btn:hover{background-color:#E87E04}.yellow-gold.btn .badge{color:#E87E04;background-color:#FFF}.portlet.box.yellow-gold>.portlet-title,.portlet.yellow-gold,.portlet>.portlet-body.yellow-gold{background-color:#E87E04}.btn.yellow-gold-stripe{border-left:3px solid #E87E04}.portlet.solid.yellow-gold>.portlet-body,.portlet.solid.yellow-gold>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-gold>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-gold>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-gold{border:1px solid #fb9724;border-top:0}.portlet.box.yellow-gold>.portlet-title>.caption,.portlet.box.yellow-gold>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fcb460;color:#fdbf79}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default>i{color:#fdc788}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:hover{border:1px solid #fdcb92;color:#fed7ab}.dashboard-stat.yellow-gold{background-color:#E87E04}.dashboard-stat.yellow-gold.dashboard-stat-light:hover{background-color:#d47304}.dashboard-stat.yellow-gold .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-gold .details .number{color:#FFF}.dashboard-stat.yellow-gold .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-gold .more{color:#FFF;background-color:#d47304}.bg-yellow-gold{border-color:#E87E04!important;background-image:none!important;background-color:#E87E04!important;color:#FFF!important}.font-yellow-gold{color:#E87E04!important}.progress-bar.yellow-gold{background:#E87E04!important;color:#FFF!important}.yellow-casablanca.btn{color:#FFF;background-color:#f2784b;border-color:""}.open .yellow-casablanca.btn.dropdown-toggle,.yellow-casablanca.btn.active,.yellow-casablanca.btn:active,.yellow-casablanca.btn:focus,.yellow-casablanca.btn:hover{color:#FFF;background-color:#f05f2a}.yellow-casablanca.btn.active,.yellow-casablanca.btn:active{background-image:none;background-color:#ee4d12}.yellow-casablanca.btn.active:hover,.yellow-casablanca.btn:active:hover{background-color:#ef541b}.open .yellow-casablanca.btn.dropdown-toggle{background-image:none}.yellow-casablanca.btn.disabled,.yellow-casablanca.btn.disabled.active,.yellow-casablanca.btn.disabled:active,.yellow-casablanca.btn.disabled:focus,.yellow-casablanca.btn.disabled:hover,.yellow-casablanca.btn[disabled],.yellow-casablanca.btn[disabled].active,.yellow-casablanca.btn[disabled]:active,.yellow-casablanca.btn[disabled]:focus,.yellow-casablanca.btn[disabled]:hover,fieldset[disabled] .yellow-casablanca.btn,fieldset[disabled] .yellow-casablanca.btn.active,fieldset[disabled] .yellow-casablanca.btn:active,fieldset[disabled] .yellow-casablanca.btn:focus,fieldset[disabled] .yellow-casablanca.btn:hover{background-color:#f2784b}.yellow-casablanca.btn .badge{color:#f2784b;background-color:#FFF}.portlet.box.yellow-casablanca>.portlet-title,.portlet.yellow-casablanca,.portlet>.portlet-body.yellow-casablanca{background-color:#f2784b}.btn.yellow-casablanca-stripe{border-left:3px solid #f2784b}.portlet.solid.yellow-casablanca>.portlet-body,.portlet.solid.yellow-casablanca>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-casablanca>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-casablanca{border:1px solid #f59c7b;border-top:0}.portlet.box.yellow-casablanca>.portlet-title>.caption,.portlet.box.yellow-casablanca>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fac6b4;color:#fbd8cb}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default>i{color:#fce3da}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:hover{border:1px solid #fdeae3;color:#fffcfb}.dashboard-stat.yellow-casablanca{background-color:#f2784b}.dashboard-stat.yellow-casablanca.dashboard-stat-light:hover{background-color:#f16a38}.dashboard-stat.yellow-casablanca .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-casablanca .details .number{color:#FFF}.dashboard-stat.yellow-casablanca .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-casablanca .more{color:#FFF;background-color:#f16a38}.bg-yellow-casablanca{border-color:#f2784b!important;background-image:none!important;background-color:#f2784b!important;color:#FFF!important}.font-yellow-casablanca{color:#f2784b!important}.progress-bar.yellow-casablanca{background:#f2784b!important;color:#FFF!important}.yellow-crusta.btn{color:#FFF;background-color:#f3c200;border-color:""}.open .yellow-crusta.btn.dropdown-toggle,.yellow-crusta.btn.active,.yellow-crusta.btn:active,.yellow-crusta.btn:focus,.yellow-crusta.btn:hover{color:#FFF;background-color:#cfa500}.yellow-crusta.btn.active,.yellow-crusta.btn:active{background-image:none;background-color:#b69100}.yellow-crusta.btn.active:hover,.yellow-crusta.btn:active:hover{background-color:#c09900}.open .yellow-crusta.btn.dropdown-toggle{background-image:none}.yellow-crusta.btn.disabled,.yellow-crusta.btn.disabled.active,.yellow-crusta.btn.disabled:active,.yellow-crusta.btn.disabled:focus,.yellow-crusta.btn.disabled:hover,.yellow-crusta.btn[disabled],.yellow-crusta.btn[disabled].active,.yellow-crusta.btn[disabled]:active,.yellow-crusta.btn[disabled]:focus,.yellow-crusta.btn[disabled]:hover,fieldset[disabled] .yellow-crusta.btn,fieldset[disabled] .yellow-crusta.btn.active,fieldset[disabled] .yellow-crusta.btn:active,fieldset[disabled] .yellow-crusta.btn:focus,fieldset[disabled] .yellow-crusta.btn:hover{background-color:#f3c200}.yellow-crusta.btn .badge{color:#f3c200;background-color:#FFF}.portlet.box.yellow-crusta>.portlet-title,.portlet.yellow-crusta,.portlet>.portlet-body.yellow-crusta{background-color:#f3c200}.btn.yellow-crusta-stripe{border-left:3px solid #f3c200}.portlet.solid.yellow-crusta>.portlet-body,.portlet.solid.yellow-crusta>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-crusta>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-crusta{border:1px solid #ffd327;border-top:0}.portlet.box.yellow-crusta>.portlet-title>.caption,.portlet.box.yellow-crusta>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ffe064;color:#ffe57e}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default>i{color:#ffe88d}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:hover{border:1px solid #ffea97;color:#ffefb1}.dashboard-stat.yellow-crusta{background-color:#f3c200}.dashboard-stat.yellow-crusta.dashboard-stat-light:hover{background-color:#dfb200}.dashboard-stat.yellow-crusta .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-crusta .details .number{color:#FFF}.dashboard-stat.yellow-crusta .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-crusta .more{color:#FFF;background-color:#dfb200}.bg-yellow-crusta{border-color:#f3c200!important;background-image:none!important;background-color:#f3c200!important;color:#FFF!important}.font-yellow-crusta{color:#f3c200!important}.progress-bar.yellow-crusta{background:#f3c200!important;color:#FFF!important}.yellow-lemon.btn{color:#FFF;background-color:#F7CA18;border-color:""}.open .yellow-lemon.btn.dropdown-toggle,.yellow-lemon.btn.active,.yellow-lemon.btn:active,.yellow-lemon.btn:focus,.yellow-lemon.btn:hover{color:#FFF;background-color:#e3b708}.yellow-lemon.btn.active,.yellow-lemon.btn:active{background-image:none;background-color:#cba307}.yellow-lemon.btn.active:hover,.yellow-lemon.btn:active:hover{background-color:#d5ab07}.open .yellow-lemon.btn.dropdown-toggle{background-image:none}.yellow-lemon.btn.disabled,.yellow-lemon.btn.disabled.active,.yellow-lemon.btn.disabled:active,.yellow-lemon.btn.disabled:focus,.yellow-lemon.btn.disabled:hover,.yellow-lemon.btn[disabled],.yellow-lemon.btn[disabled].active,.yellow-lemon.btn[disabled]:active,.yellow-lemon.btn[disabled]:focus,.yellow-lemon.btn[disabled]:hover,fieldset[disabled] .yellow-lemon.btn,fieldset[disabled] .yellow-lemon.btn.active,fieldset[disabled] .yellow-lemon.btn:active,fieldset[disabled] .yellow-lemon.btn:focus,fieldset[disabled] .yellow-lemon.btn:hover{background-color:#F7CA18}.yellow-lemon.btn .badge{color:#F7CA18;background-color:#FFF}.portlet.box.yellow-lemon>.portlet-title,.portlet.yellow-lemon,.portlet>.portlet-body.yellow-lemon{background-color:#F7CA18}.btn.yellow-lemon-stripe{border-left:3px solid #F7CA18}.portlet.solid.yellow-lemon>.portlet-body,.portlet.solid.yellow-lemon>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-lemon>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-lemon{border:1px solid #f9d549;border-top:0}.portlet.box.yellow-lemon>.portlet-title>.caption,.portlet.box.yellow-lemon>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fbe384;color:#fce99d}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default>i{color:#fcecac}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:hover{border:1px solid #fceeb6;color:#fdf4ce}.dashboard-stat.yellow-lemon{background-color:#F7CA18}.dashboard-stat.yellow-lemon.dashboard-stat-light:hover{background-color:#f2c308}.dashboard-stat.yellow-lemon .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-lemon .details .number{color:#FFF}.dashboard-stat.yellow-lemon .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-lemon .more{color:#FFF;background-color:#f2c308}.bg-yellow-lemon{border-color:#F7CA18!important;background-image:none!important;background-color:#F7CA18!important;color:#FFF!important}.font-yellow-lemon{color:#F7CA18!important}.progress-bar.yellow-lemon{background:#F7CA18!important;color:#FFF!important}.yellow-saffron.btn{color:#FFF;background-color:#F4D03F;border-color:""}.open .yellow-saffron.btn.dropdown-toggle,.yellow-saffron.btn.active,.yellow-saffron.btn:active,.yellow-saffron.btn:focus,.yellow-saffron.btn:hover{color:#FFF;background-color:#f2c81d}.yellow-saffron.btn.active,.yellow-saffron.btn:active{background-image:none;background-color:#e8bd0d}.yellow-saffron.btn.active:hover,.yellow-saffron.btn:active:hover{background-color:#f1c40f}.open .yellow-saffron.btn.dropdown-toggle{background-image:none}.yellow-saffron.btn.disabled,.yellow-saffron.btn.disabled.active,.yellow-saffron.btn.disabled:active,.yellow-saffron.btn.disabled:focus,.yellow-saffron.btn.disabled:hover,.yellow-saffron.btn[disabled],.yellow-saffron.btn[disabled].active,.yellow-saffron.btn[disabled]:active,.yellow-saffron.btn[disabled]:focus,.yellow-saffron.btn[disabled]:hover,fieldset[disabled] .yellow-saffron.btn,fieldset[disabled] .yellow-saffron.btn.active,fieldset[disabled] .yellow-saffron.btn:active,fieldset[disabled] .yellow-saffron.btn:focus,fieldset[disabled] .yellow-saffron.btn:hover{background-color:#F4D03F}.yellow-saffron.btn .badge{color:#F4D03F;background-color:#FFF}.portlet.box.yellow-saffron>.portlet-title,.portlet.yellow-saffron,.portlet>.portlet-body.yellow-saffron{background-color:#F4D03F}.btn.yellow-saffron-stripe{border-left:3px solid #F4D03F}.portlet.solid.yellow-saffron>.portlet-body,.portlet.solid.yellow-saffron>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-saffron>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-saffron{border:1px solid #f7dc6f;border-top:0}.portlet.box.yellow-saffron>.portlet-title>.caption,.portlet.box.yellow-saffron>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #faeaa9;color:#fbf0c1}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default>i{color:#fcf3d0}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:hover{border:1px solid #fdf6d9;color:#fefcf1}.dashboard-stat.yellow-saffron{background-color:#F4D03F}.dashboard-stat.yellow-saffron.dashboard-stat-light:hover{background-color:#f3cb2c}.dashboard-stat.yellow-saffron .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-saffron .details .number{color:#FFF}.dashboard-stat.yellow-saffron .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-saffron .more{color:#FFF;background-color:#f3cb2c}.bg-yellow-saffron{border-color:#F4D03F!important;background-image:none!important;background-color:#F4D03F!important;color:#FFF!important}.font-yellow-saffron{color:#F4D03F!important}.progress-bar.yellow-saffron{background:#F4D03F!important;color:#FFF!important}.purple.btn{color:#FFF;background-color:#8E44AD;border-color:""}.open .purple.btn.dropdown-toggle,.purple.btn.active,.purple.btn:active,.purple.btn:focus,.purple.btn:hover{color:#FFF;background-color:#793a93}.purple.btn.active,.purple.btn:active{background-image:none;background-color:#6a3381}.purple.btn.active:hover,.purple.btn:active:hover{background-color:#703688}.open .purple.btn.dropdown-toggle{background-image:none}.purple.btn.disabled,.purple.btn.disabled.active,.purple.btn.disabled:active,.purple.btn.disabled:focus,.purple.btn.disabled:hover,.purple.btn[disabled],.purple.btn[disabled].active,.purple.btn[disabled]:active,.purple.btn[disabled]:focus,.purple.btn[disabled]:hover,fieldset[disabled] .purple.btn,fieldset[disabled] .purple.btn.active,fieldset[disabled] .purple.btn:active,fieldset[disabled] .purple.btn:focus,fieldset[disabled] .purple.btn:hover{background-color:#8E44AD}.purple.btn .badge{color:#8E44AD;background-color:#FFF}.portlet.box.purple>.portlet-title,.portlet.purple,.portlet>.portlet-body.purple{background-color:#8E44AD}.btn.purple-stripe{border-left:3px solid #8E44AD}.portlet.solid.purple>.portlet-body,.portlet.solid.purple>.portlet-title{border:0;color:#FFF}.portlet.solid.purple>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple{border:1px solid #a563c1;border-top:0}.portlet.box.purple>.portlet-title>.caption,.portlet.box.purple>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #bf8ed3;color:#c9a1da}.portlet.box.purple>.portlet-title>.actions .btn-default>i{color:#cfacde}.portlet.box.purple>.portlet-title>.actions .btn-default.active,.portlet.box.purple>.portlet-title>.actions .btn-default:active,.portlet.box.purple>.portlet-title>.actions .btn-default:focus,.portlet.box.purple>.portlet-title>.actions .btn-default:hover{border:1px solid #d4b3e1;color:#dec5e8}.dashboard-stat.purple{background-color:#8E44AD}.dashboard-stat.purple.dashboard-stat-light:hover{background-color:#823e9e}.dashboard-stat.purple .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple .details .number{color:#FFF}.dashboard-stat.purple .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple .more{color:#FFF;background-color:#823e9e}.bg-purple{border-color:#8E44AD!important;background-image:none!important;background-color:#8E44AD!important;color:#FFF!important}.font-purple{color:#8E44AD!important}.progress-bar.purple{background:#8E44AD!important;color:#FFF!important}.purple-plum.btn{color:#FFF;background-color:#8775a7;border-color:""}.open .purple-plum.btn.dropdown-toggle,.purple-plum.btn.active,.purple-plum.btn:active,.purple-plum.btn:focus,.purple-plum.btn:hover{color:#FFF;background-color:#746198}.purple-plum.btn.active,.purple-plum.btn:active{background-image:none;background-color:#685788}.purple-plum.btn.active:hover,.purple-plum.btn:active:hover{background-color:#6d5b8e}.open .purple-plum.btn.dropdown-toggle{background-image:none}.purple-plum.btn.disabled,.purple-plum.btn.disabled.active,.purple-plum.btn.disabled:active,.purple-plum.btn.disabled:focus,.purple-plum.btn.disabled:hover,.purple-plum.btn[disabled],.purple-plum.btn[disabled].active,.purple-plum.btn[disabled]:active,.purple-plum.btn[disabled]:focus,.purple-plum.btn[disabled]:hover,fieldset[disabled] .purple-plum.btn,fieldset[disabled] .purple-plum.btn.active,fieldset[disabled] .purple-plum.btn:active,fieldset[disabled] .purple-plum.btn:focus,fieldset[disabled] .purple-plum.btn:hover{background-color:#8775a7}.purple-plum.btn .badge{color:#8775a7;background-color:#FFF}.portlet.box.purple-plum>.portlet-title,.portlet.purple-plum,.portlet>.portlet-body.purple-plum{background-color:#8775a7}.btn.purple-plum-stripe{border-left:3px solid #8775a7}.portlet.solid.purple-plum>.portlet-body,.portlet.solid.purple-plum>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-plum>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-plum>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-plum{border:1px solid #a294bb;border-top:0}.portlet.box.purple-plum>.portlet-title>.caption,.portlet.box.purple-plum>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-plum>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c3bad3;color:#d0c9dd}.portlet.box.purple-plum>.portlet-title>.actions .btn-default>i{color:#d8d2e3}.portlet.box.purple-plum>.portlet-title>.actions .btn-default.active,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:active,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:hover{border:1px solid #ded9e7;color:#ebe8f0}.dashboard-stat.purple-plum{background-color:#8775a7}.dashboard-stat.purple-plum.dashboard-stat-light:hover{background-color:#7c699f}.dashboard-stat.purple-plum .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-plum .details .number{color:#FFF}.dashboard-stat.purple-plum .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-plum .more{color:#FFF;background-color:#7c699f}.bg-purple-plum{border-color:#8775a7!important;background-image:none!important;background-color:#8775a7!important;color:#FFF!important}.font-purple-plum{color:#8775a7!important}.progress-bar.purple-plum{background:#8775a7!important;color:#FFF!important}.purple-medium.btn{color:#FFF;background-color:#BF55EC;border-color:""}.open .purple-medium.btn.dropdown-toggle,.purple-medium.btn.active,.purple-medium.btn:active,.purple-medium.btn:focus,.purple-medium.btn:hover{color:#FFF;background-color:#b335e8}.purple-medium.btn.active,.purple-medium.btn:active{background-image:none;background-color:#aa1ee6}.purple-medium.btn.active:hover,.purple-medium.btn:active:hover{background-color:#ae27e7}.open .purple-medium.btn.dropdown-toggle{background-image:none}.purple-medium.btn.disabled,.purple-medium.btn.disabled.active,.purple-medium.btn.disabled:active,.purple-medium.btn.disabled:focus,.purple-medium.btn.disabled:hover,.purple-medium.btn[disabled],.purple-medium.btn[disabled].active,.purple-medium.btn[disabled]:active,.purple-medium.btn[disabled]:focus,.purple-medium.btn[disabled]:hover,fieldset[disabled] .purple-medium.btn,fieldset[disabled] .purple-medium.btn.active,fieldset[disabled] .purple-medium.btn:active,fieldset[disabled] .purple-medium.btn:focus,fieldset[disabled] .purple-medium.btn:hover{background-color:#BF55EC}.purple-medium.btn .badge{color:#BF55EC;background-color:#FFF}.portlet.box.purple-medium>.portlet-title,.portlet.purple-medium,.portlet>.portlet-body.purple-medium{background-color:#BF55EC}.btn.purple-medium-stripe{border-left:3px solid #BF55EC}.portlet.solid.purple-medium>.portlet-body,.portlet.solid.purple-medium>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-medium>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-medium>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-medium{border:1px solid #d083f1;border-top:0}.portlet.box.purple-medium>.portlet-title>.caption,.portlet.box.purple-medium>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-medium>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #e5baf7;color:#eed1fa}.portlet.box.purple-medium>.portlet-title>.actions .btn-default>i{color:#f3dffb}.portlet.box.purple-medium>.portlet-title>.actions .btn-default.active,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:active,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:hover{border:1px solid #f6e8fc;color:#fff}.dashboard-stat.purple-medium{background-color:#BF55EC}.dashboard-stat.purple-medium.dashboard-stat-light:hover{background-color:#b843ea}.dashboard-stat.purple-medium .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-medium .details .number{color:#FFF}.dashboard-stat.purple-medium .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-medium .more{color:#FFF;background-color:#b843ea}.bg-purple-medium{border-color:#BF55EC!important;background-image:none!important;background-color:#BF55EC!important;color:#FFF!important}.font-purple-medium{color:#BF55EC!important}.progress-bar.purple-medium{background:#BF55EC!important;color:#FFF!important}.purple-studio.btn{color:#FFF;background-color:#8E44AD;border-color:""}.open .purple-studio.btn.dropdown-toggle,.purple-studio.btn.active,.purple-studio.btn:active,.purple-studio.btn:focus,.purple-studio.btn:hover{color:#FFF;background-color:#793a93}.purple-studio.btn.active,.purple-studio.btn:active{background-image:none;background-color:#6a3381}.purple-studio.btn.active:hover,.purple-studio.btn:active:hover{background-color:#703688}.open .purple-studio.btn.dropdown-toggle{background-image:none}.purple-studio.btn.disabled,.purple-studio.btn.disabled.active,.purple-studio.btn.disabled:active,.purple-studio.btn.disabled:focus,.purple-studio.btn.disabled:hover,.purple-studio.btn[disabled],.purple-studio.btn[disabled].active,.purple-studio.btn[disabled]:active,.purple-studio.btn[disabled]:focus,.purple-studio.btn[disabled]:hover,fieldset[disabled] .purple-studio.btn,fieldset[disabled] .purple-studio.btn.active,fieldset[disabled] .purple-studio.btn:active,fieldset[disabled] .purple-studio.btn:focus,fieldset[disabled] .purple-studio.btn:hover{background-color:#8E44AD}.purple-studio.btn .badge{color:#8E44AD;background-color:#FFF}.portlet.box.purple-studio>.portlet-title,.portlet.purple-studio,.portlet>.portlet-body.purple-studio{background-color:#8E44AD}.btn.purple-studio-stripe{border-left:3px solid #8E44AD}.portlet.solid.purple-studio>.portlet-body,.portlet.solid.purple-studio>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-studio>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-studio>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-studio{border:1px solid #a563c1;border-top:0}.portlet.box.purple-studio>.portlet-title>.caption,.portlet.box.purple-studio>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-studio>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #bf8ed3;color:#c9a1da}.portlet.box.purple-studio>.portlet-title>.actions .btn-default>i{color:#cfacde}.portlet.box.purple-studio>.portlet-title>.actions .btn-default.active,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:active,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:hover{border:1px solid #d4b3e1;color:#dec5e8}.dashboard-stat.purple-studio{background-color:#8E44AD}.dashboard-stat.purple-studio.dashboard-stat-light:hover{background-color:#823e9e}.dashboard-stat.purple-studio .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-studio .details .number{color:#FFF}.dashboard-stat.purple-studio .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-studio .more{color:#FFF;background-color:#823e9e}.bg-purple-studio{border-color:#8E44AD!important;background-image:none!important;background-color:#8E44AD!important;color:#FFF!important}.font-purple-studio{color:#8E44AD!important}.progress-bar.purple-studio{background:#8E44AD!important;color:#FFF!important}.purple-wisteria.btn{color:#FFF;background-color:#9B59B6;border-color:""}.open .purple-wisteria.btn.dropdown-toggle,.purple-wisteria.btn.active,.purple-wisteria.btn:active,.purple-wisteria.btn:focus,.purple-wisteria.btn:hover{color:#FFF;background-color:#8948a3}.purple-wisteria.btn.active,.purple-wisteria.btn:active{background-image:none;background-color:#7a4092}.purple-wisteria.btn.active:hover,.purple-wisteria.btn:active:hover{background-color:#804399}.open .purple-wisteria.btn.dropdown-toggle{background-image:none}.purple-wisteria.btn.disabled,.purple-wisteria.btn.disabled.active,.purple-wisteria.btn.disabled:active,.purple-wisteria.btn.disabled:focus,.purple-wisteria.btn.disabled:hover,.purple-wisteria.btn[disabled],.purple-wisteria.btn[disabled].active,.purple-wisteria.btn[disabled]:active,.purple-wisteria.btn[disabled]:focus,.purple-wisteria.btn[disabled]:hover,fieldset[disabled] .purple-wisteria.btn,fieldset[disabled] .purple-wisteria.btn.active,fieldset[disabled] .purple-wisteria.btn:active,fieldset[disabled] .purple-wisteria.btn:focus,fieldset[disabled] .purple-wisteria.btn:hover{background-color:#9B59B6}.purple-wisteria.btn .badge{color:#9B59B6;background-color:#FFF}.portlet.box.purple-wisteria>.portlet-title,.portlet.purple-wisteria,.portlet>.portlet-body.purple-wisteria{background-color:#9B59B6}.btn.purple-wisteria-stripe{border-left:3px solid #9B59B6}.portlet.solid.purple-wisteria>.portlet-body,.portlet.solid.purple-wisteria>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-wisteria>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-wisteria{border:1px solid #b07cc6;border-top:0}.portlet.box.purple-wisteria>.portlet-title>.caption,.portlet.box.purple-wisteria>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #caa7d8;color:#d5b9e0}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default>i{color:#dbc3e5}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default.active,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:active,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:hover{border:1px solid #dfcae8;color:#eadcf0}.dashboard-stat.purple-wisteria{background-color:#9B59B6}.dashboard-stat.purple-wisteria.dashboard-stat-light:hover{background-color:#924dae}.dashboard-stat.purple-wisteria .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-wisteria .details .number{color:#FFF}.dashboard-stat.purple-wisteria .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-wisteria .more{color:#FFF;background-color:#924dae}.bg-purple-wisteria{border-color:#9B59B6!important;background-image:none!important;background-color:#9B59B6!important;color:#FFF!important}.font-purple-wisteria{color:#9B59B6!important}.progress-bar.purple-wisteria{background:#9B59B6!important;color:#FFF!important}.purple-seance.btn{color:#FFF;background-color:#9A12B3;border-color:""}.open .purple-seance.btn.dropdown-toggle,.purple-seance.btn.active,.purple-seance.btn:active,.purple-seance.btn:focus,.purple-seance.btn:hover{color:#FFF;background-color:#7e0f93}.purple-seance.btn.active,.purple-seance.btn:active{background-image:none;background-color:#6a0c7b}.purple-seance.btn.active:hover,.purple-seance.btn:active:hover{background-color:#720d85}.open .purple-seance.btn.dropdown-toggle{background-image:none}.purple-seance.btn.disabled,.purple-seance.btn.disabled.active,.purple-seance.btn.disabled:active,.purple-seance.btn.disabled:focus,.purple-seance.btn.disabled:hover,.purple-seance.btn[disabled],.purple-seance.btn[disabled].active,.purple-seance.btn[disabled]:active,.purple-seance.btn[disabled]:focus,.purple-seance.btn[disabled]:hover,fieldset[disabled] .purple-seance.btn,fieldset[disabled] .purple-seance.btn.active,fieldset[disabled] .purple-seance.btn:active,fieldset[disabled] .purple-seance.btn:focus,fieldset[disabled] .purple-seance.btn:hover{background-color:#9A12B3}.purple-seance.btn .badge{color:#9A12B3;background-color:#FFF}.portlet.box.purple-seance>.portlet-title,.portlet.purple-seance,.portlet>.portlet-body.purple-seance{background-color:#9A12B3}.btn.purple-seance-stripe{border-left:3px solid #9A12B3}.portlet.solid.purple-seance>.portlet-body,.portlet.solid.purple-seance>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-seance>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-seance>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-seance{border:1px solid #c217e1;border-top:0}.portlet.box.purple-seance>.portlet-title>.caption,.portlet.box.purple-seance>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-seance>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #d349ed;color:#d960ef}.portlet.box.purple-seance>.portlet-title>.actions .btn-default>i{color:#dc6ef0}.portlet.box.purple-seance>.portlet-title>.actions .btn-default.active,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:active,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:hover{border:1px solid #de77f1;color:#e48ef4}.dashboard-stat.purple-seance{background-color:#9A12B3}.dashboard-stat.purple-seance.dashboard-stat-light:hover{background-color:#8a10a0}.dashboard-stat.purple-seance .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-seance .details .number{color:#FFF}.dashboard-stat.purple-seance .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-seance .more{color:#FFF;background-color:#8a10a0}.bg-purple-seance{border-color:#9A12B3!important;background-image:none!important;background-color:#9A12B3!important;color:#FFF!important}.font-purple-seance{color:#9A12B3!important}.progress-bar.purple-seance{background:#9A12B3!important;color:#FFF!important}.purple-intense.btn{color:#FFF;background-color:#8775a7;border-color:""}.open .purple-intense.btn.dropdown-toggle,.purple-intense.btn.active,.purple-intense.btn:active,.purple-intense.btn:focus,.purple-intense.btn:hover{color:#FFF;background-color:#746198}.purple-intense.btn.active,.purple-intense.btn:active{background-image:none;background-color:#685788}.purple-intense.btn.active:hover,.purple-intense.btn:active:hover{background-color:#6d5b8e}.open .purple-intense.btn.dropdown-toggle{background-image:none}.purple-intense.btn.disabled,.purple-intense.btn.disabled.active,.purple-intense.btn.disabled:active,.purple-intense.btn.disabled:focus,.purple-intense.btn.disabled:hover,.purple-intense.btn[disabled],.purple-intense.btn[disabled].active,.purple-intense.btn[disabled]:active,.purple-intense.btn[disabled]:focus,.purple-intense.btn[disabled]:hover,fieldset[disabled] .purple-intense.btn,fieldset[disabled] .purple-intense.btn.active,fieldset[disabled] .purple-intense.btn:active,fieldset[disabled] .purple-intense.btn:focus,fieldset[disabled] .purple-intense.btn:hover{background-color:#8775a7}.purple-intense.btn .badge{color:#8775a7;background-color:#FFF}.portlet.box.purple-intense>.portlet-title,.portlet.purple-intense,.portlet>.portlet-body.purple-intense{background-color:#8775a7}.btn.purple-intense-stripe{border-left:3px solid #8775a7}.portlet.solid.purple-intense>.portlet-body,.portlet.solid.purple-intense>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-intense>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-intense>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-intense{border:1px solid #a294bb;border-top:0}.portlet.box.purple-intense>.portlet-title>.caption,.portlet.box.purple-intense>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-intense>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c3bad3;color:#d0c9dd}.portlet.box.purple-intense>.portlet-title>.actions .btn-default>i{color:#d8d2e3}.portlet.box.purple-intense>.portlet-title>.actions .btn-default.active,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:active,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:hover{border:1px solid #ded9e7;color:#ebe8f0}.dashboard-stat.purple-intense{background-color:#8775a7}.dashboard-stat.purple-intense.dashboard-stat-light:hover{background-color:#7c699f}.dashboard-stat.purple-intense .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-intense .details .number{color:#FFF}.dashboard-stat.purple-intense .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-intense .more{color:#FFF;background-color:#7c699f}.bg-purple-intense{border-color:#8775a7!important;background-image:none!important;background-color:#8775a7!important;color:#FFF!important}.font-purple-intense{color:#8775a7!important}.progress-bar.purple-intense{background:#8775a7!important;color:#FFF!important}.purple-sharp.btn{color:#FFF;background-color:#796799;border-color:""}.open .purple-sharp.btn.dropdown-toggle,.purple-sharp.btn.active,.purple-sharp.btn:active,.purple-sharp.btn:focus,.purple-sharp.btn:hover{color:#FFF;background-color:#685884}.purple-sharp.btn.active,.purple-sharp.btn:active{background-image:none;background-color:#5c4e75}.purple-sharp.btn.active:hover,.purple-sharp.btn:active:hover{background-color:#61527b}.open .purple-sharp.btn.dropdown-toggle{background-image:none}.purple-sharp.btn.disabled,.purple-sharp.btn.disabled.active,.purple-sharp.btn.disabled:active,.purple-sharp.btn.disabled:focus,.purple-sharp.btn.disabled:hover,.purple-sharp.btn[disabled],.purple-sharp.btn[disabled].active,.purple-sharp.btn[disabled]:active,.purple-sharp.btn[disabled]:focus,.purple-sharp.btn[disabled]:hover,fieldset[disabled] .purple-sharp.btn,fieldset[disabled] .purple-sharp.btn.active,fieldset[disabled] .purple-sharp.btn:active,fieldset[disabled] .purple-sharp.btn:focus,fieldset[disabled] .purple-sharp.btn:hover{background-color:#796799}.purple-sharp.btn .badge{color:#796799;background-color:#FFF}.portlet.box.purple-sharp>.portlet-title,.portlet.purple-sharp,.portlet>.portlet-body.purple-sharp{background-color:#796799}.btn.purple-sharp-stripe{border-left:3px solid #796799}.portlet.solid.purple-sharp>.portlet-body,.portlet.solid.purple-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-sharp{border:1px solid #9486ad;border-top:0}.portlet.box.purple-sharp>.portlet-title>.caption,.portlet.box.purple-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b4aac6;color:#c2b9d0}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default>i{color:#cac3d6}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #cfc9db;color:#ddd8e5}.dashboard-stat.purple-sharp{background-color:#796799}.dashboard-stat.purple-sharp.dashboard-stat-light:hover{background-color:#6f5f8d}.dashboard-stat.purple-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-sharp .details .number{color:#FFF}.dashboard-stat.purple-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-sharp .more{color:#FFF;background-color:#6f5f8d}.bg-purple-sharp{border-color:#796799!important;background-image:none!important;background-color:#796799!important;color:#FFF!important}.font-purple-sharp{color:#796799!important}.progress-bar.purple-sharp{background:#796799!important;color:#FFF!important}.purple-soft.btn{color:#FFF;background-color:#8877a9;border-color:""}.open .purple-soft.btn.dropdown-toggle,.purple-soft.btn.active,.purple-soft.btn:active,.purple-soft.btn:focus,.purple-soft.btn:hover{color:#FFF;background-color:#75629b}.purple-soft.btn.active,.purple-soft.btn:active{background-image:none;background-color:#69588b}.purple-soft.btn.active:hover,.purple-soft.btn:active:hover{background-color:#6e5c91}.open .purple-soft.btn.dropdown-toggle{background-image:none}.purple-soft.btn.disabled,.purple-soft.btn.disabled.active,.purple-soft.btn.disabled:active,.purple-soft.btn.disabled:focus,.purple-soft.btn.disabled:hover,.purple-soft.btn[disabled],.purple-soft.btn[disabled].active,.purple-soft.btn[disabled]:active,.purple-soft.btn[disabled]:focus,.purple-soft.btn[disabled]:hover,fieldset[disabled] .purple-soft.btn,fieldset[disabled] .purple-soft.btn.active,fieldset[disabled] .purple-soft.btn:active,fieldset[disabled] .purple-soft.btn:focus,fieldset[disabled] .purple-soft.btn:hover{background-color:#8877a9}.purple-soft.btn .badge{color:#8877a9;background-color:#FFF}.portlet.box.purple-soft>.portlet-title,.portlet.purple-soft,.portlet>.portlet-body.purple-soft{background-color:#8877a9}.btn.purple-soft-stripe{border-left:3px solid #8877a9}.portlet.solid.purple-soft>.portlet-body,.portlet.solid.purple-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-soft{border:1px solid #a396bd;border-top:0}.portlet.box.purple-soft>.portlet-title>.caption,.portlet.box.purple-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c4bcd4;color:#d2cbde}.portlet.box.purple-soft>.portlet-title>.actions .btn-default>i{color:#dad5e4}.portlet.box.purple-soft>.portlet-title>.actions .btn-default.active,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:active,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #dfdbe8;color:#edebf2}.dashboard-stat.purple-soft{background-color:#8877a9}.dashboard-stat.purple-soft.dashboard-stat-light:hover{background-color:#7d6ba1}.dashboard-stat.purple-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-soft .details .number{color:#FFF}.dashboard-stat.purple-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-soft .more{color:#FFF;background-color:#7d6ba1}.bg-purple-soft{border-color:#8877a9!important;background-image:none!important;background-color:#8877a9!important;color:#FFF!important}.font-purple-soft{color:#8877a9!important}.progress-bar.purple-soft{background:#8877a9!important;color:#FFF!important}.btn-transparent.btn{background:0 0;color:#888}@-moz-keyframes whirly-loader{0%{-moz-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes whirly-loader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes whirly-loader{0%{-moz-transform:rotate(0);-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.whirly-loader:not(:required){overflow:hidden;position:relative;text-indent:-9999px;display:inline-block;width:8px;height:8px;background:0 0;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;-moz-box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;-webkit-box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;-moz-animation:whirly-loader 1.25s infinite linear;-webkit-animation:whirly-loader 1.25s infinite linear;animation:whirly-loader 1.25s infinite linear;-moz-transform-origin:50% 50%;-ms-transform-origin:50% 50%;-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.checker{width:19px;height:19px}.collapse.am-collapse{animation-duration:.3s;animation-timing-function:ease;animation-fill-mode:backwards;overflow:hidden}.message-info{float:right;color:#d3d3d3;margin-right:5px}[ui-view].ng-enter{-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s}.steps,.steps-indicator{padding-bottom:20px!important}.ui-sortable,.ui-sortable-handle{cursor:move}.page-header.navbar .search-form .input-group .form-control:hover,.pointer-cursor,button.close{cursor:pointer}.mbottom20,.step .btn:not(.ui-select-toggle,.remove-condition){margin-bottom:10px}button.close{padding:0;background:0 0;border:0;-webkit-appearance:none}.close{font-size:21px;font-weight:700;line-height:1;color:#000;opacity:.2;filter:alpha(opacity=20)}.alert{padding:15px!important;margin-bottom:20px!important;border:1px solid transparent!important;border-radius:4px!important}.alert h4{margin-top:0!important;color:inherit!important}.alert .alert-link{font-weight:700!important}.alert>p,.alert>ul{margin-bottom:0!important}.alert>p+p{margin-top:5px!important}.alert-dismissable,.alert-dismissible{padding-right:35px!important}.alert-dismissable .close,.alert-dismissible .close{position:relative!important;top:-2px!important;right:-21px!important;color:inherit!important}.alert-success{background-color:#dff0d8!important;border-color:#d6e9c6!important;color:#3c763d!important}.alert-success hr{border-top-color:#c9e2b3!important}.alert-success .alert-link{color:#2b542c!important}.alert-info{background-color:#d9edf7!important;border-color:#bce8f1!important;color:#31708f!important}.alert-info hr{border-top-color:#a6e1ec!important}.alert-info .alert-link{color:#245269!important}.alert-warning{background-color:#fcf8e3!important;border-color:#faebcc!important;color:#8a6d3b!important}.alert-warning hr{border-top-color:#f7e1b5!important}.alert-warning .alert-link{color:#66512c!important}.alert-danger{background-color:#f2dede!important;border-color:#ebccd1!important;color:#a94442!important}.alert-danger hr{border-top-color:#e4b9c0!important}.alert-danger .alert-link{color:#843534!important}.alert .close{text-indent:inherit!important;background-image:none!important;width:auto!important}.page-404 .number{position:relative;top:35px;display:inline-block;letter-spacing:-10px;margin-top:0;margin-bottom:10px;line-height:128px;font-size:128px;font-weight:300;color:#7bbbd6;text-align:right}.page-404 .details{margin-left:40px;display:inline-block;padding-top:0;text-align:left}.sounds-title-icon{font-size:17px}.ui-select-multiple input.ui-select-search{width:100%!important}.modal.fade,.over-topbar{z-index:9996!important}.list-group-item-custom{border:none}.select-group-father{font-weight:700!important}.select-group-son{font-style:italic!important}@media (max-height:908px){.modal-body-scroll{max-height:325px;overflow-y:scroll}}.widget .dashboard-stat{margin-bottom:0!important}.widget .panel-body{padding:0}.left-margin{margin-left:20px}.page-header.navbar{background-color:#2b3643}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle>i{color:#79869a}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle .badge.badge-default{background-color:#1caf9a;color:#fff}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle{background-color:#3f4f62}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle:hover>i,.page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle>i{color:#a4aebb}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu{border-color:#e7eaf0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu:after{border-bottom-color:#eaedf2}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external{background:#eaedf2}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>h3{color:#62878f}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a{color:#5b9bd1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a:hover{color:#3175af;text-decoration:underline}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a{border-bottom:1px solid #EFF2F6!important;color:#888}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a:hover{background:#f8f9fa}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li>a .time{background:#f1f1f1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li>a:hover .time{background:#e4e4e4}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-toggle>.circle{background-color:#1caf9a;color:#fff}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-toggle>.corner{border-color:transparent transparent transparent #1caf9a}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu .dropdown-menu-list .subject .from{color:#5b9bd1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>.langname,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-toggle>.username,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-toggle>i{color:#c6cfda}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list .progress{background-color:#dfe2e9}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-menu{width:195px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu{background:#3f4f62;border:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu:after{border-bottom-color:#3f4f62}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external{background:#2f3b49}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external>h3{color:#adbaca}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external>a:hover{color:#87b6dd}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a{color:#bcc7d4;border-bottom:1px solid #4b5e75!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a>i,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a>i{color:#9dadc0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a:hover{background:#47596e}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a{border-bottom:0!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li.divider{background:#4b5e75}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list>li>a .time{background:#354353}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list>li>a:hover .time{background:#2b3643}.page-header.navbar .search-form{background:#232c37}.page-header.navbar .search-form.open,.page-header.navbar .search-form:hover{background:#3f4f62}.page-header.navbar .search-form .input-group .form-control{color:#959fad}.page-header.navbar .search-form .input-group .form-control::-moz-placeholder{color:#929cab;opacity:1}.page-header.navbar .search-form .input-group .form-control:-ms-input-placeholder{color:#929cab}.page-header.navbar .search-form .input-group .form-control::-webkit-input-placeholder{color:#929cab}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit>i{color:#959fad}.page-header.navbar .menu-toggler{background-image:url(../../assets/images/sidebar_toggler_icon_darkblue.png)}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{box-shadow:5px 5px rgba(63,79,98,.2)}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3,.page-header.navbar .hor-menu .navbar-nav>li>a{color:#c6cfda}.page-header.navbar .hor-menu .navbar-nav>li>a>i{color:#788ea8}.page-header.navbar .hor-menu .navbar-nav>li.open>a,.page-header.navbar .hor-menu .navbar-nav>li>a:hover{color:#d5dce4;background:#3f4f62!important}.page-header.navbar .hor-menu .navbar-nav>li.open>a>i,.page-header.navbar .hor-menu .navbar-nav>li>a:hover>i{color:#889bb2}.page-header.navbar .hor-menu .navbar-nav>li.active>a,.page-header.navbar .hor-menu .navbar-nav>li.current>a{color:#fff;background:#1caf9a!important}.page-header.navbar .hor-menu .navbar-nav>li.active>a>i,.page-header.navbar .hor-menu .navbar-nav>li.current>a>i{color:#788ea8}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu{box-shadow:5px 5px rgba(63,79,98,.2);background:#3f4f62}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a>i{color:#c6cfda}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li:hover>a{color:#f1f3f6;background:#47596e}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li:hover>a>i{color:#f1f3f6}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a:hover,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a:hover{color:#f1f3f6;background:#47596e}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a:hover>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a:hover>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a>i{color:#f1f3f6}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.divider{background-color:#495c72}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>a:after{color:#c6cfda}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{box-shadow:5px 5px rgba(102,102,102,.1)}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a{color:#c6cfda}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a>i{color:#788ea8}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a:hover{color:#d5dce4;background:#3f4f62}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a:hover>i{color:#889bb2}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.open>a{color:#333!important;background:#fff!important}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.open>a>i{color:#333!important}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a:hover,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a:hover{color:#fff;background:#1caf9a}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a>i{color:#788ea8}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu{box-shadow:5px 5px rgba(102,102,102,.1);background:#fff;border:1px solid #efeff5}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li>a{color:#000}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li>a>i{color:#888}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li:hover>a{color:#000;background:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li:hover>a>i{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a:hover,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a:hover{color:#000;background:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a>i{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.divider{background-color:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>.dropdown-menu{border-top:0}.page-sidebar,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover{background-color:#364150}.page-sidebar .page-sidebar-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{color:#b4bcc8}.page-sidebar .page-sidebar-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu>li>a>i[class*=icon-],.page-sidebar .page-sidebar-menu>li>a>i[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i[class*=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i[class^=icon-]{color:#6b788b}.page-sidebar .page-sidebar-menu>li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu>li.heading>h3,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading>h3{color:#708096}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar .page-sidebar-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a{background:#2C3542;color:#b4bcc8}.page-sidebar .page-sidebar-menu>li.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.open>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.open>a>i,.page-sidebar .page-sidebar-menu>li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li:hover>a>.arrow:before,.page-sidebar .page-sidebar-menu>li:hover>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu>li.active.open>a,.page-sidebar .page-sidebar-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a{background:#1caf9a;border-top-color:transparent;color:#fff}.page-sidebar .page-sidebar-menu>li.active.open>a:hover,.page-sidebar .page-sidebar-menu>li.active>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a:hover{background:#1caf9a}.page-sidebar .page-sidebar-menu>li.active.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.active.open>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.active.open>a>i,.page-sidebar .page-sidebar-menu>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>i{color:#fff}.page-sidebar .page-sidebar-menu>li.active+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active+li>a{border-top-color:transparent}.page-sidebar .page-sidebar-menu>li.active.open+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open+li>a{border-top-color:#3d4957}.page-sidebar .page-sidebar-menu>li:last-child>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:last-child>a{border-bottom:1px solid transparent!important}.page-sidebar .page-sidebar-menu li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li:hover>a>.arrow:before,.page-sidebar .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>a>.arrow:before{color:#fff}.page-sidebar-closed .page-sidebar .page-sidebar-menu:hover .sub-menu,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu:hover .sub-menu{background-color:#364150}.page-sidebar .page-sidebar-menu .sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a{color:#b4bcc8}.page-sidebar .page-sidebar-menu .sub-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu .sub-menu>li>a>i[class*=icon-],.page-sidebar .page-sidebar-menu .sub-menu>li>a>i[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i[class*=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i[class^=icon-]{color:#6b788b}.page-sidebar .page-sidebar-menu .sub-menu>li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a{background:#3e4b5c!important}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>i,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>i,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>i{color:#959fae}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>.arrow:before,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li:hover>a{background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a{background:#3e4b5c;border-left:4px solid #1caf9a;color:#f1f1f1}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover{border-left:4px solid #1caf9a;background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>i,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>i{color:#eee}.page-sidebar .sidebar-search .input-group .input-group-btn .btn>i,.page-sidebar-closed .page-sidebar .sidebar-search.open .remove>i,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .remove>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn>i{color:#4e5c6f}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a{background:#3e4b5c!important}.page-sidebar .sidebar-toggler,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler{background:url(../assets/images/sidebar_inline_toggler_icon_darkblue.jpg)}.page-sidebar .sidebar-search .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group{border-bottom:1px solid #435060}.page-sidebar .sidebar-search .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control{background-color:#364150;color:#4e5c6f}.page-sidebar .sidebar-search .input-group .form-control::-moz-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-moz-placeholder{color:#4e5c6f;opacity:1}.page-sidebar .sidebar-search .input-group .form-control:-ms-input-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control:-ms-input-placeholder{color:#4e5c6f}.page-sidebar .sidebar-search .input-group .form-control::-webkit-input-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-webkit-input-placeholder{color:#4e5c6f}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group{border:1px solid #435060}.page-sidebar-closed .page-sidebar .sidebar-search.open .input-group,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .input-group{background-color:#364150}.page-sidebar-closed .page-sidebar .sidebar-search.sidebar-search-solid .input-group,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group{background:0 0}.page-sidebar .sidebar-search.sidebar-search-solid .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group{border:1px solid #2c3541;background:#2c3541}.page-sidebar .sidebar-search.sidebar-search-solid .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group .form-control{background:#2c3541}.page-sidebar .sidebar-search.sidebar-search-solid.open .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group{border:1px solid #364150;background:#364150}.page-sidebar .sidebar-search.sidebar-search-solid.open .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group .form-control{background:#364150}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover{border-left:0;border-right:4px solid #1caf9a}.page-quick-sidebar-wrapper,.page-quick-sidebar-wrapper .page-quick-sidebar{background:#435468}.page-quick-sidebar-toggler{background:#576d87}.page-quick-sidebar-toggler:hover{background:#51667e}.page-quick-sidebar-toggler>i,.page-quick-sidebar-wrapper{color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a:hover{background:#4d6178}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li.open>a{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li.active>a{border:0;background:#435468}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu{border:0;background:#576d87;box-shadow:5px 5px rgba(142,160,182,.1)}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:after,.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:before{border-bottom:7px solid #576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a{color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a>i{color:#ccd1d9}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a:hover{background:#5d7591;color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a:hover>i{color:#d4d9e0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li.active>a{background:#59708a;color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li.divider{background-color:#5d7591}.page-quick-sidebar-wrapper .page-quick-sidebar .list-heading{color:#a5afbd}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li{border-bottom-color:#495c72}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li:hover{background:#495c72}.page-quick-sidebar-wrapper .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list{color:#c9ced7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group{border-bottom:1px solid #435060}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .form-control{background-color:#435468;color:#c9ced7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub{color:#9ca7b7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small{color:#919cae}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime,.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name{color:#bdc4ce}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow{border-right-color:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow{border-left-color:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a{color:#b7bfca}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .desc{text-decoration:underline}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .desc{color:#b1b9c6}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .date{color:#919cae}.page-footer .page-footer-inner{color:#98a6ba}.page-footer-fixed .page-footer{background-color:#28303b}@media (min-width:992px){.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-closed>li:hover{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-closed>li:hover.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-closed>li:hover.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li.heading{padding:0;margin-top:15px;margin-bottom:15px;border-top:1px solid #3d4957!important}.page-sidebar-fixed:not(.page-footer-fixed) .page-content{border-bottom:0}.page-sidebar-fixed:not(.page-footer-fixed) .page-footer{background-color:#fff}.page-sidebar-fixed:not(.page-footer-fixed) .page-footer .page-footer-inner{color:#333}.page-boxed{background-color:#303a47!important}.page-boxed .page-container{background-color:#364150;border-left:1px solid #3d4957;border-bottom:1px solid #3d4957}.page-boxed.page-sidebar-reversed .page-container{border-left:0;border-right:1px solid #3d4957}.page-boxed.page-sidebar-fixed .page-container{border-left:0;border-bottom:0}.page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container{border-left:0;border-right:0;border-bottom:0}.page-boxed.page-sidebar-fixed .page-sidebar{border-left:1px solid #3d4957}.page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar{border-right:1px solid #3d4957;border-left:0}.page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer{background-color:#303a47!important}.page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer .page-footer-inner{color:#98a6ba}.page-sidebar-menu-hover-submenu li:hover a>.arrow{border-right:8px solid #323c4b}.page-sidebar-reversed .page-sidebar-menu-hover-submenu li:hover a>.arrow{border-left:8px solid #323c4b}.page-sidebar-menu-hover-submenu li:hover>.sub-menu{background:#323c4b!important}}.pace .pace-progress-inner,.page-header.navbar,.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .progress .progress-bar{box-shadow:none}@media (max-width:991px){.page-sidebar{background-color:#28303b}.page-sidebar .page-sidebar-menu>li>a{border-top:1px solid #364150}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar .page-sidebar-menu>li:hover>a{background:#2e3744}.page-sidebar .page-sidebar-menu>li:last-child>a{border-bottom:0!important}.page-sidebar .page-sidebar-menu .sidebar-search input,.page-sidebar .page-sidebar-menu>li .sub-menu{background-color:#28303b!important}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li:hover>a{background:#2e3744}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{background:#28303b!important}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a{background:#2e3744!important}}@media (max-width:480px){.page-header.navbar .top-menu{background-color:#364150}.page-header-fixed-mobile .page-header.navbar .top-menu{background-color:#2b3643}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{background-color:#415265}.page-header-fixed-mobile .page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{background:0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle:hover{background-color:#3f4f62}}body{background-color:#364150}.block-spinner-bar>div,.page-spinner-bar>div{background:#20c5ad}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTQzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTQ7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTSGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTZ6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTfy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTfgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTYjoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/TCmDhmS1RRL7aqhqZW19hwLUuEpTyoUstqEm5AMlJo4.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/K88pR3goAWT7BTt32Z01m4X0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/RjgO7rYTmqiVp7vzi-Q5UYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/ttwNtsRpgsxVmgGGmiUOEoX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/LWCjsQkB6EMdfHrEVqA1KYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/xozscpT2726on7jbcb_pAoX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/59ZRklaO5bWGqF5A9baEEYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/u-WUoqrET9fUeobQW7jkRYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSgzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSg7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSiGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSp6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSvy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSvgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSojoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzAzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzA7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzCGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzJ6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzPy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzPgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzIjoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@media print{body{background-color:#fff!important}.hidden-print,.page-bar,.page-footer,.page-quick-sidebar-wrapper,.page-sidebar-wrapper,.theme-panel{display:none}.no-page-break{page-break-after:avoid}.page-container{margin:0!important;padding:0!important}.page-content{min-height:300px!important;padding:0 20px 20px!important;margin:0!important}}.page-header.navbar{width:100%;margin:0;border:0;padding:0;height:46px;min-height:46px;filter:none;background-image:none}.page-header.navbar.navbar-fixed-top,.page-header.navbar.navbar-static-top{z-index:9995}.page-header.navbar .page-logo{float:left;display:block;width:235px;height:46px;padding-left:20px;padding-right:20px}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo{padding:0}.page-header.navbar .page-logo>.logo-image,.page-header.navbar .page-logo>a{display:inline-block;float:left}.page-header.navbar .page-logo .logo-default{margin:16px 0 0}.page-header.navbar .page-logo .logo-mini{display:none;margin-left:5px}.page-header.navbar .page-logo .text-logo{padding-left:20px;padding-top:12px}.page-header.navbar .search-form{display:inline-block;width:46px;position:relative;float:left;transition:all .6s}.page-header.navbar .search-form .input-group .form-control{height:46px;border:0;background:0 0!important;font-size:13px;padding-left:0;margin-left:12px;text-indent:-150000px}.page-header.navbar .search-form .input-group .input-group-btn{height:46px}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit{margin-left:-24px;padding:0;width:46px;background:0 0;margin-top:4px;display:block}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit>i{font-size:15px}.page-header.navbar .search-form.open{transition:all .6s;width:300px!important}.page-header.navbar .search-form.open .input-group .form-control{text-indent:0}.page-header.navbar .search-form.open .input-group .form-control:hover{cursor:text}.page-header.navbar .search-form.open .input-group .input-group-btn .btn.submit{margin-left:0}.page-header.navbar .menu-toggler{display:block;cursor:pointer;opacity:.7;filter:alpha(opacity=70);width:24px;height:24px;background-repeat:no-repeat;background-position:center center}.page-header.navbar .menu-toggler:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a:hover{opacity:1;filter:alpha(opacity=100)}.page-header.navbar .menu-toggler.sidebar-toggler{float:right;margin:11px 0 0}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .menu-toggler.sidebar-toggler{margin-right:10.5px}.page-header.navbar .menu-toggler.responsive-toggler{display:none;float:right;margin:11px 6px 0}.page-header.navbar .top-menu{margin:0;padding:0;float:right}.page-header.navbar .top-menu .navbar-nav{padding:0;margin-right:20px;display:block}.page-header.navbar .top-menu .navbar-nav>li.dropdown{margin:0;padding:0 4px;height:46px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown:last-child{padding-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle{margin:0;padding:17px 10px 9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle:last-child{padding-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>i{font-size:17px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>i.glyphicon{font-size:16px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>.badge{font-family:"Open Sans",sans-serif;position:absolute;top:10px;right:20px;font-weight:300px;padding:3px 6px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle:focus{background:0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu{margin-top:3px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu:before{position:absolute;top:-7px;right:9px;display:inline-block!important;border-right:7px solid transparent;border-bottom:7px solid #eee;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu:after{position:absolute;top:-6px;right:10px;display:inline-block!important;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu>li>a{color:#555}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu{min-width:160px;max-width:275px;width:275px;z-index:9995}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external{display:block;overflow:hidden;padding:15px;letter-spacing:.5px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>h3{margin:0;padding:0;float:left;font-size:13px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a{display:inline-block;padding:0;background:0 0;clear:inherit;font-size:13px;font-weight:300;position:absolute;right:10px;border:0;margin-top:-1px}.page-bar:after,.page-container:after,.page-footer:after,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after,.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:after{clear:both}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list{padding-right:0!important;padding-left:0;list-style:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a{display:block;clear:both;font-weight:300;line-height:20px;white-space:normal;font-size:13px;padding:16px 15px 18px;text-shadow:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li:first-child a{border-top:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details{overflow:hidden}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon{margin-right:10px;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon i{margin-right:2px;margin-left:1px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon .badge{right:15px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .time{float:right;max-width:75px;font-size:11px;font-weight:400;opacity:.7;filter:alpha(opacity=70);text-align:right;padding:1px 5px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .photo{float:left;margin:0 6px 6px 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .photo img{height:40px;width:40px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;-ms-border-radius:50%!important;-o-border-radius:50%!important;border-radius:50%!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject{display:block;margin-left:46px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject .from{font-size:13px;font-weight:600}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject .time{font-size:12px;font-weight:400;opacity:.5;filter:alpha(opacity=50);float:right}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .message{display:block!important;font-size:12px;line-height:1.3;margin-left:46px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task{margin-bottom:5px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task .desc{font-size:13px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task .percent{float:right;font-weight:600;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .progress{display:block;height:8px;margin:8px 0 2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{padding:14px 6px 12px 8px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>.username{display:inline-block;font-size:13px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>img{float:left;margin-top:-5px;margin-right:5px;height:29px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>i{display:inline-block;margin:0;font-size:13px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu{width:175px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a{font-size:14px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a i{width:15px;display:inline-block;margin-right:9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a .badge{margin-right:10px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language{padding-left:0;padding-right:0;margin:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle{padding:14px 3px 12px 7px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>img{margin-bottom:2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>i{font-size:14px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-menu>li>a{font-size:13px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-menu>li>a>img{margin-bottom:2px;margin-right:5px}.page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu:before{border-left:none;border-right:none}.page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu .dropdown-menu-list>li.external a{background:0 0!important;border:none!important}@media (min-width:768px){.page-header.navbar .search-form.search-form-expanded{width:200px}.page-header.navbar .search-form.search-form-expanded .input-group .form-control{text-indent:0}.page-header.navbar .search-form.search-form-expanded .input-group .form-control:hover{cursor:text}.page-header.navbar .search-form.search-form-expanded .input-group .input-group-btn .btn.submit{margin-left:0}}.page-header.navbar .container{position:relative}.page-header.navbar .hor-menu .navbar-nav,.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown{position:static}.page-header.navbar .hor-menu{margin:0;float:left}.page-header.navbar .hor-menu .navbar-nav.navbar-right .dropdown-menu{left:auto;right:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{left:auto;width:auto}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content{font-family:"Open Sans",sans-serif;padding:15px;margin:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content.mega-menu-responsive-content{padding:10px 18px 10px 45px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu{padding:0;margin:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu:last-child{border-right:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li{padding:1px!important;margin:0!important;list-style:none}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3{margin-top:5px;padding-left:6px;font-size:15px;font-weight:400}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a{white-space:normal;font-family:"Open Sans",sans-serif;padding:7px;margin:0;font-size:14px;font-weight:300}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a.iconify{padding:7px 7px 7px 30px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a.iconify>i{position:absolute;top:auto!important;margin-left:-24px;font-size:15px;margin-top:3px!important}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a .badge,.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a .label{margin-left:5px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown.mega-menu-full .dropdown-menu{left:20px;right:20px}.page-header.navbar .hor-menu .navbar-nav>li.menu-dropdown .dropdown-menu:after,.page-header.navbar .hor-menu .navbar-nav>li.menu-dropdown .dropdown-menu:before{display:none!important}.page-header.navbar .hor-menu .navbar-nav>li>a{font-size:14px;font-weight:400;padding:13px}.page-header.navbar .hor-menu .navbar-nav>li>a:focus{background:0 0!important}.page-header.navbar .hor-menu .navbar-nav>li.active .selected,.page-header.navbar .hor-menu .navbar-nav>li.current .selected{left:50%;bottom:0;position:absolute;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid transparent;display:inline-block;margin:0 0 -6px -7px;width:0;height:0}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu{margin-top:0;border:none}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a{font-family:"Open Sans",sans-serif;font-size:14px;font-weight:300;padding:9px 10px;white-space:normal}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a .badge,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a .label{font-weight:300}.page-header.navbar .hor-menu .navbar-nav>li.classic-menu-dropdown .dropdown-menu{min-width:195px;max-width:235px}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>.dropdown-menu{top:0}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>a:after{top:9px;right:10px}@media (min-width:992px) and (max-width:1200px){.page-boxed .page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle .langname,.page-boxed .page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile{display:none}}@media (min-width:992px){.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo{padding:0;width:45px}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo .logo-default{display:none}.page-boxed .page-header.navbar .page-logo{width:236px}.page-boxed .page-header.navbar .top-menu .navbar-nav{margin-right:0}.page-sidebar-closed.page-sidebar-closed-hide-logo.page-boxed .page-header.navbar .page-logo{width:46px}.page-boxed.page-sidebar-fixed .page-header.navbar .page-logo{width:235px}}@media (max-width:991px){.page-header.navbar{padding:0 20px;position:relative;clear:both}.page-header.navbar .page-logo{width:auto;padding:0;margin-right:10px;margin-left:0!important;padding-left:0!important}.page-header.navbar .page-logo img{margin-left:4px!important}.page-header.navbar .menu-toggler.sidebar-toggler{display:none!important}.page-header.navbar .menu-toggler.responsive-toggler{display:inline-block}.page-header.navbar .top-menu .navbar-nav{display:inline-block;margin:0 10px 0 0}.page-header.navbar .top-menu .navbar-nav>li{float:left}.page-header.navbar .top-menu .navbar-nav .nav li.dropdown i{display:inline-block;position:relative;top:1px;right:0}.page-header.navbar .top-menu .navbar-nav .open .dropdown-menu{position:absolute}.page-header-fixed.page-header-fixed-mobile .navbar-fixed-top{position:fixed}.page-boxed .page-header.navbar>.container{max-width:none!important;margin:0!important;padding:0!important}}@media (min-width:768px) and (max-width:991px){.page-boxed .page-header.navbar{margin:auto!important;padding:0}.page-boxed .page-header.navbar>.container{margin:auto!important}}@media (max-width:767px){.page-header.navbar{padding:0 10px}.page-header.navbar .page-logo{width:auto}.page-header.navbar .search-form.open{z-index:3;left:10px;right:10px;position:absolute;width:auto!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended>.dropdown-menu{max-width:255px;width:255px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu{margin-right:-190px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu:before{margin-right:190px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu{margin-right:-150px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu:before{margin-right:150px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu{margin-right:-110px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu:before{margin-right:110px}}@media (max-width:580px){.page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle .langname,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile{display:none}}@media (max-width:480px){.page-header-fixed.page-header-fixed-mobile .page-header.navbar{height:92px}.page-header.navbar .top-menu{display:block;clear:both}.page-header.navbar .top-menu .navbar-nav{margin-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle{padding:17px 6px 9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle{padding:14px 4px 12px 2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{padding:14px 0 12px 2px}}.pace .pace-progress{z-index:10000;top:44px;height:2px}.pace .pace-activity{top:48px;right:22px;border-radius:10px!important}.page-container{margin:0;padding:0;position:relative}.page-container:after,.page-container:before{content:" ";display:table}.page-header-fixed .page-container{margin-top:46px}.page-footer-fixed.page-footer-fixed-mobile .page-container{margin-bottom:20px!important}@media (min-width:992px){.page-footer-fixed .page-container{margin-bottom:20px!important}}@media (max-width:991px){.page-container{margin:0!important;padding:0!important}.page-header-fixed.page-header-fixed-mobile .page-container{margin-top:46px!important}}@media (max-width:480px){.page-header-fixed .pace .pace-progress{top:92px}.page-header-fixed .pace .pace-activity{top:188px;right:15px}.page-header-fixed.page-header-fixed-mobile .page-container{margin-top:92px!important}}.ie8 .page-sidebar{width:235px;float:left;position:relative;margin-right:-100%}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover.navbar-collapse,.page-sidebar.navbar-collapse{padding:0;box-shadow:none}.page-sidebar .page-sidebar-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu{list-style:none;margin:0;padding:0}.page-sidebar .page-sidebar-menu>li,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li{display:block;margin:0;padding:0;border:0}.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper{border:0!important}.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:before,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:before{content:" ";display:table}.page-sidebar .page-sidebar-menu>li.start>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.start>a{border-top-color:transparent!important}.page-sidebar .page-sidebar-menu>li.last>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.last>a{border-bottom-color:transparent!important}.page-sidebar .page-sidebar-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{display:block;position:relative;margin:0;border:0;padding:10px 15px;text-decoration:none;font-size:14px;font-weight:300}.page-sidebar .page-sidebar-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i{font-size:16px;margin-right:5px;text-shadow:none}.page-sidebar .page-sidebar-menu>li>a>i.glyphicon,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i.glyphicon{top:3px;margin-left:1px;margin-right:4px}.page-sidebar .page-sidebar-menu>li>a>[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>[class^=icon-]{top:2px;margin-left:1px;margin-right:4px}.page-sidebar-fixed .page-sidebar .page-sidebar-menu>li>a,.page-sidebar-fixed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{transition:all .2s ease}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar .page-sidebar-menu>li>a,.page-sidebar-reversed.page-sidebar-fixed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{transition:none}.page-sidebar .page-sidebar-menu>li.heading,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading{padding:15px}.page-sidebar .page-sidebar-menu>li.heading>h3,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading>h3{margin:0;padding:0;font-size:14px;font-weight:300}.page-sidebar .page-sidebar-menu>li.heading+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading+li>a{border-top:0}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a{font-size:14px}.page-sidebar .page-sidebar-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a{border:none;text-shadow:none;font-size:14px}.page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{display:block;float:right;position:absolute;right:0;top:8px;background:0 0;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-right:12px solid #fff}.page-sidebar-reversed .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{right:auto;left:0;border-right:0;border-left:8px solid #fff}.page-container-bg-solid .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-container-bg-solid .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{border-color:transparent #F1F3FA transparent transparent}.page-container-bg-solid.page-sidebar-reversed .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-container-bg-solid.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{border-color:transparent transparent transparent #F1F3FA}.page-sidebar .page-sidebar-menu li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow:before{float:right;width:10px;text-align:center;margin-top:-1px;margin-right:5px;margin-left:5px;display:inline;font-size:16px;font-family:FontAwesome;height:auto;content:"\f104";font-weight:300;text-shadow:none}.page-sidebar .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow.open:before{content:"\f107"}.page-sidebar .page-sidebar-menu li>a>.badge,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.badge{float:right;margin-top:1px;margin-right:0}.page-sidebar .page-sidebar-menu .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu{list-style:none;display:none;padding:0;margin:8px 0}.page-sidebar .page-sidebar-menu .sub-menu li,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li{background:0 0;margin:0;padding:0;margin-top:1px!important}.page-sidebar .page-sidebar-menu .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a{display:block;margin:0;padding:6px 15px 6px 43px;text-decoration:none;font-size:14px;font-weight:300;background:0 0}.page-sidebar .page-sidebar-menu .sub-menu li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a>i{font-size:14px}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu{margin:0}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>a{padding-left:60px}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu{margin:0}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a{padding-left:80px}.page-sidebar .page-sidebar-menu li.active>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>.sub-menu{display:block}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a{border:0;margin:0;padding-left:11px;border-left:4px solid transparent}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{margin:0;padding:1px 0}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li>a{padding-top:8px;padding-bottom:8px}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child{margin-top:0!important}.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a{padding-left:15px;padding-right:11px;border-left:0;border-right:4px solid transparent}.page-sidebar .sidebar-toggler,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler{display:block;cursor:pointer;opacity:.7;filter:alpha(opacity=70);width:30px;height:27px;margin-top:15px;margin-right:19px;float:right;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-toggler:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler:hover{filter:alpha(opacity=100);opacity:1}.page-sidebar .sidebar-search,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search{padding:0;margin:22px 18px}.page-sidebar .sidebar-search .remove,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove{display:none}.page-sidebar .sidebar-search .remove>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove>i{font-size:16px}.page-sidebar .sidebar-search .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-search .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control{border:0;font-size:14px;padding:0;height:auto;line-height:auto;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-search .input-group .input-group-btn .btn,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn{padding:2px 0 0;background-color:transparent;background-repeat:no-repeat;background-position:100% 3px}.page-sidebar .sidebar-search .input-group .input-group-btn .btn>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn>i{font-size:15px}.page-sidebar .sidebar-search.sidebar-search-bordered,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered{margin:25px 18px}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .form-control{font-size:13px;padding:6px 8px}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn{margin-right:6px}@media (min-width:992px){.page-full-width .page-sidebar,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.open>.sub-menu,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>.sub-menu{display:none!important}.page-sidebar{width:235px;float:left;position:relative;margin-right:-100%}.page-sidebar.navbar-collapse{max-height:none!important}.page-sidebar-reversed .page-sidebar{float:right;margin-right:0;margin-left:-100%}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar{margin-left:-235px}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar-wrapper{position:relative;float:right}.page-sidebar-fixed .page-sidebar{position:fixed!important;margin-left:0;top:46px}.page-sidebar-fixed .page-sidebar-menu>li.last{margin-bottom:15px!important}.page-sidebar-closed .page-sidebar,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed{width:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover{width:256px!important;position:relative!important;z-index:10000;display:block!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;-ms-border-radius:0 4px 0 0;-o-border-radius:0 4px 0 0;border-radius:0 4px 0 0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>i{margin-right:10px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.title{display:inline!important;padding-left:15px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.badge{display:block!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.selected{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover.heading{width:45px!important;box-shadow:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu{width:210px;position:absolute;z-index:2000;left:46px;margin-top:0;top:100%;display:block!important;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>a{padding-left:15px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>.sub-menu>li>a{padding-left:30px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>.sub-menu>li>.sub-menu>li>a{padding-left:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.heading>h3{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper .sidebar-toggler{margin-right:8px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-search-wrapper:hover,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper:hover{width:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a{padding-left:11px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a .selected{right:-3px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.arrow,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.badge,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.title{display:none!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-toggler{margin-left:3px;margin-right:3px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group{border-color:transparent;margin-left:-4px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .form-control{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .input-group-btn .btn{display:block}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.sidebar-search-bordered .input-group{padding:5px 0 3px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open{height:39px;margin-top:14px;margin-bottom:14px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group{width:210px;position:relative;z-index:1;margin-left:24px;padding:0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .form-control{background:0 0;border:0;display:block;padding:8px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn{display:block;margin-right:8px;margin-top:1px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove{background-repeat:no-repeat;width:11px;height:11px;margin:9px -5px 9px -7px;display:block;float:left}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered{height:36px;margin-top:23px;margin-bottom:23px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered .input-group{padding:0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li>a{padding-right:11px;padding-left:7px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar{margin-left:-45px;width:45px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>.sub-menu{left:auto;right:46px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover{margin-left:-211px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a{-webkit-border-radius:4px 0 0;-moz-border-radius:4px 0 0;-ms-border-radius:4px 0 0 0;-o-border-radius:4px 0 0;border-radius:4px 0 0}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.title{padding-left:0;padding-right:15px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>i{margin-right:0;margin-left:2px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-search-wrapper:hover,.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper:hover{margin-left:0}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group{margin-left:-227px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn{margin-right:10px!important}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove{margin:9px 4px 12px -16px!important;float:right!important}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li>a{padding-right:7px;padding-left:11px}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover{width:235px!important;display:absolute;z-index:10000}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu{width:235px!important}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .selected{display:none!important}.page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover{width:235px!important;display:absolute;z-index:10000;margin-left:-235px!important}.page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover .page-sidebar-menu{width:235px!important}.page-sidebar-closed.page-sidebar-hide .page-sidebar{display:none!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu{display:none;width:210px;z-index:2000;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu>li>a{margin:3px}.page-sidebar-menu.page-sidebar-menu-hover-submenu li.active .sub-menu,.page-sidebar-menu.page-sidebar-menu-hover-submenu li.open .sub-menu{display:none!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu li a>.arrow{display:none}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow{display:block;float:right;position:absolute;right:0;margin-top:-20px;background:0 0;width:0;height:0;border-style:solid;border-top:12px double transparent;border-bottom:12px double transparent;border-left:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow:after,.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow:before{display:none}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow{right:auto;left:0;border-right:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>.sub-menu{display:inline-block!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>a>.arrow{z-index:1;right:0;margin-top:-23px}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>a>.selected{display:none}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:235px;margin-top:-40px}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:-210px!important}.page-sidebar-closed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li>a{padding-left:15px}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu{margin-left:210px;margin-top:-38px!important}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu{margin-left:-210px!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu>li>a{padding-left:10px;padding-right:10px}.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover>.sub-menu,.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover>.sub-menu>li>.sub-menu{margin-top:-41px}}@media (max-width:991px){.page-sidebar,.page-sidebar.navbar-collapse.in{border-top:0!important;margin:20px}.page-sidebar .sidebar-toggler{display:none}.page-sidebar .selected,.page-sidebar.navbar-collapse.collapse{display:none!important}.page-sidebar.navbar-collapse{max-height:none}.page-sidebar.navbar-collapse.in{position:relative;overflow:hidden!important;overflow-y:auto!important;display:block!important}.page-sidebar.navbar-collapse.navbar-no-scroll{max-height:none!important}.page-sidebar .mega-menu-responsive-content{padding:10px 18px 10px 45px}.page-full-width .page-sidebar-menu{display:block}}@media (min-width:768px) and (max-width:991px){.page-sidebar .btn-navbar.collapsed .arrow{display:none}.page-sidebar .btn-navbar .arrow{position:absolute;right:25px;width:0;height:0;top:50px;border-bottom:15px solid #5f646b;border-left:15px solid transparent;border-right:15px solid transparent}}.page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle{padding:17px 10px 9px!important}.page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle i{top:0}.page-quick-sidebar-open .page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle i:before{content:"\e066"}.page-quick-sidebar-wrapper{transition:right .3s;z-index:9994;position:fixed;top:46px;bottom:0;right:-270px;width:270px;overflow:hidden}.page-quick-sidebar-wrapper.phonebar{top:0}.page-footer-fixed .page-quick-sidebar-wrapper{bottom:33px}.page-quick-sidebar-full-height .page-quick-sidebar-wrapper{top:0;bottom:0}.page-quick-sidebar-open .page-quick-sidebar-wrapper{transition:right .3s;right:0}.page-quick-sidebar-toggler{overflow:hidden;z-index:9994;display:none;width:28px;height:27px;position:fixed;top:19px;right:15px;text-align:center;padding-top:6px}.page-quick-sidebar-open .page-quick-sidebar-toggler{display:inline-block}.page-quick-sidebar-toggler>i{font-size:17px}@media (max-width:480px){.page-sidebar,.page-sidebar.in{margin:0 10px 10px!important}.page-header-fixed.page-header-fixed-mobile .page-sidebar,.page-header-fixed.page-header-fixed-mobile .page-sidebar.in{margin-top:10px!important}.page-quick-sidebar-wrapper{top:92px}.page-quick-sidebar-toggler{top:65px}}.page-content-wrapper,.page-footer,.page-header,.page-sidebar-wrapper{transition:margin .3s}.page-quick-sidebar-open.page-quick-sidebar-push-content .page-content-wrapper,.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{transition:margin-left .3s;margin-left:-270px}.page-quick-sidebar-open.page-quick-sidebar-push-content .page-footer{transition:margin-right .3s;margin-right:270px;margin-left:-270px}.page-sidebar-reversed.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{transition:margin-right .3s;margin-right:270px}.page-quick-sidebar-open.page-quick-sidebar-push-content.page-quick-sidebar-full-height .page-header{transition:margin-left .3s;margin-left:-270px}.page-quick-sidebar-open.page-quick-sidebar-push-content.page-footer-fixed:not(.page-quick-sidebar-full-height) .page-footer{margin-left:0;margin-right:0}.page-quick-sidebar-open.page-quick-sidebar-over-content-transparent .page-quick-sidebar-wrapper{opacity:.9;filter:alpha(opacity=90)}@media (max-width:991px){.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{display:none}}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified{margin:0;padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li{display:table-cell!important;width:1%!important}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a{padding:15px;border:0;height:46px;font-size:13px;text-transform:uppercase;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a>.badge{position:absolute;top:12px;right:3px}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a:hover{border:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu{margin-top:8px;margin-right:20px}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:before{position:absolute;top:-7px;right:19px;display:inline-block!important;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:after{position:absolute;top:-6px;right:20px;display:inline-block!important;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>.tab-content{margin:0;padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .list-heading{font-size:16px;margin:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items{margin:0;padding:0;list-style:none}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li{margin:0;padding:10px;background:0 0;border-bottom-width:1px;border-bottom-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li:last-child{border-bottom:0}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items.borderless li{border:0}.page-quick-sidebar-wrapper .page-quick-sidebar .inner-content{margin:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-list{position:absolute!important;width:270px!important;transition:margin .3s}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item{position:absolute!important;width:270px!important;transition:margin .3s;margin-left:270px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav{padding:0 10px 5px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list{vertical-align:middle;display:inline-block;font-size:14px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list>i{font-size:17px;line-height:17px;vertical-align:top;margin-right:3px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list{transition:margin .3s;margin-left:-270px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollBar,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollRail{display:none!important}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-item{transition:margin .3s;margin-left:0}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media{padding:12px 10px 11px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object{border-radius:50%!important;width:38.57px;opacity:.8;filter:alpha(opacity=80);float:left;margin-right:10px}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search{padding:0;margin:10px 22px}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .form-control{border:0;font-size:14px;padding:0;height:auto}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .input-group-btn .btn{padding:2px 0 0;background-color:transparent;background-repeat:no-repeat;background-position:100% 3px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:before{content:" ";display:table}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover{cursor:pointer}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover .media-object{opacity:1;filter:alpha(opacity=100)}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading{margin:5px 0 0;font-size:14px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub{font-size:11px;text-transform:uppercase}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small{font-size:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-status{margin-top:10px;right:10px;position:absolute;display:inline-block}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages{padding:0 10px;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post{transition:display .3s;padding:5px 0;margin:10px auto;font-size:12px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .body{display:block;word-wrap:break-word}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .avatar{width:38.57px;border-radius:50%!important}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .avatar{float:left;margin-right:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .avatar{float:right;margin-left:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name{font-size:12px;font-weight:300}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime{font-size:12px;font-weight:300;text-style:italic}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message{display:block;padding:5px;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message{text-align:left;margin-left:55px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow{display:block;position:absolute;top:9px;left:-6px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right-width:6px;border-right-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message{margin-right:55px;text-align:right}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow{display:block;position:absolute;top:9px;right:-6px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left-width:6px;border-left-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .datetime,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .name{text-align:right}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form{padding:20px 10px 15px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form .input-group .form-control{font-size:13px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .label{margin-top:5px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .desc{padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .bootstrap-switch{margin-top:-3px;float:right;border:0;min-width:59px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .form-control{width:75px!important;padding:4px!important;float:right;border:0;margin-top:-4px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li select.form-control{padding:4px 0!important}.page-title{padding:0;font-size:28px;letter-spacing:-1px;display:block;color:#666;margin:0 0 15px;font-weight:300;font-family:"Open Sans",sans-serif}.page-title small{font-size:14px;letter-spacing:0;font-weight:300;color:#888}.page-container-bg-solid .page-title{color:#666;margin-bottom:20px;margin-top:20px}.page-container-bg-solid .page-title small{color:#666}.page-bar{padding:0;background-color:#f7f7f7;margin-bottom:25px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-bar:after,.page-bar:before{content:" ";display:table}.page-bar .page-breadcrumb{display:inline-block;float:left;padding:8px;margin:0;list-style:none}.page-bar .page-breadcrumb>li{display:inline-block}.ie8 .page-bar .page-breadcrumb>li{margin-right:1px}.page-bar .page-breadcrumb>li>a,.page-bar .page-breadcrumb>li>span{color:#888;font-size:14px;text-shadow:none}.page-bar .page-breadcrumb>li>i{color:#aaa;font-size:14px;text-shadow:none}.page-bar .page-breadcrumb>li>i[class*=icon-],.page-bar .page-breadcrumb>li>i[class^=icon-]{color:gray}.page-bar .page-toolbar{display:inline-block;float:right;padding:0}.page-bar .page-toolbar .btn-fit-height{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;padding-top:8px;padding-bottom:8px}.page-container-bg-solid .page-bar{position:relative;padding:0 20px;background-color:#fff;margin:-25px -20px 0}.page-container-bg-solid .page-bar .page-breadcrumb{padding:11px 0}.page-container-bg-solid .page-bar .page-breadcrumb>li>a,.page-container-bg-solid .page-bar .page-breadcrumb>li>span{color:#888}.page-container-bg-solid .page-bar .page-breadcrumb>li>i{color:#aaa}.page-container-bg-solid .page-bar .page-breadcrumb>li>i[class*=icon-],.page-container-bg-solid .page-bar .page-breadcrumb>li>i[class^=icon-]{color:#8c8c8c}.page-container-bg-solid .page-bar .page-toolbar{padding:6px 0}.page-container-bg-solid .page-bar .page-toolbar .btn{margin-top:-2px}.page-container-bg-solid .page-bar .page-toolbar .btn.btn-sm{margin-top:0}.page-content{margin-top:0;padding:0;background-color:#fff}.page-container-bg-solid .page-content{background:#F1F3FA}.page-full-width .page-content{margin-left:0!important}@media (min-width:992px){.page-content-wrapper{float:left;width:100%}.page-content-wrapper .page-content{margin-left:235px;margin-top:0;min-height:600px;padding:25px 20px 10px}.page-content-wrapper .page-content.no-min-height{min-height:auto}.page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content{margin-left:45px}.page-sidebar-reversed .page-content-wrapper .page-content{margin-left:0!important;margin-right:235px!important}.page-sidebar-reversed.page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content{margin-left:0;margin-right:45px}.page-sidebar-reversed.page-sidebar-closed .page-content-wrapper .page-content{margin-left:0!important;margin-right:45px!important}.page-sidebar-closed .page-content-wrapper .page-content{margin-left:45px!important}.page-full-width .page-content-wrapper .page-content,.page-sidebar-closed.page-sidebar-hide .page-content-wrapper .page-content{margin-left:0!important}.page-sidebar-closed.page-sidebar-reversed.page-sidebar-hide .page-content-wrapper .page-content{margin-right:0!important}}@media (max-width:991px){.page-container-bg-solid .page-bar{margin-top:-20px}.page-boxed>.container{max-width:none!important;margin:0!important;padding:0!important}.page-content-wrapper .page-content{margin:0!important;padding:20px!important;min-height:280px}}@media (min-width:768px) and (max-width:991px){.page-boxed>.container{margin:auto!important}}@media (max-width:767px){.page-content-wrapper .page-content{padding:20px 10px 10px!important;overflow:hidden}.page-content-wrapper .page-content .page-title{margin-bottom:20px;font-size:18px}.page-content-wrapper .page-content .page-title small{font-size:13px;padding-top:3px}}@media (max-width:480px){.page-content-wrapper .page-content .page-title small{display:block;clear:both}}.page-footer{padding:8px 20px 5px;font-size:12px;height:33px}.page-footer:after,.page-footer:before{content:" ";display:table}.page-footer .page-footer-inner{float:left;display:inline-block}.page-footer-fixed.page-footer-fixed-mobile .page-footer{position:fixed;left:0;right:0;z-index:10000;bottom:0}.page-footer-fixed.page-footer-fixed-mobile.page-sidebar-fixed .page-footer{margin-left:0!important}@media (min-width:992px){.page-footer{clear:left}.page-footer-fixed .page-footer{position:fixed;left:0;right:0;z-index:10000;bottom:0}.page-sidebar-fixed.page-sidebar-closed .page-footer{margin-left:45px}.page-sidebar-fixed.page-footer-fixed .page-footer{margin-left:0!important}.page-sidebar-fixed .page-footer{margin-left:235px;padding:8px 20px 5px}.page-boxed .page-footer{padding:8px 0 5px}.page-boxed.page-sidebar-fixed .page-footer{padding-right:20px;padding-left:20px}.page-sidebar-reversed.page-sidebar-fixed .page-footer{margin-left:0;margin-right:235px;padding:8px 20px 5px}.page-sidebar-reversed.page-sidebar-fixed.page-footer-fixed .page-footer{margin-left:0;margin-right:0}.page-sidebar-reversed.page-sidebar-fixed.page-sidebar-closed .page-footer{margin-right:45px}}.aside .aside-dialog .aside-footer:after,.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.container-fluid:after,.container:after,.dataTable,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after,.scroller-footer:after{clear:both}@media (max-width:991px){.page-boxed .page-footer{padding-left:0;padding-right:0}}@media (max-width:767px){.page-boxed .page-footer,.page-footer{padding-left:10px;padding-right:10px}.page-footer-fixed .page-footer .container{padding-left:0;padding-right:0}}.scroll-to-top{padding:1px;text-align:center;position:fixed;bottom:10px;z-index:10001;display:none;right:10px}.theme-panel>.toggler,.theme-panel>.toggler-close{padding:20px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;top:4px;cursor:pointer}.scroll-to-top>i{display:inline-block;color:#687991;font-size:30px;opacity:.6;filter:alpha(opacity=60)}.scroll-to-top:hover{cursor:pointer}.scroll-to-top:hover>i{opacity:1;filter:alpha(opacity=100)}@media (min-width:992px){.scroll-to-top{right:20px}}@media (max-width:991px){.scroll-to-top{bottom:10px;right:10px}.scroll-to-top>i{font-size:28px}}.theme-panel{width:420px;margin-top:-13px;margin-right:0;z-index:100;float:right;position:relative}.theme-panel>.toggler{right:0;position:absolute;background:url(../img/icon-color.png) center no-repeat #d5dade;border-radius:4px}.theme-panel>.toggler:hover{background-color:#3d3d3d!important}.theme-panel>.toggler-close{display:none;right:0;z-index:101;position:absolute;background:url(../img/icon-color-close.png) center no-repeat #3d3d3d!important;border-radius:4px}.theme-panel>.toggler-close:hover{background-color:#222!important}.theme-panel>.theme-options{top:4px;right:0;display:none;position:absolute;z-index:100;background:#3d3d3d;box-shadow:5px 5px rgba(61,61,61,.1);-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.modal-open .colorpicker,.modal-open .datepicker,.modal-open .daterangepicker,.modal-open .datetimepicker{z-index:10055!important}.theme-panel>.theme-options>.theme-option{color:#cfcfcf;padding:10px;border-top:1px solid #444;margin-top:0;margin-bottom:0}.theme-panel>.theme-options>.theme-option>span{text-transform:uppercase;display:inline-block;width:145px;font-size:13px;font-weight:300}.theme-panel>.theme-options>.theme-option>select.form-control{display:inline;width:135px;padding:2px;text-transform:lowercase}.theme-panel>.theme-options>.theme-option.theme-colors{border-top:0}.theme-panel>.theme-options>.theme-option.theme-colors>span{display:block;width:auto}.theme-panel>.theme-options>.theme-option.theme-colors>ul{list-style:none;padding:0;display:block;margin-bottom:10px!important;margin-top:15px}.colorpicker.dropdown-menu,.daterangepicker.dropdown-menu,.datetimepicker.dropdown-menu{padding:5px}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li{width:40px;height:40px;margin:0 4px;cursor:pointer;list-style:none;float:left;border:1px solid #707070}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li:first-child{margin-left:0}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.current,.theme-panel>.theme-options>.theme-option.theme-colors>ul>li:hover{border:2px solid #d64635}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-default{background:#333438}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-darkblue{background:#2b3643}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-blue{background:#2D5F8B}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-grey{background:#697380}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-light{background:#F9FAFD}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-light2{background:#F1F1F1}.page-container-bg-solid .theme-panel{position:absolute;margin-top:30px;margin-right:20px;right:0}.page-container-bg-solid .theme-panel>.toggler{background:url(../img/icon-color.png) center no-repeat #BFCAD1}.page-container-bg-solid.page-sidebar-reversed .theme-panel{margin-right:255px}.page-on-load{background:#fefefe}.datepicker .active,.datepicker .active:hover,.datepicker .selected,.datepicker .today{background-image:none!important;filter:none!important}.page-on-load .page-container,.page-on-load .page-footer,.page-on-load .page-header,.page-on-load>.clearfix{display:none;transition:all 2s}.input-group.color .input-group-btn i{position:absolute;display:block;cursor:pointer;width:20px;height:20px;right:6px}.datepaginator a{font-family:'Open Sans';font-size:13px;font-weight:300}.datepicker table td,.datepicker table th,.datetimepicker table td,.datetimepicker table th{font-family:'Open Sans'!important}#dp-calendar{right:4px!important}.datepaginator .fa-angle-right:before{content:"\f105"}.datepaginator .fa-angle-left:before{content:"\f104"}.datepicker.dropdown-menu{padding:5px;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #efefef}.datepicker .selected{background-color:#909090!important}.datepicker .active{background-color:#4b8df8!important}.datepicker .active:hover{background-color:#2678FC!important}.datepicker .input-daterange input{text-align:left}.datepicker table td{color:#000;font-weight:300!important}.datepicker table th{color:#333;font-weight:400!important}.daterangepicker{margin-top:4px}.daterangepicker td{text-shadow:none}.daterangepicker td.active{background-color:#4b8df8;background-image:none;filter:none}.datetimepicker .active,.datetimepicker .active:hover{filter:none!important;background-image:none!important}.daterangepicker th{font-weight:400;font-size:14px}.daterangepicker .ranges input[type=text]{width:70px!important;font-size:11px;vertical-align:middle}.daterangepicker .ranges label{font-weight:300;display:block}.daterangepicker .ranges .btn{margin-top:10px}.daterangepicker .ranges li{color:#333}.daterangepicker .ranges li.active,.daterangepicker .ranges li:hover{background:#4b8df8!important;border:1px solid #4b8df8!important;color:#fff}.daterangepicker .range_inputs input{margin-bottom:0!important}.daterangepicker .fa-angle-right:before{content:"\f105"}.daterangepicker .fa-angle-left:before,.datetimepicker .fa-angle-left:before{content:"\f104"}.datetimepicker table td{color:#000;font-weight:300!important}.datetimepicker table th{font-weight:400!important}.datetimepicker .active{background-color:#4b8df8!important}.datetimepicker .active:hover{background-color:#2678FC!important}.datetimepicker .fa-angle-right:before{content:"\f105"}.editable-input table,.editable-input table td,.editable-input table th,.editable-input table tr{border:0!important}.editable-input .combodate select{margin-bottom:5px}.fileinput{margin-bottom:0}.fileinput .close{float:none}.fileinput .input-group{white-space:nowrap;overflow:hidden}.md-input{padding:5px!important;border-bottom:0!important;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.md-editor{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.md-editor .btn-toolbar{margin-left:0;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.md-editor .btn-toolbar .btn-group .btn-sm.btn{padding-bottom:3px}.md-editor .btn-toolbar .btn-group .btn-primary{padding-top:5px;padding-bottom:7px}.md-editor.active{border:1px solid #999;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important}.has-error .md-editor{border:1px solid #ebccd1!important}.has-success .md-editor{border:1px solid #d6e9c6!important}.has-warning .md-editor{border:1px solid #faebcc!important}.modal-open.page-overflow .modal-scrollable,.modal-open.page-overflow .page-container,.modal-open.page-overflow .page-container .navbar-fixed-bottom,.modal-open.page-overflow .page-container .navbar-fixed-top{overflow-y:auto!important}.modal-scrollable{overflow:hidden!important}.modal-backdrop{position:fixed}.bootstrap-select .btn{border-color:#e5e5e5}.has-error .bootstrap-select .btn{border-color:#ebccd1}.has-success .bootstrap-select .btn{border-color:#d6e9c6}.has-warning .bootstrap-select .btn{border-color:#faebcc}.bootstrap-select.open .btn,.bootstrap-select.open.dropup .btn{border-color:#999}.bootstrap-select .btn:focus{outline:0!important;outline-offset:0}.bootstrap-select.btn-group .dropdown-menu{margin-top:1px}.bootstrap-select.btn-group .dropdown-menu>li>dt>.text{font-weight:600;font-family:'Open Sans';font-size:14px}.bootstrap-select.btn-group .dropdown-menu .text-muted{color:#999!important}.bootstrap-select .caret{border:0;width:auto;height:auto;margin-top:-10px!important}.bootstrap-select .caret:before{content:"\f107";display:inline-block;border:0;font-family:FontAwesome;font-style:normal;font-weight:400}.form-wizard .steps>li>a.step>.desc,.form-wizard .steps>li>a.step>.number{display:inline-block;font-size:16px;font-weight:300}.bootstrap-select .selected i{color:#aaa}.bootstrap-select .dropdown-menu{z-index:9999!important}.bootstrap-switch{border-color:#e5e5e5}.bootstrap-switch.bootstrap-switch-focused{box-shadow:none;border-color:#e5e5e5}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#428bca}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#89C4F4}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#45B6AF}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{color:#fff;background:#dfba49}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#F3565D}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#444;background:#ececec}.portlet>.portlet-title>.actions>.bootstrap-switch{border-color:transparent;margin-top:0}.bootstrap-timepicker-widget table td a{padding:4px 0}.bootstrap-timepicker-widget input,.bootstrap-timepicker-widget input:focus{outline:0!important;border:0}.modal-open .bootstrap-timepicker-widget{z-index:10055!important}.bootstrap-timepicker-widget.timepicker-orient-bottom:after,.bootstrap-timepicker-widget.timepicker-orient-bottom:before{top:auto}.toast{-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast .toast-close-button{display:inline-block;margin-top:0;margin-right:0;text-indent:-100000px;width:11px;height:16px;background-repeat:no-repeat!important;background-image:url(../../assets/images/portlet-remove-icon-white.png)!important}.form-wizard .steps,.form-wizard .steps>li>a.step{background-color:#fff;background-image:none;border:0;box-shadow:none;filter:none}.toast-top-center{top:12px;margin:0 auto 0 -150px;left:50%}.toast-bottom-center{bottom:12px;margin:0 auto 0 -150px;left:50%}.form-wizard .progress{margin-bottom:30px}.form-wizard .steps{padding:10px 0;margin-bottom:15px}.form-wizard .steps>li>a.step:hover{background:0 0}.form-wizard .steps>li>a.step>.number{background-color:#eee;text-align:center!important;padding:11px 15px 13px;margin-right:10px;height:45px;width:45px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;border-radius:50%!important}.form-wizard .steps>li>a.step>.desc>i{display:none}.form-wizard .steps>li.active>a.step .number{background-color:#45B6AF;color:#fff}.form-wizard .steps>li.active>a.step .desc{color:#333}.form-wizard .steps>li.done>a.step .number{background-color:#dfba49;color:#fff}.form-wizard .steps>li.done>a.step .desc{color:#333}.form-wizard .steps>li.done>a.step .desc i{font-size:12px;font-weight:400;color:#999;display:inline-block}@media (min-width:768px) and (max-width:1200px){.form-wizard .step .desc{margin-top:10px;display:block}}.wysihtml5-sandbox{width:100%!important}.wysihtml5-toolbar li{margin:0;height:29px}.wysihtml5-toolbar li .dropdown-menu{margin-top:5px}.has-error .wysihtml5-sandbox{border:1px solid #ebccd1!important}.has-success .wysihtml5-sandbox{border:1px solid #d6e9c6!important}.has-warning .wysihtml5-sandbox{border:1px solid #faebcc!important}.note-editor{border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.note-editor .note-toolbar{border-bottom:1px solid #e5e5e5;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.note-editor .note-statusbar{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.note-editor .note-statusbar .note-resizebar{border-top:1px solid #e5e5e5}.note-editor.fullscreen{z-index:11000;width:100%!important}.note-editor .dropdown-menu:before{left:9px;right:auto}.note-editor .dropdown-menu:after{left:10px;right:auto}.note-link-dialog .checkbox{margin-left:20px}.has-error .note-editor{border:1px solid #ebccd1!important}.has-success .note-editor{border:1px solid #d6e9c6!important}.has-warning .note-editor{border:1px solid #faebcc!important}.bootbox .bootbox-close-button{margin-top:0!important}.cke{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.cke .cke-top{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.cke .cke-bottom{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.cke_bottom,.cke_dialog,.cke_dialog_footer,.cke_dialog_title,.cke_inner,.cke_reset,.cke_top{background-image:none!important;filter:none;border-top:0;border-bottom:0;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;text-shadow:none}.cke_dialog_tab,.cke_dialog_ui_button,.cke_dialog_ui_input_text{filter:none;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;background-image:none!important}.cke_dialog_tab,.cke_dialog_ui_button{box-shadow:none!important;text-shadow:none!important}.cke_dialog_tab:hover,.cke_dialog_ui_button:hover{text-decoration:none;text-shadow:none}.cke_dialog_ui_input_text{box-shadow:none!important}.cke_button,.cke_combo_button,.cke_toolbar,.cke_toolgroup{background-image:none!important;filter:none!important;border:0;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important}.cke_button,.cke_combo_button,.cke_hc.cke_panel_listItem a,.cke_panel_grouptitle{background-image:none!important;filter:none;text-shadow:none}.cke_button:hover,.cke_combo_button:hover{background-color:#ddd}.cke_toolbar_break{background-image:none!important;filter:none!important;border:0;box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;-ms-box-shadow:none!important;-o-box-shadow:none!important}.has-error .cke{border:1px solid #ebccd1!important}.has-success .cke{border:1px solid #d6e9c6!important}.has-warning .cke{border:1px solid #faebcc!important}.modal-open .clockface{z-index:10055!important}.clockface .cell .inner.active,.clockface .cell .outer.active{background-color:#4b8df8!important;background-image:none;filter:none}.dataTable{width:100%;margin-top:5px}.dataTables_filter .form-control{margin-left:4px}.dataTables_filter label{line-height:32px}.dataTable .row-details{margin-top:3px;display:inline-block;cursor:pointer;width:14px;height:14px}.dataTable .row-details.row-details-close{background:url(../img/datatable-row-openclose.png) no-repeat}.dataTable .row-details.row-details-open{background:url(../img/datatable-row-openclose.png) 0 -23px no-repeat}.dataTable .details{background-color:#eee}.dataTable .details td,.dataTable .details th{padding:4px;background:0 0;border:0}.dataTable .details tr:hover td,.dataTable .details tr:hover th{background:0 0}.dataTable .details tr:nth-child(even) td,.dataTable .details tr:nth-child(even) th,.dataTable .details tr:nth-child(odd) td,.dataTable .details tr:nth-child(odd) th{background-color:#eee}.dataTable>thead>tr>th.sorting,.dataTable>thead>tr>th.sorting_asc,.dataTable>thead>tr>th.sorting_desc{padding-right:18px}.dataTable .table-checkbox{width:8px!important}@media (max-width:768px){.form-wizard .steps>li>a{text-align:left}.dataTables_wrapper .dataTables_filter .form-control,.dataTables_wrapper .dataTables_length .form-control{display:inline-block}.dataTables_wrapper .dataTables_info{top:17px}.dataTables_wrapper .dataTables_paginate{margin-top:-15px}}@media (max-width:480px){.dataTables_wrapper .dataTables_filter .form-control{width:175px!important}.dataTables_wrapper .dataTables_paginate{float:left;margin-top:20px}}.dataTables_processing{position:fixed;top:50%;left:50%;min-width:125px;margin-left:0;padding:7px;text-align:center;color:#333;font-size:13px;border:1px solid #ddd;background-color:#eee;vertical-align:middle;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.dataTables_processing span{line-height:15px;vertical-align:middle}.dataTables_empty{text-align:center}.tabletools-btn-group{margin:0 0 10px}.tabletools-btn-group>.btn{margin-right:5px}.tabletools-btn-group>.btn:last-child{margin-right:0}.tabletools-dropdown-on-portlet{margin-top:-55px;float:right}.tabletools-dropdown-on-portlet>.btn{margin-right:5px}.tabletools-dropdown-on-portlet>.btn:last-child{margin-right:0}.DTTT_Print{background-color:#fff}.DTTT_Print .DTTT_PrintMessage{display:none}@media print{.DTTT_Print .DTTT_PrintMessage{display:inline-block}}.DTTT_Print .DTTT_Print_Info{display:block;position:fixed;top:35px;font-size:18px;width:700px;left:50%;margin-left:-350px;text-align:center}.DTTT_Print .page-footer,.DTTT_Print .page-header,.DTTT_Print .page-sidebar{display:none}.DTTT_Print .page-content-wrapper{float:none}.DTTT_Print .row,.DTTT_Print [class*=col-]{padding:0;margin:0}.DTTT_Print .page-content{margin:50px auto!important;border:0!important;width:800px!important;padding:0!important}.DTTT_Print .page-content .portlet{border:0;padding:0}.DTTT_Print .page-content .portlet .portlet-body{padding:0}.DTTT_Print .page-content .dataTables_wrapper{padding:0;margin:0;box-shadow:5px 5px rgba(102,102,102,.1)}@media print{.DTTT_Print .page-content .dataTables_wrapper{box-shadow:none}}.paging_bootstrap_extended{margin:0!important;padding:0!important;float:none!important;font-size:13px}.dataTables_extended_wrapper .seperator{padding:0 2px}.dataTables_extended_wrapper div.dataTables_info,.dataTables_extended_wrapper div.dataTables_length,.dataTables_extended_wrapper div.dataTables_paginate{display:inline-block;float:none!important;padding:0!important;margin:0!important;position:static!important}@media (max-width:480px){.dataTables_extended_wrapper div.dataTables_info,.dataTables_extended_wrapper div.dataTables_length,.dataTables_extended_wrapper div.dataTables_paginate{display:block;margin-bottom:10px!important}.dataTables_extended_wrapper .seperator{display:none!important}}.dataTables_extended_wrapper div.dataTables_length label{margin:0!important;padding:0!important;font-size:13px;float:none!important;display:inline-block!important}.table-container .table-actions-wrapper{display:none}.dataTables_scroll{margin-bottom:10px}.dataTables_scrollHead{border-bottom:2px solid #ddd!important}.dataTables_scrollHead thead th{border-bottom:0!important}.dataTables_scrollBody{border-bottom:1px solid #ddd!important}.dropzone{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.fancybox-overlay{z-index:100000}.fancybox-opened{z-index:100001}.spinner-buttons.btn-group-vertical .btn{text-align:center;margin:0;height:17px;width:22px;padding-left:6px;padding-right:6px;padding-top:0}.page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-up{border-radius:0;border-top-right-radius:4px!important}.page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-down{border-radius:0 0 4px}.external-event{display:inline-block;cursor:move;margin-bottom:5px;margin-left:5px}.fc-scroller{overflow-y:auto;overflow-x:hidden}.fc-month-view .fc-scroller{height:auto!important}.portlet .event-form-title{font-size:14px;margin-top:4px;font-weight:400;margin-bottom:10px}.portlet.calendar .fc-button{box-shadow:none;text-shadow:none;border:0 #ddd;height:35px;padding:6px 8px 7px;margin-left:2px;background:0 0;color:#fff;top:-45px;outline:0!important;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;border-style:none solid}.portlet.calendar .fc-toolbar{margin-bottom:0}.portlet.calendar .fc-toolbar h2{margin-top:3px;font-size:17px}.portlet.calendar .fc-button .fc-icon-left-single-arrow,.portlet.calendar .fc-button .fc-icon-right-single-arrow{font-family:FontAwesome;font-size:16px}.portlet.calendar .fc-header{margin-bottom:-21px}.portlet.calendar .fc-button-prev{padding-right:10px;padding-left:8px}.portlet.calendar .fc-button-next{padding-right:8px;padding-left:10px}.portlet.calendar .fc-button.fc-state-active,.portlet.calendar .fc-button.fc-state-hover{color:#666;background-color:#fff}.portlet.calendar .fc-button.fc-state-disabled{color:#ddd}.portlet.calendar .fc-button .fc-icon-left-single-arrow:after{content:""}.portlet.calendar .fc-button .fc-icon-left-single-arrow:before{content:"\f104"}.portlet.calendar .fc-button .fc-icon-right-single-arrow:after{content:""}.portlet.calendar .fc-button .fc-icon-right-single-arrow:before{content:"\f105"}.portlet.calendar .fc-text-arrow{font-size:22px;font-family:"Courier New",Courier,monospace;vertical-align:baseline}.portlet.calendar .fc-event .fc-time,.portlet.calendar .fc-event .fc-title{text-align:left;color:#fff;font-size:13px;font-weight:300;float:left}.portlet.calendar .fc-event{border:0;background-color:#69a4e0;color:#fff}.portlet.calendar .fc-event .fc-content{border:0}.portlet.calendar .fc-header-title h2{font-size:14px;line-height:20px;font-weight:400;color:#111}.portlet.calendar .fc-widget-header{background-image:none;filter:none;background-color:#eee;text-transform:uppercase;font-weight:300}.portlet.calendar.light .fc-button{top:-60px;color:#666;text-transform:uppercase;font-size:12px;padding-bottom:35px}.portlet.calendar.light .fc-button .fc-text-arrow{margin-top:-6px;display:inline-block}.portlet.calendar.light .fc-button.fc-state-active,.portlet.calendar.light .fc-button.fc-state-hover{color:#333;border-bottom:2px solid #45B6AF}.portlet.calendar.light .fc-button.fc-state-disabled{color:#aaa}.portlet.calendar .mobile .fc-button{padding:0 6px 20px;margin-left:2px;border:0;background-color:#ddd;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;color:#000;text-shadow:none;text-align:center}.portlet.calendar .mobile .fc-button.fc-state-active,.portlet.calendar .mobile .fc-button.fc-state-hover{background-color:#eee}.portlet.calendar .mobile .fc-button.fc-state-disabled{color:#bbb}.portlet.calendar .mobile .fc-button-prev{margin-right:5px;margin-top:-2px}.portlet.calendar .mobile .fc-button-next{margin-right:0;margin-top:-2px}.portlet.calendar .mobile .fc-header-space{margin:0;padding:0;width:0}.portlet.calendar .mobile .fc-header-left{position:absolute;z-index:10}.portlet.calendar .mobile .fc-header-left .fc-button{top:-2px}.portlet.calendar .mobile .fc-header-right{position:relative;right:0}.portlet.calendar .mobile .fc-header-right .fc-button{top:35px}.portlet.calendar .mobile .fc-content{margin-top:53px}.gmaps{height:300px;width:100%}.gmaps img{max-width:none}#gmap_static div{background-repeat:no-repeat;background-position:50% 50%;display:block;height:300px}#gmap_routes_instructions{margin-top:10px;margin-bottom:0}#gritter-notice-wrapper{right:1px!important}.gritter-close{left:auto!important;right:3px!important}.gritter-title{font-family:"Open Sans";font-size:18px;font-weight:300}.easy-pie-chart .number{font-size:14px!important;position:relative;text-align:center;height:75px;line-height:75px}.easy-pie-chart .number canvas{position:absolute;top:0;left:0}.bs-example,.sparkline-chart,.vmaps{position:relative}.blueimp-gallery .close{background-image:url(../../assets/images/portlet-remove-icon-white.png)!important;margin-top:-2px}.blueimp-gallery .next,.blueimp-gallery .prev{border-radius:23px!important}.ms-container .ms-list{border:1px solid #e5e5e5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.ms-container .ms-optgroup-label{font-size:14px}.jquery-notific8-message,.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{font-size:13px}.ms-container .ms-list.ms-focus{border-color:#999;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.ms-container .ms-selectable li.ms-hover,.ms-container .ms-selection li.ms-hover{color:#333;background-color:#eee}.ms-container .form-control{margin-bottom:5px}[class*=jquery-notific8],[class*=jquery-notific8]:after,[class*=jquery-notific8]:before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.left .jquery-notific8-close-sticky span,.right .jquery-notific8-close-sticky span{font-size:10px}.jquery-notific8-heading{font-weight:300;font-size:16px}.password-strength .password-verdict{display:inline-block;margin-top:6px;margin-left:5px}.password-strength .progress{margin-top:5px;margin-bottom:0}.password-strength .progress-bar{padding:2px}.scroller{padding:0 12px 0 0;margin:0;overflow:hidden}.scroller-footer{margin-top:10px}.scroller-footer:after,.scroller-footer:before{content:" ";display:table}.portlet-body .slimScrollBar{margin-right:0}.jqstooltip{width:auto!important;height:auto!important}.easy-pie-chart,.sparkline-chart{text-align:center}.sparkline-chart{margin-top:15px}.easy-pie-chart .number{font-weight:300;width:85px;margin:0 auto}.sparkline-chart .number{width:100px;margin:0 auto 10px}.easy-pie-chart .title,.sparkline-chart .title{display:block;text-align:center;color:#333;font-weight:300;font-size:16px;margin-top:5px;margin-bottom:10px}.easy-pie-chart .title:hover,.sparkline-chart .title:hover{color:#666;text-decoration:none}.easy-pie-chart .title>i,.sparkline-chart .title>i{margin-top:5px}div.tagsinput{min-height:35px;height:auto!important;margin:0;padding:5px 5px 0;overflow:auto}div.tagsinput span.tag{background:#aaa;color:#fff;border:0;padding:3px 6px;margin-top:0;margin-bottom:5px}div.tagsinput input{padding:3px 6px;width:75px!important}div.tagsinput span.tag a{color:#fff}div.tagsinput .not_valid{color:#fff;padding:3px 6px;background-color:#e02222}.slider{border:0;padding:0;display:block;margin:12px 5px;min-height:11px}.vakata-context li a .vakata-contextmenu-sep,.vakata-context li a i,iframe[src="about:blank"]{display:none}.ui-slider-vertical{width:11px}.ui-slider-horizontal .ui-slider-handle{top:-3px}.ui-slider-vertical .ui-slider-handle{left:-3px}.bs-example+.highlight:after,.bs-example:after{left:15px;text-transform:uppercase;letter-spacing:1px}.ui-slider-handle,.ui-slider-vertical{filter:none!important;background-image:none!important}.jqvmap-zoomin,.jqvmap-zoomout{height:16px;width:16px;background-color:#666}.vmaps{overflow:hidden;height:300px}.jstree-default .jstree-clicked{border:0;background-color:#e1e1e1;box-shadow:none}.jstree-default .jstree-hovered{border:0;background-color:#eee;box-shadow:none}.jstree-default .jstree-wholerow-clicked,.jstree-wholerow .jstree-wholerow-clicked{background:#e1e1e1;border:0;box-shadow:none}.jstree-default .jstree-wholerow-hovered,.jstree-wholerow .jstree-wholerow-hovered{border:0;background-color:#eee;box-shadow:none}.jstree-icon.icon-lg{margin-top:1px}.jstree-open>.jstree-anchor>.fa-folder:before{margin-left:2px;content:"\f07c"}.jstree-default.jstree-rtl .jstree-last{background:no-repeat}.vakata-context,.vakata-context ul{padding:0;min-width:125px;background-color:#fff;font-size:14px;font-family:"Segoe UI",Helvetica,Arial,sans-serif;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #efefef}.vakata-context li{border:0}.vakata-context li a{padding:0 10px;border:0}.vakata-context .vakata-context-hover>a,.vakata-context li a:hover{background-color:#eee;color:#333;box-shadow:none;margin:0}.vakata-context .vakata-context-hover>a .ins,.vakata-context .vakata-context-hover>a .span,.vakata-context li a:hover .ins,.vakata-context li a:hover .span{border:0!important}.vakata-context li a ins,.vakata-context li a span{display:none;border:0!important}.vakata-context .vakata-context-separator a,.vakata-context-rtl .vakata-context-separator a{margin:0;border:0}.jstree-rename-input{background-color:#fff!important;border:1px solid #e5e5e5!important;outline:0!important;padding:2px 6px!important;margin-right:-4px!important}.noUi-control{margin:9px 0}.noUi-primary .noUi-connect,.noUi-primary.noUi-connect{background:#428bca}.noUi-info .noUi-connect,.noUi-info.noUi-connect{background:#89C4F4}.noUi-success .noUi-connect,.noUi-success.noUi-connect{background:#45B6AF}.noUi-warning .noUi-connect,.noUi-warning.noUi-connect{background:#dfba49}.noUi-danger .noUi-connect,.noUi-danger.noUi-connect{background:#F3565D}.noUi-default .noUi-connect,.noUi-default.noUi-connect{background:#c6c6c6}.form-recaptcha-img{margin-bottom:10px;clear:both;border:1px solid #e5e5e5;padding:5px}.form-control .select2-choice{border:1px solid #e5e5e5;background-color:#fff;background-image:none;filter:none;height:34px;padding:3px 0 0 12px}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#e5e5e5;background-color:#fff;background-image:none;filter:none}.select2-drop{border:1px solid #e5e5e5;background-color:#fff;background-image:none;-webkit-box-shadow:none;box-shadow:none;filter:none;border-top:0}.select2-drop-auto-width{border-top:1px solid #e5e5e5}.select2-drop.select2-drop-above{border-top:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none}.select2-drop-active{border:1px solid #999;border-top:0}.select2-container .select2-choice .select2-arrow{background-image:none;background-color:#fff;filter:none;border-left:1px solid #e5e5e5}.select2-container.select2-container-active .select2-arrow,.select2-container.select2-dropdown-open .select2-arrow{border-left:0!important}.select2-container .select2-choice .select2-arrow b{background-position:0 1px}.select2-search input{background-color:#fff!important;filter:none;margin:5px 0 0;border:1px solid #e5e5e5;webkit-appearance:none!important;color:#333;outline:0;height:auto!important;min-height:26px;padding:6px!important;line-height:20px;font-size:14px;font-weight:400;vertical-align:top;-webkit-box-shadow:none;box-shadow:none}.form-control.select2-container{border:0;height:auto!important;padding:0}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #999!important;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-dropdown-open .select2-choice{border-bottom:0!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #999!important;border-top:0!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-drop.select2-drop-above.select2-drop-active{border:1px solid #999!important;border-bottom:0!important}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}.select2-results{margin:5px 0}.select2-results .select2-highlighted{background:#eee;color:#333}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:0 0}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-selection-limit{padding:3px 7px 4px;background:#f4f4f4;display:list-item}.select2-container-multi,.select2-container-multi .select2-choices{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.select2-container-multi.select2-dropdown-open,.select2-container-multi.select2-dropdown-open .select2-choices{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.select2-container-multi.select2-dropdown-open.select2-drop-above,.select2-container-multi.select2-dropdown-open.select2-drop-above .select2-choices{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.select2-container-multi .select2-choices{padding-left:6px;min-height:34px;border:1px solid #e5e5e5;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #999!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-container-multi .select2-choices .select2-search-choice{padding:3px 5px 3px 18px;margin:5px 0 3px 5px;border:1px solid #e5e5e5;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.has-warning .select2-container .select2-choice,.has-warning .select2-container .select2-choices,.has-warning .select2-container.select2-dropdown-open .select2-choice,.has-warning .select2-container.select2-dropdown-open .select2-choices{border-color:#faebcc}.has-warning .select2-container.select2-dropdown-open .select2-choice>span{color:#faebcc}.has-error .select2-container .select2-choice,.has-error .select2-container .select2-choices,.has-error .select2-container.select2-dropdown-open .select2-choice,.has-error .select2-container.select2-dropdown-open .select2-choices{border-color:#ebccd1}.has-error .select2-container.select2-dropdown-open .select2-choice>span{color:#ebccd1}.has-success .select2-container .select2-choice,.has-success .select2-container .select2-choices,.has-success .select2-container.select2-dropdown-open .select2-choice,.has-success .select2-container.select2-dropdown-open .select2-choices{border-color:#d6e9c6}.has-success .select2-container.select2-dropdown-open .select2-choice>span{color:#d6e9c6}.modal-open .select2-drop-mask{z-index:10051}.modal-open .select2-drop{z-index:10052}.modal-open .select2-search{z-index:10053}.form-control.input-lg .select2-choice{height:46px;padding:10px 16px}.select2-container.input-lg .select2-choice .select2-arrow b{background-position:0 7px}.form-control.input-sm .select2-choice{height:30px;padding:1px 10px 5px}.select2-container.input-sm .select2-choice .select2-arrow b{background-position:0 0}.checker{margin-top:-2px!important;margin-right:2px!important}.checker input,.radio input{outline:0!important}.alert,.aside:focus,.btn[bs-select],.timepicker.dropdown-menu button,[tabindex="-1"]{outline:0}div.checker.disabled span,div.checker.disabled.active span{background-position:-152px -260px}div.checker.disabled:hover,div.radio.disabled:hover{cursor:not-allowed}div.checker,div.radio{margin-right:0;margin-left:3px}.portlet-body-morris-fit{margin-right:-20px;margin-left:-20px;margin-bottom:-15px}.portlet-body-morris-fit>svg{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.morris-hover.morris-default-style .morris-hover-row-label{text-align:left;font-weight:400;font-size:15px;color:#7D8C9D;font-family:"Open Sans",sans-serif}.morris-hover.morris-default-style .morris-hover-point{text-align:left;font-size:14px;font-weight:400;font-family:"Open Sans",sans-serif}.icheck-list>label{display:block;margin-bottom:8px}.icheck-list>label:last-child{margin-bottom:0}.form-horizontal .icheck-inline{margin-top:8px}.icheck-inline>label{display:inline-block;margin-left:15px}.icheck-inline>label:first-child{margin-left:0}div[class*=icheckbox_],div[class*=iradio_]{margin-right:5px;top:-1px!important}.icheck-colors{padding:0;margin:0;list-style:none}.icheck-colors>li{padding:0;margin:4px;float:left;display:inline-block;height:20px;width:20px;background:#000;opacity:.6;filter:alpha(opacity=60)}.icheck-colors>li:first-child{margin-left:0}.icheck-colors>li:hover{opacity:1;filter:alpha(opacity=100);cursor:pointer}.icheck-colors>li.active{height:26px;margin-top:0;opacity:.6;filter:alpha(opacity=60)}.icheck-colors>li.red{background:#d54e21}.icheck-colors>li.green{background:#78a300}.icheck-colors>li.blue{background:#0e76a8}.icheck-colors>li.aero{background:#9cc2cb}.icheck-colors>li.grey{background:#73716e}.icheck-colors>li.orange{background:#f70}.icheck-colors>li.yellow{background:#fc0}.icheck-colors>li.pink{background:#ff66b5}.icheck-colors>li.purple{background:#6a5a8c}.ui-select-match-close{margin-top:5px!important;margin-left:5px!important}.modal.disabled{-webkit-animation:noop!important;animation:noop!important}.modal.disabled.am-fade-and-slide-top .modal-dialog{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.modal.disabled.am-fade-and-scale .modal-dialog,.tab-pane.am-fade{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:backwards}.modal.disabled.am-fade-and-slide-top.ng-enter .modal-dialog{visibility:hidden;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.modal.disabled.am-fade-and-slide-top.ng-enter-active .modal-dialog,.modal.disabled.am-fade-and-slide-top.ng-leave-active .modal-dialog{visibility:visible}.modal.disabled.am-fade-and-slide-top.ng-leave .modal-dialog{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop}.modal.disabled.am-fade-and-scale .modal-dialog{animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;animation-fill-mode:backwards;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.modal.disabled.am-fade-and-scale.ng-enter .modal-dialog{visibility:hidden;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.modal.disabled.am-fade-and-scale.ng-enter-active .modal-dialog,.modal.disabled.am-fade-and-scale.ng-leave-active .modal-dialog{visibility:visible}.modal.disabled.am-fade-and-scale.ng-leave .modal-dialog{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut}@-webkit-keyframes noop{from,to{opacity:1}}@keyframes noop{from,to{opacity:1}}.bs-example{padding:45px 15px 15px;margin:0 -15px 15px;background-color:#fafafa;box-shadow:inset 0 3px 6px rgba(0,0,0,.05);border-color:#e5e5e5 #eee #eee;border-style:solid;border-width:1px 0}.bs-example:after{content:"Example";position:absolute;top:15px;font-size:12px;font-weight:700;color:#bbb}.bs-example+.highlight{margin:-15px -15px 15px;border-radius:0;border-width:0 0 1px}@media (min-width:768px){.bs-example,.bs-example+.highlight{margin-left:0;margin-right:0;border-width:1px}.bs-example{background-color:#fff;border-color:#ddd;border-radius:4px 4px 0 0;box-shadow:none}.bs-example+.highlight{margin-top:-16px;border-bottom-left-radius:4px;border-bottom-right-radius:4px}}.bs-example .container{width:auto}.bs-example>.alert:last-child,.bs-example>.form-control:last-child,.bs-example>.jumbotron:last-child,.bs-example>.list-group:last-child,.bs-example>.navbar:last-child,.bs-example>.panel:last-child,.bs-example>.progress:last-child,.bs-example>.table-responsive:last-child>.table,.bs-example>.table:last-child,.bs-example>.well:last-child,.bs-example>blockquote:last-child,.bs-example>ol:last-child,.bs-example>p:last-child,.bs-example>ul:last-child{margin-bottom:0}.bs-example>p>.close{float:none}.bs-example .nav-tabs{margin-bottom:15px}.bs-footer{padding-top:40px;padding-bottom:30px;margin-top:100px;color:#787878;text-align:center;border-top:1px solid #e6e6e6}.bs-docs-nav .navbar-brand,.bs-masthead-links a{color:#fff}.bs-docs-nav,.bs-docs-nav .navbar-collapse{border-color:#a33f3e}.footer-links{margin:10px 0;padding-left:0}.footer-links li{display:inline;padding:0 2px}.footer-links li:first-child{padding-left:0}@media (min-width:768px){.bs-footer{text-align:left}.bs-footer p{margin-bottom:0}}.bs-masthead{position:relative;padding:30px 15px;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.15)}.bs-masthead h1{font-size:50px;line-height:1;color:#fff}.bs-masthead .btn-outline-inverse{margin:10px}.bs-masthead-links{margin-top:20px;margin-bottom:40px;padding:0 15px;list-style:none;text-align:center}.bs-masthead-links li{display:inline}.bs-masthead-links li+li{margin-left:20px}@media (min-width:768px){.bs-masthead{text-align:left;padding-top:140px;padding-bottom:140px}.bs-masthead h1{font-size:100px}.bs-masthead .lead{margin-right:25%;font-size:30px}.bs-masthead .btn-outline-inverse{width:auto;margin:20px 5px 20px 0;padding:18px 24px;font-size:21px}.bs-masthead-links{padding:0;text-align:left}}.bs-docs-nav{background-color:#b94846;box-shadow:0 1px 0 rgba(255,255,255,.1);text-shadow:0 -1px 0 rgba(0,0,0,.15)}.bs-docs-nav .navbar-nav>li>a{-webkit-transition:color .15s linear;transition:color .15s linear;color:#f9f1f1}.bs-docs-nav .navbar-nav>li>a:hover{color:#fff}.bs-docs-nav .navbar-nav>.active>a,.bs-docs-nav .navbar-nav>.active>a:hover{background-color:#a33f3e;color:#fff}.bs-docs-nav .navbar-toggle{border-color:#b94846}.bs-docs-nav .navbar-toggle:hover{border-color:#a33f3e;background-color:#a33f3e}.bs-old-docs{padding:15px 20px;color:#787878;background-color:#fafafa;border-top:1px solid #fff;border-bottom:1px solid #e6e6e6}.bs-old-docs strong{color:#545454}@media (max-width:991px){.navbar-toggle{margin-left:15px;display:block!important;float:left}.bs-sidebar.affix{position:static!important}}.bs-header .container,.select.dropdown-menu.select-multiple li{position:relative}.bs-sidenav{margin-top:40px;margin-bottom:20px;width:124px}.bs-sidebar .nav>li>a{display:block;font-size:13px;font-weight:500;color:#999;padding:4px 15px;text-align:right}.bs-sidebar .nav>li>a:focus,.bs-sidebar .nav>li>a:hover{padding-right:14px;color:#b94846;text-decoration:none;background-color:transparent;border-right:1px solid #b94846}.bs-sidebar .nav>.active:focus>a,.bs-sidebar .nav>.active:hover>a,.bs-sidebar .nav>.active>a{padding-right:13px;font-weight:700;color:#b94846;background-color:transparent;border-right:2px solid #b94846}.bs-sidebar .nav .nav{display:none;padding-bottom:10px}.bs-sidebar .nav .nav>li>a{padding-top:2px;padding-bottom:2px;padding-right:30px;font-size:12px;font-weight:400}.bs-sidebar .nav .nav>li>a:focus,.bs-sidebar .nav .nav>li>a:hover{padding-right:29px}.bs-sidebar .nav .nav>.active:focus>a,.bs-sidebar .nav .nav>.active:hover>a,.bs-sidebar .nav .nav>.active>a{font-weight:500;padding-right:28px}@media (min-width:992px){.bs-sidebar .nav>.active>ul{display:block}.bs-sidebar.affix .bs-sidenav,.bs-sidebar.affix-bottom .bs-sidenav{margin-top:0;margin-bottom:0}}h1[id],h2[id]{margin-top:-45px}@media (min-width:1200px){.bs-sidebar{margin-right:30px}}.am-fade.aside-backdrop,.am-fade.modal-backdrop{background-color:rgba(0,0,0,.5)}.bs-docs-aside{min-width:200px}h1[id]{padding-top:80px}h2[id]{padding-top:60px}.bs-header{padding:30px 15px 40px;font-size:16px;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.15)}.bs-header h1{color:#fff}.bs-header p{font-weight:300;line-height:1.5}@media (min-width:768px){.bs-header{font-size:21px;text-align:left}.bs-header h1{font-size:60px;line-height:1}}@media (min-width:992px){.bs-header h1,.bs-header p{margin-right:300px}}.highlight{display:none;padding:9px 14px;margin-bottom:14px;background-color:#f6f6f8;border:1px solid #e2e2e9;border-radius:4px}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0;white-space:nowrap}.highlight pre code{font-size:inherit;color:#333}.highlight pre .lineno{display:inline-block;width:22px;padding-right:5px;margin-right:10px;text-align:right;color:#bebec5}@media (min-width:481px){.highlight{display:block}}input.ng-dirty.ng-invalid,select.ng-dirty.ng-invalid,textarea.ng-dirty.ng-invalid{color:#b94a48;border-color:#ee5f5b}input.ng-dirty.ng-invalid:focus,select.ng-dirty.ng-invalid:focus,textarea.ng-dirty.ng-invalid:focus{border-color:#e9322d;box-shadow:0 0 6px #f8b9b7}input:focus.ng-pristine.ng-invalid,select:focus.ng-pristine.ng-invalid,textarea:focus.ng-pristine.ng-invalid{color:#555;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}input:focus.ng-pristine.ng-invalid:focus,select:focus.ng-pristine.ng-invalid:focus,textarea:focus.ng-pristine.ng-invalid:focus{border-color:rgba(82,168,236,.8);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}body .modal{overflow-y:hidden}body.modal-open{overflow-y:visible!important}.lt-ie9 .bs-sidebar{display:none!important}.modal-backdrop{z-index:1040;bottom:0}.select.dropdown-menu.select-multiple li>i{color:#fff;display:none;position:absolute;top:5px;right:10px}.bs-example+.highlight,body{position:relative}.alert.bottom-right,.alert.top,.alert.top-right{right:0}.select.dropdown-menu.select-multiple li.active>i{display:block}body{padding-top:50px}.bs-example-scope{font-size:85%}.bs-example-scope+.bs-example{margin:-15px -15px 15px}.bs-example-scope+.bs-example+.highlight>pre{border-radius:0 0 4px 4px}.aside.bs-docs-aside .aside-header{background:#b94846}.aside.bs-docs-aside .nav{margin:0}.bs-docs-social{max-height:200px}.bs-docs-social ul{list-style:none;padding:1em 0 0}.bs-docs-social ul li{height:30px}@media (max-width:991px){.bs-docs-social ul li{display:inline-block}}.bs-docs-home,.bs-header{color:#fff;background:url(../assets/images/triangular-red.png) #b94846;padding-bottom:20px}pre>code{background:0 0}.bs-example+.highlight code{padding:2.5em .5em 1em}.alert.bottom-right .close,.alert.top-right .close{padding-left:10px}.alert.bottom-left .close,.alert.top-left .close{padding-right:10px}.bs-example+.highlight:after{content:"Source";position:absolute;top:15px;font-size:12px;font-weight:700;color:#bbb}.edit-plunkr,.panel-heading[role=tab] .panel-title a,a[ng-click],input[type=checkbox]{cursor:pointer}.twitter-follow-button{position:relative;top:5px;margin-left:10px}.tab-pane.am-fade{animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards;opacity:1}.am-collapse,.panel-collapse.am-collapse{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:backwards;overflow:hidden}.panel-collapse.am-collapse{animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards}.am-collapse,.am-flip-x{-webkit-animation-timing-function:ease}.panel-collapse.am-collapse2{-webkit-transition:.3s ease max-height;transition:.3s ease max-height;max-height:100px;overflow:hidden}.panel-collapse.am-collapse2.in-remove{max-height:100px;display:block}.panel-collapse.am-collapse2.in-add{max-height:0}@-webkit-keyframes expand{from{max-height:0}to{max-height:100px}}@keyframes expand{from{max-height:0}to{max-height:100px}}@-webkit-keyframes collapse{from{max-height:100px}to{max-height:0}}@keyframes collapse{from{max-height:100px}to{max-height:0}}.am-collapse{animation-duration:.3s;animation-timing-function:ease;animation-fill-mode:backwards;opacity:1}.am-fade,.am-flip-x{-webkit-animation-fill-mode:backwards}.am-collapse.am-collapse-add,.am-collapse.ng-hide-remove,.am-collapse.ng-move{-webkit-animation-name:expand;animation-name:expand}.am-collapse.am-collapse-remove,.am-collapse.ng-hide{-webkit-animation-name:collapse;animation-name:collapse}.am-collapse.ng-enter{visibility:hidden;-webkit-animation-name:expand;animation-name:expand;-webkit-animation-play-state:paused;animation-play-state:paused}.am-collapse.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-collapse.ng-leave{-webkit-animation-name:collapse;animation-name:collapse;-webkit-animation-play-state:paused;animation-play-state:paused}.am-collapse.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes expand{from{max-height:0}to{max-height:500px}}@keyframes expand{from{max-height:0}to{max-height:500px}}@-webkit-keyframes collapse{from{max-height:500px}to{max-height:0}}@keyframes collapse{from{max-height:500px}to{max-height:0}}.panel-collapse.am-collapse.in-remove{-webkit-animation-name:collapse;animation-name:collapse;display:block}.panel-collapse.am-collapse.in-add{-webkit-animation-name:expand;animation-name:expand}.am-fade{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;animation-fill-mode:backwards;opacity:1}.am-fade.am-fade-add,.am-fade.ng-hide-remove,.am-fade.ng-move{-webkit-animation-name:fadeIn;animation-name:fadeIn}.am-fade.am-fade-remove,.am-fade.ng-hide{-webkit-animation-name:fadeOut;animation-name:fadeOut}.am-fade.ng-enter{visibility:hidden;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade.ng-leave{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.tab-pane.am-fade.active-remove{display:none!important}.tab-pane.am-fade.active-add{-webkit-animation-name:fadeIn;animation-name:fadeIn}.aside-backdrop.am-fade,.modal-backdrop.am-fade{background:rgba(0,0,0,.5);-webkit-animation-duration:.15s;animation-duration:.15s}.aside-backdrop.am-fade.ng-leave,.modal-backdrop.am-fade.ng-leave{-webkit-animation-delay:.3s;animation-delay:.3s}.am-flip-x{-webkit-animation-duration:.4s;animation-duration:.4s;animation-timing-function:ease;animation-fill-mode:backwards}.am-flip-x-linear,.am-slide-top{-webkit-animation-fill-mode:backwards}.am-flip-x.am-flip-x-add,.am-flip-x.ng-hide-remove,.am-flip-x.ng-move{-webkit-animation-name:flipInXBounce;animation-name:flipInXBounce}.am-flip-x.am-flip-x-remove,.am-flip-x.ng-hide{-webkit-animation-name:flipOutX;animation-name:flipOutX}.am-flip-x.ng-enter{visibility:hidden;-webkit-animation-name:flipInXBounce;animation-name:flipInXBounce;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x.ng-leave{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x-linear{-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards}.am-slide-right,.am-slide-top{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-flip-x-linear.am-flip-x-add,.am-flip-x-linear.ng-hide-remove,.am-flip-x-linear.ng-move{-webkit-animation-name:flipInX;animation-name:flipInX}.am-flip-x-linear.am-flip-x-remove,.am-flip-x-linear.ng-hide{-webkit-animation-name:flipOutX;animation-name:flipOutX}.am-flip-x-linear.ng-enter{visibility:hidden;-webkit-animation-name:flipInX;animation-name:flipInX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x-linear.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x-linear.ng-leave{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x-linear.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes flipInX{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@keyframes flipInX{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@-webkit-keyframes flipInXBounce{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@keyframes flipInXBounce{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@-webkit-keyframes flipOutX{from{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}@keyframes flipOutX{from{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}.am-slide-top{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-slide-bottom,.am-slide-right{-webkit-animation-fill-mode:backwards}.am-slide-top.am-slide-top-add,.am-slide-top.ng-hide-remove,.am-slide-top.ng-move{-webkit-animation-name:slideFromTop;animation-name:slideFromTop}.am-slide-top.am-slide-top-remove,.am-slide-top.ng-hide{-webkit-animation-name:slideToTop;animation-name:slideToTop}.am-slide-top.ng-enter{visibility:hidden;-webkit-animation-name:slideFromTop;animation-name:slideFromTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-top.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-top.ng-leave{-webkit-animation-name:slideToTop;animation-name:slideToTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-top.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-right{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-slide-bottom,.am-slide-left{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-slide-right.am-slide-right-add,.am-slide-right.ng-hide-remove,.am-slide-right.ng-move{-webkit-animation-name:slideFromRight;animation-name:slideFromRight}.am-slide-right.am-slide-right-remove,.am-slide-right.ng-hide{-webkit-animation-name:slideToRight;animation-name:slideToRight}.am-slide-right.ng-enter{visibility:hidden;-webkit-animation-name:slideFromRight;animation-name:slideFromRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-right.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-right.ng-leave{-webkit-animation-name:slideToRight;animation-name:slideToRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-right.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-bottom{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-top,.am-slide-left{-webkit-animation-fill-mode:backwards}.am-slide-bottom.am-slide-bottom-add,.am-slide-bottom.ng-hide-remove,.am-slide-bottom.ng-move{-webkit-animation-name:slideFromBottom;animation-name:slideFromBottom}.am-slide-bottom.am-slide-bottom-remove,.am-slide-bottom.ng-hide{-webkit-animation-name:slideToBottom;animation-name:slideToBottom}.am-slide-bottom.ng-enter{visibility:hidden;-webkit-animation-name:slideFromBottom;animation-name:slideFromBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-bottom.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-bottom.ng-leave{-webkit-animation-name:slideToBottom;animation-name:slideToBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-bottom.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-left{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-right,.am-fade-and-slide-top{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-slide-left.am-slide-left-add,.am-slide-left.ng-hide-remove,.am-slide-left.ng-move{-webkit-animation-name:slideFromLeft;animation-name:slideFromLeft}.am-slide-left.am-slide-left-remove,.am-slide-left.ng-hide{-webkit-animation-name:slideToLeft;animation-name:slideToLeft}.am-slide-left.ng-enter{visibility:hidden;-webkit-animation-name:slideFromLeft;animation-name:slideFromLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-left.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-left.ng-leave{-webkit-animation-name:slideToLeft;animation-name:slideToLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-left.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes slideFromTop{from{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideFromTop{from{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes slideToTop{to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideToTop{to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes slideFromRight{from{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideFromRight{from{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes slideToRight{to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideToRight{to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes slideFromBottom{from{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideFromBottom{from{-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes slideToBottom{to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideToBottom{to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes slideFromLeft{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideFromLeft{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@-webkit-keyframes slideToLeft{to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideToLeft{to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.am-fade-and-slide-top{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-top.am-fade-and-slide-top-add,.am-fade-and-slide-top.ng-hide-remove,.am-fade-and-slide-top.ng-move{-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.am-fade-and-slide-top.am-fade-and-slide-top-remove,.am-fade-and-slide-top.ng-hide{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop}.am-fade-and-slide-top.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-top.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-top.ng-leave{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-top.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-right{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-bottom,.am-fade-and-slide-left{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-fade-and-slide-right.am-fade-and-slide-right-add,.am-fade-and-slide-right.ng-hide-remove,.am-fade-and-slide-right.ng-move{-webkit-animation-name:fadeAndSlideFromRight;animation-name:fadeAndSlideFromRight}.am-fade-and-slide-right.am-fade-and-slide-right-remove,.am-fade-and-slide-right.ng-hide{-webkit-animation-name:fadeAndSlideToRight;animation-name:fadeAndSlideToRight}.am-fade-and-slide-right.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromRight;animation-name:fadeAndSlideFromRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-right.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-right.ng-leave{-webkit-animation-name:fadeAndSlideToRight;animation-name:fadeAndSlideToRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-right.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-bottom{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-bottom.am-fade-and-slide-bottom-add,.am-fade-and-slide-bottom.ng-hide-remove,.am-fade-and-slide-bottom.ng-move{-webkit-animation-name:fadeAndSlideFromBottom;animation-name:fadeAndSlideFromBottom}.am-fade-and-slide-bottom.am-fade-and-slide-bottom-remove,.am-fade-and-slide-bottom.ng-hide{-webkit-animation-name:fadeAndSlideToBottom;animation-name:fadeAndSlideToBottom}.am-fade-and-slide-bottom.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromBottom;animation-name:fadeAndSlideFromBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-bottom.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-bottom.ng-leave{-webkit-animation-name:fadeAndSlideToBottom;animation-name:fadeAndSlideToBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-bottom.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-left{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-left.am-fade-and-slide-left-add,.am-fade-and-slide-left.ng-hide-remove,.am-fade-and-slide-left.ng-move{-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-name:fadeAndSlideFromLeft;animation-name:fadeAndSlideFromLeft}.am-fade-and-slide-left.am-fade-and-slide-left-remove,.am-fade-and-slide-left.ng-hide{-webkit-animation-name:fadeAndSlideToLeft;animation-name:fadeAndSlideToLeft}.am-fade-and-slide-left.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromLeft;animation-name:fadeAndSlideFromLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-left.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-left.ng-leave{-webkit-animation-name:fadeAndSlideToLeft;animation-name:fadeAndSlideToLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-left.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeAndSlideFromTop{from{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}to{opacity:1}}@keyframes fadeAndSlideFromTop{from{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToTop{from{opacity:1}to{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}}@keyframes fadeAndSlideToTop{from{opacity:1}to{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}}@-webkit-keyframes fadeAndSlideFromRight{from{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}to{opacity:1}}@keyframes fadeAndSlideFromRight{from{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToRight{from{opacity:1}to{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}}@keyframes fadeAndSlideToRight{from{opacity:1}to{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}}@-webkit-keyframes fadeAndSlideFromBottom{from{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1}}@keyframes fadeAndSlideFromBottom{from{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToBottom{from{opacity:1}to{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}}@keyframes fadeAndSlideToBottom{from{opacity:1}to{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}}@-webkit-keyframes fadeAndSlideFromLeft{from{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}to{opacity:1}}@keyframes fadeAndSlideFromLeft{from{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToLeft{from{opacity:1}to{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}}@keyframes fadeAndSlideToLeft{from{opacity:1}to{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}}.am-fade-and-scale{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-scale.am-fade-and-scale-add,.am-fade-and-scale.ng-enter,.am-fade-and-scale.ng-hide-remove,.am-fade-and-scale.ng-move{-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.am-fade-and-scale.am-fade-and-scale-remove,.am-fade-and-scale.ng-hide,.am-fade-and-scale.ng-leave{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut}.am-fade-and-scale.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-scale.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-scale.ng-leave{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-scale.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeAndScaleIn{from{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1}}@keyframes fadeAndScaleIn{from{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1}}@-webkit-keyframes fadeAndScaleOut{from{opacity:1}to{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}}@keyframes fadeAndScaleOut{from{opacity:1}to{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}}.alert.bottom,.alert.bottom-left,.alert.bottom-right,.alert.top,.alert.top-left,.alert.top-right{position:fixed;z-index:1050;margin:20px}.alert.top,.alert.top-left,.alert.top-right{top:50px}.alert.top{left:0}.alert.top-left{left:0}.alert.bottom,.alert.bottom-left,.alert.bottom-right{bottom:0}.alert.bottom{right:0;left:0}.alert.bottom-left{left:0}.aside .aside-dialog .aside-footer:after,.aside .aside-dialog .aside-footer:before,.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.aside{position:fixed;top:0;bottom:0;z-index:1049;overflow:auto;min-width:320px;background:#fff}@media (max-width:991px){.aside{min-width:240px}}.aside.left{right:auto;left:0}.aside.right{right:0;left:auto}.aside .aside-dialog .aside-header{border-bottom:1px solid #e5e5e5;min-height:16.43px;padding:6px 15px;background:#337ab7;color:#fff}.aside .aside-dialog .aside-header .close{margin-right:-8px;padding:4px 8px;color:#fff;font-size:25px;opacity:.8}.aside .aside-dialog .aside-body{position:relative;padding:15px}.aside .aside-dialog .aside-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.aside .aside-dialog .aside-footer .btn+.btn{margin-left:5px;margin-bottom:0}.aside .aside-dialog .aside-footer .btn-group .btn+.btn{margin-left:-1px}.aside .aside-dialog .aside-footer .btn-block+.btn-block{margin-left:0}.aside-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.aside-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.aside-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.datepicker.dropdown-menu{width:250px;height:270px}.datepicker.dropdown-menu button{outline:0;border:0}.datepicker.dropdown-menu tbody{height:180px}.datepicker.dropdown-menu tbody button{padding:6px}.datepicker.dropdown-menu.datepicker-mode-1 tbody button,.datepicker.dropdown-menu.datepicker-mode-2 tbody button{height:65px}.callout{margin:20px 0;padding:20px;border-left:3px solid #eee}.callout h4{margin-top:0;margin-bottom:5px}.popover.top-left,.popover.top-right{margin-top:-10px}.callout p:last-child{margin-bottom:0}.callout-danger{border-color:#eed3d7;background-color:#fdf7f7}.callout-danger h4{color:#b94a48}.callout-warning{border-color:#faebcc;background-color:#faf8f0}.callout-warning h4{color:#8a6d3b}.callout-info{border-color:#bce8f1;background-color:#f4f8fa}.callout-info h4{color:#34789a}.modal.center .modal-dialog{position:fixed;top:40%;left:50%;min-width:320px;max-width:630px;width:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.popover.top-left .arrow{margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px;left:10%}.popover.top-left .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.bottom-left,.popover.bottom-right{margin-top:10px}.popover.top-right .arrow{margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px;left:90%}.popover.top-right .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.bottom-left .arrow{margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px;left:10%}.popover.bottom-left .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.bottom-right .arrow{margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px;left:90%}.popover.bottom-right .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.timepicker.dropdown-menu{padding:0 4px}.timepicker.dropdown-menu button{border:0}.timepicker.dropdown-menu tbody button{padding:6px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-group-xs>.btn{font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px}.btn-group-xs>.btn{padding:1px 5px}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.tooltip.tooltip-info.top .tooltip-arrow,.tooltip.tooltip-info.top-left .tooltip-arrow,.tooltip.tooltip-info.top-right .tooltip-arrow{border-top-color:#d9edf7}.tooltip.tooltip-info.right .tooltip-arrow{border-right-color:#d9edf7}.tooltip.tooltip-info.bottom .tooltip-arrow,.tooltip.tooltip-info.bottom-left .tooltip-arrow,.tooltip.tooltip-info.bottom-right .tooltip-arrow{border-bottom-color:#d9edf7}.tooltip.tooltip-info.left .tooltip-arrow{border-left-color:#d9edf7}.tooltip.tooltip-info .tooltip-inner{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.tooltip.tooltip-info .tooltip-inner hr{border-top-color:#a6e1ec}.tooltip.tooltip-info .tooltip-inner .alert-link{color:#245269}.tooltip.tooltip-success.top .tooltip-arrow,.tooltip.tooltip-success.top-left .tooltip-arrow,.tooltip.tooltip-success.top-right .tooltip-arrow{border-top-color:#dff0d8}.tooltip.tooltip-success.right .tooltip-arrow{border-right-color:#dff0d8}.tooltip.tooltip-success.bottom .tooltip-arrow,.tooltip.tooltip-success.bottom-left .tooltip-arrow,.tooltip.tooltip-success.bottom-right .tooltip-arrow{border-bottom-color:#dff0d8}.tooltip.tooltip-success.left .tooltip-arrow{border-left-color:#dff0d8}.tooltip.tooltip-success .tooltip-inner{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.tooltip.tooltip-success .tooltip-inner hr{border-top-color:#c9e2b3}.tooltip.tooltip-success .tooltip-inner .alert-link{color:#2b542c}.tooltip.tooltip-danger.top .tooltip-arrow,.tooltip.tooltip-danger.top-left .tooltip-arrow,.tooltip.tooltip-danger.top-right .tooltip-arrow{border-top-color:#f2dede}.tooltip.tooltip-danger.right .tooltip-arrow{border-right-color:#f2dede}.tooltip.tooltip-danger.bottom .tooltip-arrow,.tooltip.tooltip-danger.bottom-left .tooltip-arrow,.tooltip.tooltip-danger.bottom-right .tooltip-arrow{border-bottom-color:#f2dede}.tooltip.tooltip-danger.left .tooltip-arrow{border-left-color:#f2dede}.tooltip.tooltip-danger .tooltip-inner{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.tooltip.tooltip-danger .tooltip-inner hr{border-top-color:#e4b9c0}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;border-width:5px 5px 0;border-top-color:#000;margin-left:-5px}.tooltip.tooltip-danger .tooltip-inner .alert-link{color:#843534}.tooltip.top-left{margin-top:-3px;padding:5px 0}.tooltip.top-left .tooltip-arrow{left:10%}.tooltip.top-right{margin-top:-3px;padding:5px 0}.tooltip.bottom-left,.tooltip.bottom-right{margin-top:3px;padding:5px 0}.tooltip.top-right .tooltip-arrow{left:90%}.tooltip.bottom-left .tooltip-arrow{top:0;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;left:10%}.tooltip.bottom-right .tooltip-arrow{top:0;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;left:90%}
\ No newline at end of file
diff --git a/public/app/84bcebb1.app.js b/public/app/84bcebb1.app.js
deleted file mode 100644
index 3d9e755..0000000
--- a/public/app/84bcebb1.app.js
+++ /dev/null
@@ -1,44 +0,0 @@
-"use strict";angular.module("xCallyShuttleApp",["adf","adf.structures.base","adf.widget.clock","adf.widget.iframe","adf.widget.counter","adf.widget.table","adf.widget.pie-chart","angular-md5","angular.filter","angularFileUpload","btford.socket-io","chart.js","checklist-model","colorpicker.module","frapontillo.bootstrap-switch","infinite-scroll","LocalStorageModule","mgo-angular-wizard","ng-slide-down","ngAnimate","ngCookies","ngCsv","ngMap","ngResource","ngSanitize","notification","oc.lazyLoad","pascalprecht.translate","pdf","remoteValidation","smart-table","sprintf","textAngular","toastr","ui-notification","ui.bootstrap.modal","ui.bootstrap.dropdown","ui.bootstrap.popover","ui.bootstrap.timepicker","ui.bootstrap.tooltip","ui.bootstrap.tpls","ui.router","ui.navbar","ui.select","ui.sortable","xeditable","ngAudio","truncate","ngScrollbars","ngEmoticons"]).config(["$stateProvider","$urlRouterProvider","$locationProvider","$httpProvider","$translateProvider","localStorageServiceProvider","dashboardProvider","ScrollBarsProvider",function(a,b,c,d,e,f,g,h){b.otherwise("/login"),e.useStaticFilesLoader({prefix:"assets/languages/locale-",suffix:".json"}),e.preferredLanguage("en_EN"),e.useLocalStorage(),e.useSanitizeValueStrategy("sanitize"),c.html5Mode(!0),d.interceptors.push("authInterceptor"),g.structure("4-4-4",{rows:[{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("3-3-3-3",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"}]}]}),f.setPrefix("xcally"),h.defaults={scrollButtons:{scrollAmount:"auto",enable:!0},axis:"y"}}]).factory("settings",["$rootScope",function(a){var b={layout:{pageSidebarClosed:!1,pageQuickSidebarOpened:!1,pageBodySolid:!1,pageAutoScrollOnLoad:1e3}};return a.settings=b,b}]).factory("authInterceptor",["$rootScope","$q","$cookieStore",function(a,b,c){return{request:function(a){return a.headers=a.headers||{},c.get("token")&&(a.headers.Authorization="Bearer "+c.get("token")),a}}}]).run(["$rootScope","$location","$state","$stateParams","$window","$http","Auth","editableThemes","editableOptions",function(a,b,c,d,e,f,g,h,i){a.$state=c,a.$stateParams=d,h.bs3.inputClass="input-sm",h.bs3.buttonsClass="btn-xs",i.theme="bs3",a.online=navigator.onLine,e.addEventListener("offline",function(){a.$apply(function(){a.online=!1})},!1),e.addEventListener("online",function(){a.$apply(function(){a.online=!0})},!1),a.$on("$stateChangeStart",function(a,c){g.isLoggedInAsync(function(a){c.authenticate&&!a&&b.path("/login")})}),a.updateTableConfig=function(a,b){var c=_.find(a,{name:"All"});c&&(c.value=b)}}]),angular.module("xCallyShuttleApp").factory("Agent",["$resource",function(a){return a("/api/agents/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents",{url:"/agents",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AgentListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.agents={checked:[]},a.check=function(b,c){c?a.agents.checked=angular.copy(_.pluck(a.displayedAgents,"id")):a.agents.checked=[]},a.getAgents=function(b){return _.map(a.displayedAgents,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("agent"),b.url="/api/agents",h.getPage(b).then(function(d){a.displayedAgents=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.agentsByPage,a.displayedAgents.length),c.updateTableConfig(a.conf.agentsByPage,a.displayedAgents.length)}),f.socket.on("agent:save",function(){a.initList(b)}),f.socket.on("agent:remove",function(c){a.agents.checked=_.without(a.agents.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/agents/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/agents",{params:{id:a.agents.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.list",{url:"/list",templateUrl:"app/agent/list/list.html",controller:"AgentListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("AgentViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","socket","FileUploader","Auth",function(a,b,c,d,e,f,g,h,i){a.Auth=i,a.updatePassword=function(){var f,g;i.isAdmin()?(f="/api/agents/password/"+e.id+"/reset",g={newPassword:a.agent.newPwd}):(f="/api/agents/password/",g={oldPassword:a.agent.currentPwd,newPassword:a.agent.newPwd}),b.put(f,g).success(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})};var j=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});j.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),j.onSuccessItem=function(b,e,f,g){a.agent.userpic=e.userpic,a.agent.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},j.onErrorItem=function(a,b,e,f){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},j.onCompleteAll=function(){j.clearQueue()},a.initView=function(){b.get("/api/agents/"+e.id).success(function(b){a.agent=b,a.agent.transport=a.agent.transport?a.agent.transport.split(","):[],a.agent.allow=a.agent.allow?a.agent.allow.split(";"):[]}).error(function(a){c.show(a.message,"danger")})},a.updateItem=function(){var f=angular.copy(a.agent),g=angular.copy(a.agent);delete f.password,delete f.md5secret,f.transport=f.transport.join(","),f.allow=f.allow.join(";"),b.put("/api/agents/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.agent=g,b.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.view",{url:"/view/:id",templateUrl:"app/agent/view/view.html",controller:"AgentViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.agents.view.account",{url:"/account",templateUrl:"app/agent/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("AgentWizardCtrl",["$scope","$http","xAlert","$location","WizardHandler","$translate",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"agent",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){b.post("/api/agents/validate/",a.item).success(function(a){console.log(a),a.length?c.show(f.instant("MESSAGE_EXIST_INTERNAL"),"danger"):e.wizard().next()}).error(function(a){c.show(f.instant(a.message),"danger")})},a.getFirstFreeInternal=function(){b.get("/api/settings/internal").success(function(b){a.item.internal=b.value}).error(function(a){c.show(f.instant(a.message),"danger")})},a.exitValidation=function(a){return a},a.createItem=function(){a.item.transport&&(a.item.transport=a.item.transport.join(",")),a.item.allow&&(a.item.allow=a.item.allow.join(";")),b.post("/api/agents/",a.item).success(function(){d.path("/agents/list")}).error(function(a){a.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.wizard",{url:"/wizard",templateUrl:"app/agent/wizard/wizard.html",controller:"AgentWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={AutomationsByPage:{name:"10",value:10}},a.AutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.Automations={checked:[]},a.check=function(b,c){c?a.Automations.checked=angular.copy(_.pluck(a.displayedAutomations,"id")):a.Automations.checked=[]},a.getAutomations=function(b){return _.map(a.displayedAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("automation"),b.url="/api/automations",e.getPage(b).then(function(c){a.displayedAutomations=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.AutomationsByPage,a.displayedAutomations.length),d.updateTableConfig(a.conf.AutomationsByPage,a.displayedAutomations.length)}),g.socket.on("automation:save",function(){a.initList(b)}),g.socket.on("automation:remove",function(c){a.Automations.checked=_.without(a.Automations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/automations",{params:{id:a.Automations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/automations/"+a,{status:d}).success(function(a){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.list",{url:"/list",templateUrl:"app/automation/list/list.html",controller:"AutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AutomationViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","automations",function(a,b,c,d,e,f){a.$automations=f,a.forms={info:{}},a.fields={},a.properties=f.properties,a.initView=function(){c.get("/api/automations/"+b.id).success(function(b){a.automation=b,a.conditionsFilter=JSON.parse(b.conditions),a.actionsFilter=JSON.parse(b.actions),a.fields.conditions=a.$automations.automations[b.channel].conditions,a.fields.actions=a.$automations.automations[b.channel].actions}).error(function(a){e.show(a.message,"danger")})},a.updateAutomation=function(){c.put("/api/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description,conditions:angular.toJson(a.conditionsFilter),actions:angular.toJson(a.actionsFilter)}).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.view",{url:"/view/:id",templateUrl:"app/automation/view/view.html",controller:"AutomationViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.automations.view.settings",{url:"/settings",templateUrl:"app/automation/view/view.settings.html"}).state("main.automations.view.routes",{url:"/routes",templateUrl:"app/automation/view/view.routes.html"}).state("main.automations.view.application",{url:"/application",templateUrl:"app/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("AutomationWizardCtrl",["$scope","$http","$location","xAlert","automations","WizardHandler",function(a,b,c,d,e,f){a.$automations=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={},a.fields={},a.properties=e.properties,a.forms={general:{}};var g={group:{"boolean":"AND",rules:[],type:"CONDITION",main:!0}},h={group:{rules:[],type:"ACTION"}};a.conditionsFilter=_.clone(g,!0),a.actionsFilter=_.clone(h,!0),a.$watch("item.channel",function(b,c){c&&(a.tempData[c].conditionsFilter=_.clone(a.conditionsFilter,!0),a.tempData[c].actionsFilter=_.clone(a.actionsFilter,!0)),a.conditionsFilter=a.tempData[b].conditionsFilter?a.tempData[b].conditionsFilter:_.clone(g,!0),a.actionsFilter=a.tempData[b].actionsFilter?a.tempData[b].actionsFilter:_.clone(h,!0),a.fields.conditions=a.$automations.automations[b].conditions,a.fields.actions=a.$automations.automations[b].actions},!0),a.item.channel="mail",a.createItem=function(){a.item.conditions=angular.toJson(a.conditionsFilter),a.item.actions=angular.toJson(a.actionsFilter),b.post("/api/automations",a.item).success(function(){c.path("/automations/list")}).error(function(a){d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.wizard",{url:"/wizard",templateUrl:"app/automation/wizard/wizard.html",controller:"AutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat",{url:"/chat",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ChatMessage",["$resource",function(a){return a("/api/chat/messages/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").factory("ChatRoom",["$resource",function(a){return a("/api/chat/rooms/:id/:controller",{id:"@id"},{me:{method:"GET",isArray:!0,params:{id:"me"}},users:{method:"GET",params:{id:"users"}},externals:{method:"GET",isArray:!0,params:{id:"type",controller:"external"}},groups:{method:"GET",isArray:!0,params:{id:"groups"}},update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").directive("preview",function(){return{templateUrl:"app/chat/preview/preview.html",restrict:"EA",link:function(a,b,c){}}}),angular.module("xCallyShuttleApp").controller("ChatQueueListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","stResource",function(a,b,c,d,e,f,g,h){a.conf={chatQueuesByPage:{name:"10",value:10}},a.chatQueuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.chatQueues={checked:[]},a.check=function(b,c){c?a.chatQueues.checked=angular.copy(_.pluck(a.displayedChatQueues,"id")):a.chatQueues.checked=[]},a.initList=function(b){e.unsyncUpdates("chat_queue"),b.url="/api/chat/queues/",h.getPage(b).then(function(c){a.displayedChatQueues=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(c.queuesByPage,a.displayedChatQueues.length),g.updateTableConfig(a.conf.queuesByPage,a.displayedChatQueues.length)}),e.socket.on("chat_queue:save",function(){a.initList(b)}),e.socket.on("chat_queue:remove",function(c){a.chatQueues.checked=_.without(a.chatQueues.checked,c.id),a.initList(b)})},a.getChatQueues=function(b){return _.map(a.displayedChatQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/chat/queues/"+a).success(function(){c.show(d.instant("MESSAGE_CHAT_QUEUE_DELETE_SUCCESS")+"!","success")}).error(function(){c.show(d.instant("MESSAGE_CHAT_QUEUE_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/chat/queues/",{params:{id:a.chatQueues.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.$on("$destroy",function(){e.unsyncUpdates("chat_queue")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.list",{url:"/list",templateUrl:"app/chat/queue/list/list.html",controller:"ChatQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/chat/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/chat/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/chat/queues/"+e.id).success(function(b){a.queue=b}).error(function(a){console.error(a)})},a.updateChatQueue=function(){var f=angular.copy(a.queue);b.put("/api/chat/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){a.queue=f,b.errors.forEach(function(a){c.show(a.message,"danger")})})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/chat/user_has_queues",method:"GET",params:{ChatQueueId:a.queue.id}}).success(function(a){ComponentsDropdowns.bindChatQueue(c.rows,_.pluck(a,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.view",{url:"/view/:id",templateUrl:"app/chat/queue/view/view.html",controller:"ChatQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.chat.queues.view.settings",{url:"/settings",templateUrl:"app/chat/queue/view/view.settings.html"}).state("main.chat.queues.view.agents",{url:"/agents",templateUrl:"app/chat/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("ChatQueueWizardCtrl",["$scope","$http","$location","xAlert","WizardHandler","$translate",function(a,b,c,d,e,f){a.forms={},a.item={},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/chat/queues",a.item).success(function(){d.show(f.instant("MESSAGE_WELL_DONE"),"success"),c.path("/chat/queues/list")}).error(function(a){d.show(f.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.wizard",{url:"/wizard",templateUrl:"app/chat/queue/wizard/wizard.html",controller:"ChatQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentCtrl",["$scope","$http","socket",function(a,b,c){console.log("ChatRealtimeViewAgentCtrl"),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")}),a.initAgents=function(){b.get("/api/report/chats").success(function(b){a.agents=b,c.socket.on("report_chat:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_chat:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewSessionCtrl",["$scope","$http","socket",function(a,b,c){a.conf={sessionsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.sessionsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")}),a.initChats=function(){b.get("/api/report/chat/sessions").success(function(b){a.sessions=b,c.socket.on("report_chat_session:save",function(b){var c=_.find(a.sessions,{id:b.id}),d=a.sessions.indexOf(c);c?_.merge(a.sessions[d],b):a.sessions.push(b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.chat.realtime.view.agents"}],a.sessions=[{name:"View1",link:"main.chat.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime.view",{url:"/view",templateUrl:"app/chat/realtime/view/view.html",controller:"ChatRealtimeViewCtrl"}).state("main.chat.realtime.view.agents",{url:"/agents",controller:"ChatRealtimeViewAgentCtrl",templateUrl:"app/chat/realtime/view/agent/agent.html"}).state("main.chat.realtime.view.sessions",{url:"/sessions",controller:"ChatRealtimeViewSessionCtrl",templateUrl:"app/chat/realtime/view/session/session.html"})}]),angular.module("xCallyShuttleApp").controller("ChatStatisticCtrl",["$scope","$http","$stateParams","xAlert","socket","$location","$translate","$filter",function(a,b,c,d,e,f,g,h){a.conf={chatVisitorsByPage:10,chatRoomsByPage:10,chatEnquiriesByPage:10},a.$location=f,a.$translate=g,a.$filter=h,a.initList=function(){b.get("api/chat/visitors").success(function(b){a.chatVisitors=b,e.syncUpdates("chat_visitor",a.chatVisitors)}),b.get("api/chat/rooms").success(function(b){a.chatRooms=b,e.syncUpdates("chat_room",a.chatRooms)}),b.get("api/chat/enquiries").success(function(b){a.chatEnquiries=b,e.syncUpdates("chat_enquery",a.chatEnquiries)})},a.initVisitorView=function(){b.get("api/chat/visitors/"+c.id).success(function(b){a.chatVisitor=b}).error(function(a){d.show(g.instant(a.message),"danger")})},a.initEnquiryView=function(){b.get("api/chat/enquiries/"+c.id).success(function(b){a.chatEnquiry=b}).error(function(a){d.show(g.instant(a.message),"danger")})},a.initRoomView=function(){console.log(c),b.get("api/chat/rooms/"+c.id).success(function(b){a.chatRoom=b}).error(function(a){d.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.statistics",{url:"/statistics",templateUrl:"app/chat/statistic/statistic.html",controller:"ChatStatisticCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]},{name:"ui.select",insertBefore:"#ng_load_plugins_before",files:["assets/plugins/ui-select/select.min.css","assets/plugins/ui-select/select.min.js"]}])}]}}).state("main.chat.statistics.summary",{url:"/summary",templateUrl:"app/chat/statistic/statistic.summary.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile-old.css"]})}]}}).state("main.chat.statistics.enquiries",{url:"/enquiries",templateUrl:"app/chat/statistic/statistic.enquiry.html"}).state("main.chat.statistics.enquiry",{url:"/enquiry/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.enquiry.view.html"}).state("main.chat.statistics.conversations",{url:"/conversations",templateUrl:"app/chat/statistic/statistic.conversation.html"}).state("main.chat.statistics.conversation",{url:"/conversation/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.conversation.view.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]})}]}}).state("main.chat.statistics.visitors",{url:"/visitors",templateUrl:"app/chat/statistic/statistic.visitor.html"}).state("main.chat.statistics.visitor",{url:"/visitor/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.visitor.view.html"})}]),angular.module("xCallyShuttleApp").controller("ChatTimelineListCtrl",["$scope","$http","socket",function(a,b,c){function d(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/chat").success(function(a){a.forEach(d),c.socket.on("event:chat:save",d)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.timeline.list",{url:"/list",templateUrl:"app/chat/timeline/list/list.html",controller:"ChatTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","stResource",function(a,b,c,d,e,f,g,h){a.conf={chatWebsitesByPage:{name:"10",value:10}},a.chatWebsitesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.chatWebsites={checked:[]},a.check=function(b,c){c?a.chatWebsites.checked=angular.copy(_.pluck(a.displayedChatWebsites,"id")):a.chatWebsites.checked=[]},a.getChatWebsites=function(b){return _.map(a.displayedChatWebsites,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("chat_website"),b.url="/api/chat/websites",h.getPage(b).then(function(c){a.displayedChatWebsites=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(a.chatWebsitesByPage,a.displayedChatWebsites.length),g.updateTableConfig(a.conf.chatWebsitesByPage,a.displayedChatWebsites.length)}),e.socket.on("chat_website:save",function(){a.initList(b)}),e.socket.on("chat_website:remove",function(c){a.chatWebsites.checked=_.without(a.chatWebsites.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/chat/websites/"+a).success(function(){c.show(d.instant("MESSAGE_CHAT_WEBSITE_DELETE_SUCCESS")+"!","success")}).error(function(){c.show(d.instant("MESSAGE_CHAT_WEBSITE_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/chat/websites",{params:{id:a.chatWebsites.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.$on("$destroy",function(){e.unsyncUpdates("chat_website")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.list",{url:"/list",templateUrl:"app/chat/website/list/list.html",controller:"ChatWebsiteListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionListCtrl",["$scope","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g){a.initActons=function(){console.log(d),a.sortableOptions={stop:function(){console.log("stop",_.pluck(a.chatApplications,"id")),b.post("api/chat/websites/"+d.websiteId+"/applications",{applications:_.pluck(a.chatApplications,"id")}).success(function(b){angular.copy(b,a.chatApplications)}).error(function(a){console.error(a)})}},b.get("/api/chat/applications",{params:{ChatWebsiteId:d.websiteId}}).success(function(b){a.chatApplications=b,e.socket.on("chat_application:remove",function(b){_.remove(a.chatApplications,{id:b.id})})})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/chat/applications/"+a).success(function(){f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.list",{url:"/list",templateUrl:"app/chat/website/view/action/list/list.html",controller:"chatWebsiteViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/chat/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),console.log(c),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){b.get("/api/chat/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,chatAccountId:c.id};switch(a.application.app){case"agent":
-g.UserId=a.application.UserId;break;case"queue":g.chatQueueId=a.application.chatQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/chat/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.view",{url:"/view/:actionId",templateUrl:"app/chat/website/view/action/view/view.html",controller:"chatWebsiteViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionWizardCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){console.log(c),a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){b.get("/api/chat/queues",{params:{page:0,per_page:1e3}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:1e3}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.createItem=function(){var d=["*","*","*","*"],f={app:a.application.app,timeout:a.application.timeout,ChatWebsiteId:c.websiteId};switch(a.application.app){case"agent":f.UserId=a.application.UserId;break;case"queue":f.ChatQueueId=a.application.ChatQueueId}switch(a.application.intType){case"always":f.interval=d.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(d[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),d[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",d[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",d[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",f.interval=d.join(","),delete a.application.IntervalId;break;case"list":f.IntervalId=a.application.IntervalId}b.post("/api/chat/applications",f).success(function(){e.path("/chat/websites/view/"+c.websiteId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){g.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.wizard",{url:"/wizard",templateUrl:"app/chat/website/view/action/wizard/wizard.html",controller:"chatWebsiteViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.snippet",{url:"/snippet",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewSnippetViewCtrl",["$scope","$http","$stateParams","$translate",function(a,b,c,d){a.$translate=d,a.statePreview={state:"online"},a.lang={HeaderCurrentlyChatting:"Live Chat",HeaderOffline:"Contact us",OperatorOfflineMessage:"It appears as if all operators are currently offline.",OfflineMessage:"<strong>We're not online.</strong><br/>It doesn't mean we're not there to help - leave your message below and we'll be in touch as soon as possible.",EnquiryMessagePlaceholder:"Your message...",EnquiryButtonText:"Leave message",EnquirySubmitSuccess:"Your message was sucessfully submitted - we will contact you as soon as possible.",OperatorComposing:"{fullname} is typing...",FirstMessageText:"",ExitChatButtonText:"Exit Chat",ExitChatQuestionText:"Are you sure?",ExitChatButtonConfirmText:"Yes",ExitChatButtonCancelText:"No",MessagePlaceholderText:"Your message...",MessageSendButtonText:"Send",ValidationEmailRequired:"Please enter your email address",ValidationEmailInvalid:"Please enter a valid email address",ValidationEmailMaxLength:"The email address may not exceed 85 characters",ValidationUsernameRequired:"Please enter your name",ValidationUsernameMaxLength:"The name may not exceed 45 characters",ValidationEnquiryRequired:"Please enter your enquiry",ValidationEnquiryMaxLength:"The enquiry may not exceed 1500 characters",ValidationMessageRequired:"Please enter your message",ValidationMessageMaxLength:"The message may not exceed 750 characters"},a.getSnippetCode=function(){b.get("api/chat/websites/"+c.websiteId+"/snippet").success(function(b){a.snippetCode=b})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.snippet.view",{url:"/view",templateUrl:"app/chat/website/view/snippet/view/view.html",controller:"chatWebsiteViewSnippetViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewCtrl",["$scope","xAlert","$http","$location","$stateParams","$translate","WizardHandler",function(a,b,c,d,e,f,g){a.initApplication=function(){a.forms={},a.application={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.deleteItem=function(a){c["delete"]("api/chat/applications/"+a).error(function(){b.show(f.instant("Something went wrong!"),"danger")})},a.initView=function(){c.get("/api/chat/websites/"+e.websiteId).success(function(b){a.chatWebsite=b}).error(function(a){b.show(a.message,"danger")})},a.updateItem=function(){c.put("/api/chat/websites/"+a.chatWebsite.id,a.chatWebsite).success(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_SUCCESS")+"!","success")}).error(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view",{url:"/view/:websiteId",templateUrl:"app/chat/website/view/view.html",controller:"ChatWebsiteViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites",{url:"/websites",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert",function(a,b,c,d,e,f){a.$translate=d,a.forms={formSetting:void 0,formAppearance:void 0,formLabel:void 0,formFunctionality:void 0},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.item={},a.createItem=function(){b.post("api/chat/websites",a.item).success(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_SUCCESS"),"success"),c.path("/chat/websites/list")}).error(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.wizard",{url:"/wizard",templateUrl:"app/chat/website/wizard/wizard.html",controller:"ChatWebsiteWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("DashboardCtrl",["$scope","$translate",function(a,b){a.voice=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.voice"}],a.mail=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.mail"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.dashboard",{"abstract":!0,url:"/dashboard",templateUrl:"app/dashboard/dashboard.html",controller:"DashboardCtrl"}).state("main.dashboard.voice",{url:"/voice",controller:"DashboardVoiceCtrl",templateUrl:"app/dashboard/voice/voice.html"}).state("main.dashboard.mail",{url:"/mail",controller:"DashboardMailCtrl",templateUrl:"app/dashboard/mail/mail.html"})}]),angular.module("xCallyShuttleApp").controller("DashboardMailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").controller("DashboardVoiceCtrl",["$scope","$http","xAlert","socket",function(a,b,c,d){function e(b,c){console.log("element in check Function is",b);var d;return!b.queuecallerjoinAt||b.queuecallerleaveAt||b.queuecallercompleteAt||b.queuecallerabandonAt?b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="activeCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="completedCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&b.queuecallerabandonAt&&(d="abandonedCalls"):d="waitCalls",console.log("result type is",d),c?d:void(d&&a.queueStats[d]++)}a.queueStats={abandonedCalls:0,completedCalls:0,waitCalls:0,activeCalls:0},a.getQueueStats=function(){b.get("/api/report/queues").then(function(b){a.queueReports=b.data,a.queueReports.forEach(function(a){e(a,!1)}),d.socket.on("report_queue:save",function(b){console.log("report save or update");var c=_.find(a.queueReports,{id:b.id}),d=a.queueReports.indexOf(c);if(c){console.log("found item, is an update");var f=e(c,!0);console.log("old item value is "+f+", decrementing..."),f&&a.queueStats[f]--,_.merge(a.queueReports[d],b)}else console.log("item not found in collection, is a create"),a.queueReports.unshift(b);console.log("checking new item type and increasing..."),e(b,!1)})})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","$log","stResource",function(a,b,c,d,e,f,g,h,i){a.conf={faxAccountsByPage:{name:"10",value:10}},a.faxAccountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.fax_accounts={checked:[]},a.check=function(b,c){c?a.fax_accounts.checked=angular.copy(_.pluck(a.displayedFaxAccounts,"id")):a.fax_accounts.checked=[]},a.initList=function(b){e.unsyncUpdates("fax_account"),b.url="/api/fax/accounts",i.getPage(b).then(function(c){a.displayedFaxAccounts=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(a.faxAccountsByPage,a.displayedFaxAccounts.length),g.updateTableConfig(a.conf.faxAccountsByPage,a.displayedFaxAccounts.length)}),e.socket.on("fax_account:save",function(){a.initList(b)}),e.socket.on("fax_account:remove",function(c){a.fax_accounts.checked=_.without(a.fax_accounts.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/fax/accounts/"+a).success(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_SUCCESS"),"success")}).error(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/fax/accounts",{params:{id:a.fax_accounts.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.getFaxAccounts=function(b){return _.map(a.faxAccountsByPage,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.$on("$destroy",function(){e.unsyncUpdates("fax_account")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.list",{url:"/list",templateUrl:"app/fax/account/list/list.html",controller:"FaxAccountListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.forms={},a.sortableOptions={stop:function(){b.post("api/fax/accounts/"+c.id+"/applications",{applications:_.pluck(a.faxApplications,"id")}).success(function(b){a.faxApplications=b}).error(function(a){console.error(a)})},"ui-floating":!0},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.initApplication=function(){a.forms={},a.application={}},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("api/fax/applications/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.getAppdata=function(b,c){switch(b){case"agent":return a.agents?_.find(a.agents,{id:c}).name:c;case"queue":return a.faxQueues?_.find(a.faxQueues,{id:c}).name:c}return"UNKNOWN"},a.createItem=function(){switch(a.application.appdata=a.application.appdata.id,a.application.app){case"agent":a.application.UserId=parseInt(a.application.appdata,10);break;case"queue":a.application.FaxQueueId=parseInt(a.application.appdata,10)}a.application.FaxAccountId=c.id,b.post("api/fax/applications",a.application).success(function(){e.path("fax/accounts/view/"+c.id+"/routes")}).error(function(){h.show("Something went wrong!","danger")})},a.$watch("application.app",function(c){if(c){var d;switch(c){case"agent":d="api/agents";break;case"queue":d="api/fax/queues"}b.get(d).success(function(b){a.items=b.rows})}},!0),a.initView=function(){b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.log(a)}),b.get("/api/fax/accounts/"+c.id).success(function(b){a.account=b}).error(function(){})},a.getAgents=function(){b.get("api/fax/agents").success(function(b){a.agents=b})},a.getFaxApplications=function(){b.get("/api/fax/applications",{params:{FaxAccountId:c.id}}).success(function(b){a.faxApplications=b,g.socket.on("fax_application:remove",function(b){_.remove(a.faxApplications,{id:b.id})})}),b.get("/api/agents").success(function(b){a.agents=b.rows}),b.get("/api/fax/queues").success(function(b){a.faxQueues=b.rows})},a.updateItemFaxAccount=function(){b.put("/api/fax/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_SUCCESS")+".","success")}).error(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.view",{url:"/view/:id",templateUrl:"app/fax/account/view/view.html",controller:"FaxAccountViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.fax.accounts.view.settings",{url:"/settings",templateUrl:"app/fax/account/view/view.settings.html",authenticate:!0}).state("main.fax.accounts.view.routes",{url:"/routes",templateUrl:"app/fax/account/view/view.routes.html",authenticate:!0}).state("main.fax.accounts.view.applications",{url:"/applications",templateUrl:"app/fax/account/view/view.applications.html",authenticate:!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.ecm=!1,a.item.minrate="9600",a.item.maxrate="33600",b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.error(a)})},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/fax/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_SUCCESS")+".","success"),c.path("/fax/accounts/list")}).error(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.wizard",{url:"/wizard",templateUrl:"app/fax/account/wizard/wizard.html",controller:"FaxAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={faxAutomationsByPage:{name:"10",value:10}},a.faxAutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.faxAutomations={checked:[]},a.check=function(b,c){c?a.faxAutomations.checked=angular.copy(_.pluck(a.displayedFaxAutomations,"id")):a.faxAutomations.checked=[]},a.getFaxAutomations=function(b){return _.map(a.displayedFaxAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("fax_business_automation"),b.url="/api/fax/business/automations",e.getPage(b).then(function(c){a.displayedFaxAutomations=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.faxAutomationsByPage,a.displayedFaxAutomations.length),d.updateTableConfig(a.conf.faxAutomationsByPage,a.displayedFaxAutomations.length)}),g.socket.on("fax_business_automation:save",function(){a.initList(b)}),g.socket.on("fax_business_automation:remove",function(c){a.faxAutomations.checked=_.without(a.faxAutomations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/fax/business/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/fax/business/automations",{params:{id:a.faxAutomations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/fax/business/automations/"+a,{status:d}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.$on("$destroy",function(){g.unsyncUpdates("fax_business_automation")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.list",{url:"/list",templateUrl:"app/fax/automation/list/list.html",controller:"FaxAutomationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationViewCtrl",["$scope","$stateParams","$http","automation","socket","xAlert","$translate","$log",function(a,b,c,d,e,f,g,h){a.initView=function(){a.forms={info:{}},a.automations=d.automations,c.get("/api/fax/business/automations/"+b.id).success(function(c){h.debug(c),a.test=c,a.automation=c,e.syncUpdatesByAttributes("business_condition",{FaxBusinessAutomationId:b.id},c.BusinessConditions)}).error(function(){f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateAutomation=function(){c.put("/api/fax/business/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description}).success(function(a){h.debug(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),h.error(a)})},a.getOperatorsByCondition=function(a){var b=[],c=_.find(d.automations.conditions,{key:a});return c.operators&&c.operators.length&&(b=c.operators),b},a.getAttributesByCondition=function(a){var b=[],c=_.find(d.automations.conditions,{key:a});if(c.attributes&&c.attributes.length)switch(c.key){case"createdAt":b=_.map(c.attributes,function(a){return a.value=parseInt(a.value,10),a});break;default:b=c.attributes}return b},a.addNewCondition=function(b){c.post("/api/business/conditions",{type:b,condition:"status",FaxBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessConditions.push(b)}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addNewAction=function(){c.post("/api/business/actions",{condition:"status",FaxBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessActions.push(b)}).error(function(a){console.error(a)})},a.removeCondition=function(a){c["delete"]("/api/business/conditions/"+a).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.removeAction=function(b){c["delete"]("/api/business/actions/"+b).success(function(b){console.log(b),a.automation.BusinessActions=_.reject(a.automation.BusinessActions,{id:b.id})}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateCondition=function(a,b,d){var e={};e[b]=d,c.put("/api/business/conditions/"+a,e).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateAction=function(a,b,d){var e={};e[b]=d,c.put("/api/business/actions/"+a,e).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.view",{url:"/view/:id",templateUrl:"app/fax/automation/view/view.html",controller:"FaxAutomationViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.fax.automations.view.settings",{url:"/settings",templateUrl:"app/fax/automation/view/view.settings.html",authenticate:!0}).state("main.fax.automations.view.routes",{url:"/routes",templateUrl:"app/fax/automation/view/view.routes.html",authenticate:!0}).state("main.fax.automations.view.application",{url:"/application",templateUrl:"app/fax/automation/view/view.application.html",authenticate:!0})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationWizardCtrl",["$scope","$http","$location","automation","WizardHandler","xAlert","$translate",function(a,b,c,d,e,f,g){a.forms={},a.automations={or:[],and:[],actions:[]},a.addNewChoice=function(b){var c=angular.copy(d.automations);a.automations[b].push(c)},a.removeChoice=function(b,c){a.automations[b].splice(c)},a.goNext=function(){e.wizard().next()},a.createItem=function(){a.automations.or.forEach(function(a){a.condition=a.condition.key,a.type="or",delete a.conditions,delete a.actions}),a.automations.and.forEach(function(a){a.condition=a.condition.key,a.type="and",delete a.conditions,delete a.actions}),a.automations.actions.forEach(function(a){a.condition=a.condition.key,delete a.conditions,delete a.actions}),b.post("api/fax/business/automations",a.automations).success(function(){f.show(g.instant("MESSAGE_WELL_DONE"),"success"),c.path("/fax/automations/list")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.wizard",{url:"/wizard",templateUrl:"app/fax/automation/wizard/wizard.html",controller:"FaxAutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax",{url:"/fax",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxInboxComposeCtrl",["$scope","$http","FileUploader","$location","Auth","xAlert","$cookieStore","$translate",function(a,b,c,d,e,f,g,h){a.forms={},a.form={to:[],sto:[]},b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),a.isNewMessageFromEmpty=!0;var i=a.uploader=new c({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+g.get("token")}});i.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),i.onBeforeUploadItem=function(b){b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html?a.form.html:""})},i.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},i.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d)},i.onCompleteAll=function(){i.clearQueue(),f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/fax/inbox/incoming")},i.onWhenAddingFileFailed=function(){f.show(h.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.sendFax=function(){return a.form.sto.length?void(i.queue.length?i.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/fax/inbox/incoming")}).error(function(a){f.show(h.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.cancel=function(){a.form.sto=[],delete a.form.from}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.compose",{url:"/compose",templateUrl:"app/fax/inbox/room/room.html",controller:"FaxInboxComposeCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxCtrl",["$scope","$http","$location","$translate","$timeout","$notification","Auth","socket","$interval",function(a,b,c,d,e,f,g,h,i){a.go=function(a,d,e){e?b.put("/api/fax/rooms/"+d,{status:e}).success(function(){c.path(a)}).error(function(a){console.error(a)}):c.path(a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox",{url:"/inbox",templateUrl:"app/fax/inbox/inbox.html",controller:"FaxInboxCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/inbox.css","assets/css/todo.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxInboxIncomingCtrl",["$scope","$http","$location","socket","Auth","xAlert",function(a,b,c,d,e,f){a.$location=c,a.getRooms=function(){e.isAdmin()?b.get("api/fax/rooms").success(function(b){a.faxRooms=b,d.syncUpdates("fax_room",a.faxRooms)}).error(function(a){console.error(a),f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")}):b.get("api/fax/rooms/agent/"+e.getCurrentUser().id).success(function(b){a.faxRooms=b,d.socket.on("fax_room:update",function(b){b.UserId===e.getCurrentUser().id&&a.faxRooms.push(b)})}).error(function(a){f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.incoming",{url:"/incoming",templateUrl:"app/fax/inbox/incoming/incoming.html",controller:"FaxInboxIncomingCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxRoomCtrl",["$scope","$http","$stateParams","$location","FileUploader","socket","Auth","xAlert","$translate","$cookieStore",function(a,b,c,d,e,f,g,h,i,j){function k(){a.lastMessage=_.reject(a.faxRoom.FaxMessages,function(a){return"RECEIVED"!==a.status}),a.lastMessage=_.sortByOrder(a.lastMessage,["id"],["desc"])[0],a.lastMessage&&(console.log(a.faxRoom),a.form.from=a.faxRoom.FaxAccount,a.form.to=[a.lastMessage.From.phone],a.form.sto=[a.lastMessage.From.phone])}var l=a.uploader=new e({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+j.get("token")}});l.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),l.onBeforeUploadItem=function(b){console.log(a.form.from.id,a.form.sto[0],a.isNewMessageFromEmpty,c.id,g.getCurrentUser().id),b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,roomId:c.id,userId:g.getCurrentUser().id,html:a.form.html}),console.log(b)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",b,c,d)},l.onCompleteAll=function(){l.clearQueue(),h.show(i.instant("MESSAGE_WELL_DONE"),"success")},l.onWhenAddingFileFailed=function(){h.show(i.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.initRoomView=function(){a.isNewMessageFromEmpty=!0,a.Auth=g,a.forms={},a.form={to:[],sto:[]},b.get("api/agents").success(function(b){a.agents=b}),b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),c.id&&b.get("/api/fax/rooms/"+c.id).success(function(b){a.faxRoom=b,a.isNewMessageFromEmpty=!1,f.syncUpdates("fax_message",[],function(b,c){"created"===b&&c.FaxRoomId===a.faxRoom.id&&(a.faxRoom.FaxMessages.push(c),k())}),k()}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.sendFax=function(){return a.form.sto.length?void(l.queue.length?l.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:g.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"success"),console.log("Fax Message sent")}).error(function(a){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.assignAgent=function(a){b.put("/api/fax/rooms/"+c.id,{UserId:a}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateStatus=function(d){b.put("/api/fax/rooms/"+c.id,{status:d}).success(function(b){a.faxRoom.status=b.status,h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){a.form.sto=[],delete a.form.from,l.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.room",{url:"/room/:id",templateUrl:"app/fax/inbox/room/room.html",controller:"FaxInboxRoomCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxQueueListCtrl",["$scope","$rootScope","$http","$translate","socket","Modal","xAlert","stResource",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("fax_queue")}),a.conf={queuesByPage:{name:"10",value:10}},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.faxQueues={checked:[]},a.check=function(b,c){
-c?a.faxQueues.checked=angular.copy(_.pluck(a.displayedFaxQueues,"id")):a.faxQueues.checked=[]},a.getFaxQueues=function(b){return _.map(a.displayedFaxQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(c){e.unsyncUpdates("fax_queue"),c.url="/api/fax/queues",h.getPage(c).then(function(d){a.displayedFaxQueues=d.rows,c.pagination.numberOfPages=d.total_pages,b.updateTableConfig(d.queuesByPage,a.displayedFaxQueues.length),b.updateTableConfig(a.conf.queuesByPage,a.displayedFaxQueues.length)}),e.socket.on("fax_queue:save",function(){a.initList(c)}),e.socket.on("fax_queue:remove",function(b){a.faxQueues.checked=_.without(a.faxQueues.checked,b.id),a.initList(c)})},a.deleteItem=f.confirm["delete"](function(a){c["delete"]("/api/fax/queues/"+a).success(function(){g.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){g.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){c["delete"]("/api/fax/queues/",{params:{id:a.faxQueues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})}),a.deleteItems=f.confirm["delete"](function(){c["delete"]("/api/fax/queues/",{params:{id:a.faxQueues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.list",{url:"/list",templateUrl:"app/fax/queue/list/list.html",controller:"FaxQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/fax/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/fax/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/fax/queues/"+d.id).success(function(b){a.queue=b}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateFaxQueue=function(){var f=angular.copy(a.queue);b.put("/api/fax/queues/"+d.id,f).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/fax/user_has_queues",method:"GET",params:{FaxQueueId:a.queue.id}}).success(function(b){ComponentsDropdowns.bindFaxQueue(a.teams,_.pluck(b,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.view",{url:"/view/:id",templateUrl:"app/fax/queue/view/view.html",controller:"FaxQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.fax.queues.view.settings",{url:"/settings",templateUrl:"app/fax/queue/view/view.settings.html"}).state("main.fax.queues.view.agents",{url:"/agents",templateUrl:"app/fax/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("FaxQueueWizardCtrl",["$scope","$http","WizardHandler","xAlert","$translate","$location",function(a,b,c,d,e,f){a.forms={},a.item={},a.next=function(){c.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/fax/queues",a.item).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success"),f.path("/fax/queues/list")}).error(function(a){d.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.wizard",{url:"/wizard",templateUrl:"app/fax/queue/wizard/wizard.html",controller:"FaxQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxTimelineListCtrl",["$scope","$http","socket","xAlert","$translate",function(a,b,c,d,e){function f(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/fax").success(function(a){a.forEach(f),c.socket.on("event:fax:save",f)}).error(function(a){console.error(a),d.show(e.instant("MESSAGE_FAX_ACCOUNT_GET_FAILURE"),"danger")})},a.$on("$destroy",function(){c.socket.removeAllListeners("event:fax:save")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.timeline.list",{url:"/list",templateUrl:"app/fax/timeline/list/list.html",controller:"FaxTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations",{url:"/integrations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("Integration",["$resource",function(a){return a("/api/integrations/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").controller("IntegrationListCtrl",["$scope","Modal","socket","FileUploader","Integration","xAlert",function(a,b,c,d,e,f){a.integrationsByPage=10;var g=a.uploader=new d({url:"api/integrations",autoUpload:!0,removeAfterUpload:!0});g.filters.push({name:"zipFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|zip|".indexOf(b)}}),g.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(b.name,"success")},g.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),b.errors.forEach(function(a){f.show(a.message,"danger")})},a.deleteItem=b.confirm["delete"](function(a){e["delete"]({id:a},function(){f.show("Integration Removed","success")},function(a){f.show(a.data.errors,"danger")})}),a.initList=function(){a.integrations=e.query({},function(a){c.syncUpdates("integration",a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations.list",{url:"/list",templateUrl:"app/integration/list/list.html",controller:"IntegrationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals",{url:"/intervals",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("IntervalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={intervalsByPage:{name:"10",value:10},labels:["name"]},a.intervalsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.intervals={checked:[]},a.check=function(b,c){c?a.intervals.checked=angular.copy(_.pluck(a.displayedIntervals,"id")):a.intervals.checked=[]},a.getIntervals=function(b){return _.map(a.displayedIntervals,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("interval"),b.url="/api/intervals",h.getPage(b).then(function(c){a.displayedIntervals=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.intervalsByPage,a.displayedIntervals.length),e.updateTableConfig(a.conf.intervalsByPage,a.displayedIntervals.length)}),c.socket.on("interval:save",function(){a.initList(b)}),c.socket.on("interval:remove",function(c){a.intervals.checked=_.without(a.intervals.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/intervals/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){f.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(d.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/intervals",{params:{id:a.intervals.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.list",{url:"/list",templateUrl:"app/interval/list/list.html",controller:"IntervalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("IntervalViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","interval",function(a,b,c,d,e,f,g,h,i,j){a.$translate=d,a.$interval=j.interval,a.forms={subinterval:void 0,general:void 0},a.initSubInterval=function(){a.subinterval={IntervalId:e.id},a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0}},a.next=function(){b.post("/api/intervals/validate/",a.subinterval).success(function(a){console.log(a),a.length?c.show(d.instant("MESSAGE_EXIST_SUBINTERVAL"),"danger"):h.wizard().next()}).error(function(a){c.show(d.instant(a.message),"danger")})},a.previous=function(){h.wizard().previous()},a.exitValidation=function(a){return a},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from,a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to)):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from,a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to)):e="*",b+","+c+","+d+","+e},a.getInterval=function(){b.get("/api/intervals/"+e.id).success(function(b){a.interval=b,a.subIntervals=b.SubIntervals,f.unsyncUpdates("interval"),f.socket.on("interval:remove",function(b){b.id&&_.remove(a.subIntervals,function(a){return b.id===a.id})}),f.socket.on("interval:update",function(b){var c=_.find(a.subIntervals,{id:b.id});c.interval=b.interval}),f.socket.on("interval:save",function(b){if(b.IntervalId===e.id){var c=_.find(a.subIntervals,{id:b.id});c||a.subIntervals.push(b)}})}).error(function(a){console.error(a),g.path("/intervals/list")})},a.updateInterval=function(){var f=angular.copy(a.interval);b.put("/api/intervals/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.interval=f})},a.getSubInterval=function(){b.get("/api/intervals/"+e.appId).success(function(b){a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date)},a.subinterval=b;var c,d=b.interval?b.interval.split(","):["*","*","*","*"];d.forEach(function(b,d){switch(d){case 0:"*"!==b?(c=b.split("-"),a.splittedInterval.t_from=moment(c[0],"HH:mm"),a.splittedInterval.t_to=moment(c[1],"HH:mm"),a.splittedInterval.alwaysTime=!1):(a.splittedInterval.t_from=moment(new Date),a.splittedInterval.t_to=moment(new Date),a.splittedInterval.alwaysTime=!0);break;case 1:"*"!==b?(c=b.split("-"),a.splittedInterval.wd_from=_.capitalize(c[0]),a.splittedInterval.wd_to=c[1]?_.capitalize(c[1]):"always"):(a.splittedInterval.wd_from="always",a.splittedInterval.wd_to="always");break;case 2:"*"!==b?(c=b.split("-"),a.splittedInterval.md_from=c[0],a.splittedInterval.md_to=c[1]?c[1]:"always"):(a.splittedInterval.md_from="always",a.splittedInterval.md_to="always");break;case 3:"*"!==b?(c=b.split("-"),a.splittedInterval.m_from=_.capitalize(c[0]),a.splittedInterval.m_to=c[1]?_.capitalize(c[1]):"always"):(a.splittedInterval.m_from="always",a.splittedInterval.m_to="always")}})}).error(function(a){console.error(a),g.path("/intervals/view/"+e.id+"/subintervals")})},a.createItem=function(){a.subinterval.interval=a.joinInterval(a.splittedInterval),b.post("/api/intervals/",a.subinterval).success(function(){g.path("/intervals/view/"+e.id+"/subintervals")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.updateItem=function(){a.subinterval.interval=a.joinInterval(a.splittedInterval),b.put("/api/intervals/"+e.appId,a.subinterval).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),g.path("/intervals/view/"+e.id+"/subintervals")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("/api/intervals/"+a).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){console.log(a),c.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.view",{url:"/view/:id",templateUrl:"app/interval/view/view.html",controller:"IntervalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.intervals.view.settings",{url:"/settings",templateUrl:"app/interval/view/view.settings.html"}).state("main.intervals.view.subintervals",{url:"/subintervals",templateUrl:"app/interval/view/view.subintervals.html",cache:!1}).state("main.intervals.view.subinterval",{url:"/subinterval",templateUrl:"app/interval/view/view.subinterval.html",authenticate:!0}).state("main.intervals.view.subintervals.settings",{url:"/settings/:appId",templateUrl:"app/interval/view/view.subintervalSettings.html",authenticate:!0,controller:"IntervalViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("IntervalWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={interval:void 0},a.item={},a.next=function(){b.post("/api/intervals/validate/",a.item).success(function(a){console.log(a),a.length?e.show(f.instant("MESSAGE_EXIST_INTERVAL"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/intervals/",a.item).success(function(a){d.path("/intervals/view/"+a.id+"/subintervals")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.wizard",{url:"/wizard",templateUrl:"app/interval/wizard/wizard.html",controller:"IntervalWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("LoginCtrl",["$scope","Auth","$location","$window","$rootScope",function(a,b,c,d,e){a.userLogin={},a.userSignUp={},a.loginSubmitted=!1,a.signupSubmitted=!1,a.errorLogin=!1,a.errorSignup=!1,a.errorLog="",a.flagLogin1=!1,a.toogleLogin=function(){a.flagLogin1=!a.flagLogin1},e.bodyLayout="login",a.$on("$viewContentLoaded",function(){Metronic.init(),Layout.init()}),a.login=function(d){a.loginSubmitted=!0,d.$valid?b.login({name:a.userLogin.name,password:a.userLogin.password,remember:a.userLogin.remember}).then(function(){c.path("/dashboard/voice")})["catch"](function(b){a.errorLog=b.message,a.errorLogin=!0}):a.errorLogin=!0},a.signup=function(d){a.signupSubmitted=!0,d.$valid?b.createUser({email:a.userSignUp.email,fullname:a.userSignUp.fullname,name:a.userSignUp.name,password:a.userSignUp.password,role:a.userSignUp.role,online:!0}).then(function(){c.path("/")})["catch"](function(b){a.errorLog=b.message,a.errorSignup=!0}):a.errorSignup=!0},a.loginOauth=function(a){d.location.href="/auth/"+a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("login",{url:"/login",templateUrl:"app/login/login.html",controller:"LoginCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/login.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountListCtrl",["$scope","$http","socket","$translate","$rootScope","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.conf={mailAccountsByPage:{name:"10",value:10}},a.mailAccountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailAccounts={checked:[]},a.check=function(b,c){c?a.mailAccounts.checked=angular.copy(_.pluck(a.displayedMailAccounts,"id")):a.mailAccounts.checked=[]},a.getMailAccounts=function(b){return _.map(a.displayedMailAccounts,function(a){var c={};return b.forEach(function(b){_.isObject(b)?_.forIn(b,function(b,d){c[b]=a[d][b]}):c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("mail_server_in"),c.unsyncUpdates("mail_account"),b.url="/api/mail/accounts",g.getPage(b).then(function(c){a.displayedMailAccounts=c.rows,b.pagination.numberOfPages=c.total_pages}),c.socket.on("mail_server_in:save",function(){a.initList(b)}),c.socket.on("mail_account:save",function(){a.initList(b)}),c.socket.on("mail_account:remove",function(c){a.mailAccounts.checked=_.without(a.mailAccounts.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/accounts/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/accounts",{params:{id:a.mailAccounts.checked}}).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(d.instant(a.message),"danger")})}),a.restart=function(a){c.socket.emit("IMAP:"+a+":RESTART",{msg:"IMAP:"+a+":RESTART"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.list",{url:"/list",templateUrl:"app/mail/account/list/list.html",controller:"MailAccountListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionListCtrl",["$scope","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g){a.initActons=function(){console.log(d),a.sortableOptions={stop:function(){console.log("stop",_.pluck(a.mailApplications,"id")),b.post("api/mail/accounts/"+d.accountId+"/applications",{applications:_.pluck(a.mailApplications,"id")}).success(function(b){angular.copy(b,a.mailApplications)}).error(function(a){console.error(a)})}},b.get("/api/mail/applications",{params:{MailAccountId:d.accountId}}).success(function(b){a.mailApplications=b,e.socket.on("mail_application:remove",function(b){_.remove(a.mailApplications,{id:b.id})})})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/mail/applications/"+a).success(function(){f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.list",{url:"/list",templateUrl:"app/mail/account/view/action/list/list.html",controller:"MailAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/mail/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),console.log(c),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){b.get("/api/mail/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/mail/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.view",{url:"/view/:actionId",templateUrl:"app/mail/account/view/action/view/view.html",controller:"MailAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionWizardCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){console.log(c),a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){b.get("/api/mail/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.createItem=function(){var d=["*","*","*","*"],f={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.accountId};switch(a.application.app){case"agent":f.UserId=a.application.UserId;break;case"queue":f.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":f.interval=d.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(d[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),d[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",d[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",d[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",f.interval=d.join(","),delete a.application.IntervalId;break;case"list":f.IntervalId=a.application.IntervalId}b.post("/api/mail/applications",f).success(function(){e.path("/mail/accounts/view/"+c.accountId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){g.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.wizard",{url:"/wizard",templateUrl:"app/mail/account/view/action/wizard/wizard.html",controller:"MailAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert",function(a,b,c,d,e,f){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){b.get("/api/mail/accounts/"+c.accountId).success(function(b){a.account=b})},a.updateItemMailAccount=function(){b.put("/api/mail/accounts/"+c.accountId,{name:a.account.name,description:a.account.description,address:a.account.address}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateItemMailServerIn=function(){b.put("/api/mail/servers/in/"+a.account.MailServerIn.id,a.account.MailServerIn).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateItemMailServerOut=function(){b.put("/api/mail/servers/out/"+a.account.MailServerOut.id,a.account.MailServerOut).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view",{url:"/view/:accountId",templateUrl:"app/mail/account/view/view.html",controller:"MailAccountViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.mail.accounts.view.settings",{url:"/settings",templateUrl:"app/mail/account/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("MailAccountWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert",function(a,b,c,d,e,f){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.forms={},a.info={},a["in"]={"delete":!1,ssl:!0,protocol:"IMAP",port:993,mailbox:"INBOX",filter:"UNSEEN"},a.out={ssl:!0,port:465},a.$translate=d},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a},a.createItem=function(){var e={name:a.info.name,address:a.info.address,description:a.info.description,incoming:a["in"],outgoing:a.out};b.post("api/mail/accounts",e).success(function(){c.path("/mail/accounts/list")}).error(function(a){console.log(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.wizard",{url:"/wizard",templateUrl:"app/mail/account/wizard/wizard.html",controller:"MailAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={mailAutomationsByPage:{name:"10",value:10}},a.mailAutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.mailAutomations={checked:[]},a.check=function(b,c){c?a.mailAutomations.checked=angular.copy(_.pluck(a.displayedMailAutomations,"id")):a.mailAutomations.checked=[]},a.getMailAutomations=function(b){return _.map(a.displayedMailAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("mail_business_automation"),b.url="/api/mail/business/automations",e.getPage(b).then(function(c){a.displayedMailAutomations=c.mailAutomations,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.mailAutomationsByPage,a.displayedMailAutomations.length),d.updateTableConfig(a.conf.mailAutomationsByPage,a.displayedMailAutomations.length)}),g.socket.on("mail_business_automation:save",function(){a.initList(b)}),g.socket.on("mail_business_automation:remove",function(c){a.mailAutomations.checked=_.without(a.mailAutomations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/business/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/business/automations",{params:{id:a.mailAutomations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/mail/business/automations/"+a,{status:d}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.list",{url:"/list",templateUrl:"app/mail/automation/list/list.html",controller:"MailAutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAutomationViewCtrl",["$scope","$stateParams","$http","$translate","automation","socket","xAlert",function(a,b,c,d,e,f,g){
-a.initView=function(){a.forms={info:{}},a.automations=e.automations,c.get("/api/mail/business/automations/"+b.id).success(function(c){a.test=c,a.automation=c,f.syncUpdatesByAttributes("business_condition",{MailBusinessAutomationId:b.id},c.BusinessConditions)}).error(function(){})},a.updateAutomation=function(){c.put("/api/mail/business/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description}).success(function(a){g.show(d.instant("MESSAGE_WELL_DONE"),"success"),console.log(a)}).error(function(a){console.error(a)})},a.getOperatorsByCondition=function(a){var b=[],c=_.find(e.automations.conditions,{key:a});return c.operators&&c.operators.length&&(b=c.operators),b},a.getAttributesByCondition=function(a){var b=[],c=_.find(e.automations.conditions,{key:a});if(c.attributes&&c.attributes.length)switch(c.key){case"createdAt":b=_.map(c.attributes,function(a){return a.value=parseInt(a.value,10),a});break;default:b=c.attributes}return b},a.addNewCondition=function(b){c.post("/api/business/conditions",{type:b,condition:"status",MailBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessConditions.push(b)}).error(function(a){console.error(a)})},a.removeCondition=function(a){c["delete"]("/api/business/conditions/"+a).success(function(a){console.log(a)}).error(function(a){console.error(a)})},a.addNewAction=function(){c.post("/api/business/actions",{condition:"status",MailBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessActions.push(b)}).error(function(a){console.error(a)})},a.removeAction=function(b){c["delete"]("/api/business/actions/"+b).success(function(b){a.automation.BusinessActions=_.reject(a.automation.BusinessActions,{id:b.id})}).error(function(a){console.error(a)})},a.updateCondition=function(a,b,d){var e={};e[b]=d,c.put("/api/business/conditions/"+a,e).error(function(a){console.error(a)})},a.updateAction=function(a,b,d){var e={};e[b]=d,c.put("/api/business/actions/"+a,e).success(function(a){console.log(a)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.view",{url:"/view/:id",templateUrl:"app/mail/automation/view/view.html",controller:"MailAutomationViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.mail.automations.view.settings",{url:"/settings",templateUrl:"app/mail/automation/view/view.settings.html"}).state("main.mail.automations.view.routes",{url:"/routes",templateUrl:"app/mail/automation/view/view.routes.html"}).state("main.mail.automations.view.application",{url:"/application",templateUrl:"app/mail/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("MailAutomationWizardCtrl",["$scope","$http","$location","$translate","automation","WizardHandler","xAlert",function(a,b,c,d,e,f,g){a.forms={},a.automations={or:[],and:[],actions:[]},a.addNewChoice=function(b){var c=angular.copy(e.automations);a.automations[b].push(c)},a.removeChoice=function(b,c){a.automations[b].splice(c)},a.goNext=function(){return a.automations.actions.length?a.automations.or.length||a.automations.and.length?void f.wizard().next():(g.show(d.instant("MESSAGE_INSERT_AT_LEAST_ONE_CONDITION"),"danger"),!1):(g.show(d.instant("MESSAGE_INSERT_AT_LEAST_ONE_ACTION"),"danger"),!1)},a.createItem=function(){a.automations.or.forEach(function(a){a.condition=a.condition.key,a.type="or",delete a.conditions,delete a.actions}),a.automations.and.forEach(function(a){a.condition=a.condition.key,a.type="and",delete a.conditions,delete a.actions}),a.automations.actions.forEach(function(a){a.condition=a.condition.key,delete a.conditions,delete a.actions}),b.post("api/mail/business/automations",a.automations).success(function(){c.path("/mail/automations/list")}).error(function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG","danger"))})},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.wizard",{url:"/wizard",templateUrl:"app/mail/automation/wizard/wizard.html",controller:"MailAutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailComposeCtrl",["$scope","$http","$location","$cookieStore","$translate","xAlert","FileUploader",function(a,b,c,d,e,f,g){var h=a.uploader=new g({url:"api/mail/messages",withCredentials:!0,headers:{Authorization:"Bearer "+d.get("token")},queueLimit:1});h.onBeforeUploadItem=function(b){b.formData.push({mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,attachment:!0})},h.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success")},h.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_FAILURE"),"danger")},h.onCompleteAll=function(){console.log("onCompleteAll"),c.path("/mail/inbox/incoming")},a.forms={},a.form={to:[],sto:[],cc:[],scc:[]},b.get("api/mail/accounts").success(function(b){a.mailAccounts=b.rows}),a.sendMail=function(){if(h.queue.length)console.log("file"),h.uploadAll();else{console.log("no file");var d={mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null};b.post("/api/mail/messages",d).success(function(){f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),c.path("/mail/inbox/incoming")}).error(function(){f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_FAILURE"),"danger")})}},a.cancel=function(){a.form.sto=[],a.form.scc=[],delete a.form.from,delete a.form.text,delete a.form.html}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.compose",{url:"/compose",templateUrl:"app/mail/inbox/room/room.html",controller:"MailComposeCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailInboxCtrl",["$scope","$http","$location",function(a,b,c){a.go=function(a){c.path(a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox",{url:"/inbox",templateUrl:"app/mail/inbox/inbox.html",controller:"MailInboxCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css","assets/css/todo.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("MailIncomingCtrl",["$scope","$http","$location","$translate","$timeout","socket","xAlert","Auth","stResource","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$location=c,a.conf={mailRoomsByPage:{name:"10",value:10},labels:["fullname","name","email"],test:"OPEN"},a.mailRoomsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailRooms={checked:[]},a.check=function(b,c){c?a.mailRooms.checked=angular.copy(_.pluck(a.displayedMailRooms,"id")):a.mailRooms.checked=[]},a.initList=function(b){f.unsyncUpdates("mail_room"),b.search.predicateObject||(b.search.predicateObject={}),b.sort.predicate="createdAt",b.sort.reverse=!0,h.isAdmin()?(f.socket.on("mail_room:save",function(){e(function(){g.show(d.instant("MESSAGE_MAIL_NEW_INCOMING_MAIL"),"success"),a.initList(b)},2e3)}),f.socket.on("mail_room:remove",function(c){a.mailRooms.checked=_.without(a.mailRooms.mailRooms,c.id),a.initList(b)})):(f.socket.on("mail_room:save",function(c){c.UserId===h.getCurrentUser().id&&a.initList(b)}),f.socket.on("mail_room:remove",function(c){c.UserId===h.getCurrentUser().id&&(a.mailRooms.checked=_.without(a.mailRooms.checked,c.id),a.initList(b))}),b.search.predicateObject.UserId=h.getCurrentUser().id),b.url="/api/mail/rooms",i.getPage(b).then(function(c){a.displayedMailRooms=c.mailRooms,b.pagination.numberOfPages=c.total_pages})},a.deleteItems=j.confirm["delete"](function(){b["delete"]("/api/mail/rooms",{params:{id:a.mailRooms.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})}),a.$on("$destroy",function(){f.unsyncUpdates("mail_room")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.incoming",{url:"/incoming",templateUrl:"app/mail/inbox/incoming/incoming.html",controller:"MailIncomingCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("MailRoomCtrl",["$scope","$http","$stateParams","$timeout","$cookieStore","$location","$translate","$log","xAlert","Auth","socket","FileUploader",function(a,b,c,d,e,f,g,h,i,j,k,l){function m(){a.lastMessage=_.reject(a.mailRoom.MailMessages,function(a){return"RECEIVED"!==a.status}),a.lastMessage=_.sortByOrder(a.lastMessage,["id"],["desc"])[0],a.lastMessage&&(a.form.subject=a.mailRoom.subject,a.form.from=a.mailRoom.MailAccount,a.form.to=[a.lastMessage.From.email],a.form.cc=a.lastMessage.To.concat(a.lastMessage.Cc),a.form.cc=_.pluck(a.form.cc,"email"),a.form.cc=_.remove(a.form.cc,function(b){return a.mailRoom.MailAccount?b!==a.mailRoom.MailAccount.address:void 0}),a.form.cc=a.form.cc,a.form.inReplyTo=a.lastMessage.messageId,a.form.MailRoomId=a.lastMessage.MailRoomId)}var n=a.uploader=new l({url:"api/mail/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+e.get("token")}});n.onBeforeUploadItem=function(b){var c={mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,MailRoomId:a.mailRoom.id};a.mailRoom.roomId&&(c.inReplyTo=a.mailRoom.roomId),b.formData.push(c)},n.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},n.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d)},n.onCompleteAll=function(){console.log("onCompleteAll"),f.path("/mail/inbox/incoming")},a.initRoomView=function(){a.Auth=j,a.forms={},a.form={to:[],sto:[],cc:[],scc:[]},b.get("/api/agents").success(function(b){a.agents=b.rows}),b.get("/api/mail/accounts").success(function(b){a.mailAccounts=b.rows}),b.get("/api/mail/rooms/"+c.id).success(function(c){a.mailRoom=c,k.syncUpdatesByAttributes("mail_message",{MailRoomId:a.mailRoom.id},a.mailRoom.MailMessages),"NEW"===a.mailRoom.status&&b.put("/api/mail/rooms/"+a.mailRoom.id,{status:"OPEN"}),m()}).error(function(){f.path("/mail/inbox/incoming")})},a.getMailString=function(a){return a.fullname?a.fullname+" <"+a.email+">":"<"+a.email+">"},a.sendMail=function(){if(n.queue.length)n.uploadAll();else{if(!a.form.to.length)return a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0);a.forms.compose.to.$valid=!0,a.forms.compose.to.$invalid=!1;var c={mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,MailRoomId:a.mailRoom.id};a.mailRoom.roomId&&(c.inReplyTo=a.mailRoom.roomId),h.debug(c),b.post("/api/mail/messages",c).success(function(){i.show(g.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),Metronic.scrollTop()}).error(function(){i.show(g.instant("MESSAGE_MAIL_MESSAGE_SEND_FAILURE"),"danger")})}},a.cancel=function(){a.form.sto=[],a.form.scc=[],delete a.form.text},a.updateStatus=function(d){b.put("/api/mail/rooms/"+c.id,{status:d}).success(function(b){a.mailRoom.status=b.status,i.show(g.instant("MESSAGE_STATUS_UPDATE_SUCCESS"),"success")}).error(function(){i.show(g.instant("MESSAGE_STATUS_UPDATE_FAILURE"),"danger")})},a.assignAgent=function(a){b.put("/api/mail/rooms/"+c.id,{UserId:a}).success(function(){i.show(g.instant("MESSAGE_MAIL_MESSAGE_ASSIGNEMNT_SUCCESS"),"success")}).error(function(){i.show(g.instant("MESSAGE_MAIL_MESSAGE_ASSIGNEMNT_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.room",{url:"/room/:id",templateUrl:"app/mail/inbox/room/room.html",controller:"MailRoomCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail",{url:"/mail",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailQueueListCtrl",["$scope","$http","$translate","$rootScope","socket","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("mail_queue")}),a.conf={queuesByPage:{name:"10",value:10}},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailQueues={checked:[]},a.check=function(b,c){c?a.mailQueues.checked=angular.copy(_.pluck(a.displayedMailQueues,"id")):a.mailQueues.checked=[]},a.getMailQueues=function(b){return _.map(a.displayedMailQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("mail_queue"),b.url="/api/mail/queues/",g.getPage(b).then(function(c){a.displayedMailQueues=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(c.queuesByPage,a.displayedMailQueues.length),d.updateTableConfig(a.conf.queuesByPage,a.displayedMailQueues.length)}),e.socket.on("mail_queue:save",function(){a.initList(b)}),e.socket.on("mail_queue:remove",function(c){a.mailQueues.checked=_.without(a.mailQueues.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/queues/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/queues/",{params:{id:a.mailQueues.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.list",{url:"/list",templateUrl:"app/mail/queue/list/list.html",controller:"MailQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/mail/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/mail/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/mail/queues/"+d.id).success(function(b){a.queue=b}).error(function(a){console.error(a)})},a.updateMailQueue=function(){var f=angular.copy(a.queue);b.put("/api/mail/queues/"+d.id,f).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){e.show(b.message,"success"),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b.get("/api/mail/user_has_queues",{params:{MailQueueId:a.queue.id}}).success(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.pluck(b,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.view",{url:"/view/:id",templateUrl:"app/mail/queue/view/view.html",controller:"MailQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.mail.queues.view.settings",{url:"/settings",templateUrl:"app/mail/queue/view/view.settings.html"}).state("main.mail.queues.view.agents",{url:"/agents",templateUrl:"app/mail/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailQueueWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert",function(a,b,c,d,e){a.forms={},a.item={},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/mail/queues",a.item).success(function(){c.path("/mail/queues/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.wizard",{url:"/wizard",templateUrl:"app/mail/queue/wizard/wizard.html",controller:"MailQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentCtrl",["$scope","$http","socket",function(a,b,c){console.log("MailRealtimeViewAgentCtrl"),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewSessionCtrl",["$scope","$http","socket",function(a,b,c){a.conf={sessionsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.sessionsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initMails=function(){b.get("/api/report/mail/sessions").success(function(b){a.sessions=b,c.socket.on("report_mail_session:save",function(b){var c=_.find(a.sessions,{id:b.id}),d=a.sessions.indexOf(c);c?_.merge(a.sessions[d],b):a.sessions.unshift(b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.mail.realtime.view.agents"}],a.sessions=[{name:"View1",link:"main.mail.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.realtime.view",{url:"/view",templateUrl:"app/mail/realtime/view/view.html",controller:"MailRealtimeViewCtrl"}).state("main.mail.realtime.view.agents",{url:"/agents",controller:"MailRealtimeViewAgentCtrl",templateUrl:"app/mail/realtime/view/agent/agent.html"}).state("main.mail.realtime.view.sessions",{url:"/sessions",controller:"MailRealtimeViewSessionCtrl",templateUrl:"app/mail/realtime/view/session/session.html"})}]),angular.module("xCallyShuttleApp").controller("MailStatisticsCtrl",["$scope","$http","$translate","socket",function(a,b,c,d){a.message="Hello",a.$translate=c,b.get("api/mail/rooms").success(function(b){a.mailRooms=b,d.syncUpdates("mail_room",a.mailRooms)}),b.get("api/mail/messages").success(function(b){a.mailMessages=b,d.syncUpdates("mail_message",a.mailMessages)})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.statistics",{url:"/statistics",templateUrl:"app/mail/statistics/statistics.html",controller:"MailStatisticsCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.mail.statistics.summary",{url:"/summary",templateUrl:"app/mail/statistics/statistics.summary.html",controller:"MailStatisticsCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile-old.css"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailTemplateListCtrl",["$scope","$http","$translate","$rootScope","socket","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("mail_template")}),a.conf={templatesByPage:{name:"10",value:10}},a.templatesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailTemplates={checked:[]},a.check=function(b,c){c?a.mailTemplates.checked=angular.copy(_.pluck(a.displayedMailTemplates,"id")):a.mailTemplates.checked=[]},a.getMailTemplates=function(b){return _.map(a.displayedMailTemplates,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("mail_template"),b.url="/api/mail/templates/",g.getPage(b).then(function(c){a.displayedMailTemplates=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(c.templatesByPage,a.displayedMailTemplates.length),d.updateTableConfig(a.conf.templatesByPage,a.displayedMailTemplates.length)}),e.socket.on("mail_template:save",function(){a.initList(b)}),e.socket.on("mail_template:remove",function(c){a.mailTemplates.checked=_.without(a.mailTemplates.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/templates/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/templates/",{params:{id:a.mailTemplates.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.templates.list",{url:"/list",templateUrl:"app/mail/template/list/list.html",controller:"MailTemplateListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.templates",{url:"/templates",template:"<div ui-view></div>","abstract":!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailTemplateViewCtrl",["$scope","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e){a.items={},a.initItem=function(){b.get("/api/mail/accounts").success(function(c){a.mailAccounts=c.rows,b.get("/api/mail/templates/"+d.id).success(function(b){var c=_.find(a.mailAccounts,{address:b.from});a.item={name:b.name,description:b.description,subject:b.subject,from:{address:c.address,name:c.name,id:c.id},to:[],sto:b.to.split(";"),cc:[],scc:b.cc.split(";"),html:b.html,text:b.text,MailAccountId:b.MailAccountId}}).error(function(a){e.show(a.message,"danger")})})},a.updateItem=function(){var f={name:a.item.name,description:a.item.description,from:a.item.from.address,to:a.item.sto.join(";"),cc:a.item.scc.join(";"),subject:a.item.subject||null,html:a.item.html||null,text:a.item.text||null,MailAccountId:a.item.from.id};b.put("/api/mail/templates/"+d.id,f).success(function(a){console.log(a),e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.templates.view",{url:"/view/:id",templateUrl:"app/mail/template/view/view.html",controller:"MailTemplateViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.mail.templates.view.settings",{url:"/settings",templateUrl:"app/mail/template/view/view.settings.html"}).state("main.mail.templates.view.agents",{url:"/agents",templateUrl:"app/mail/template/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailTemplateWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert",function(a,b,c,d,e){a.form={to:[],sto:[],cc:[],scc:[]},b.get("api/mail/accounts").success(function(b){a.mailAccounts=b.rows}),a.forms={},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.saveTemplate=function(){var d={name:a.form.name,description:a.form.description,from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,MailAccountId:a.form.from.id};b.post("/api/mail/templates",d).success(function(){c.path("/mail/templates/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.templates.wizard",{url:"/wizard",templateUrl:"app/mail/template/wizard/wizard.html",controller:"MailTemplateWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailTimelineListCtrl",["$scope","$http","socket",function(a,b,c){function d(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/mail").success(function(a){a.forEach(d),c.socket.on("event:chat:save",d)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.timeline.list",{url:"/list",templateUrl:"app/mail/timeline/list/list.html",controller:"MailTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MainCtrl",["$scope","$http","$rootScope","$cookies","$translate","$interval","socket","Auth",function(a,b,c,d,e,f,g,h){a.awesomeThings=[],a.isLoggedIn=h.isLoggedIn,a.isAdmin=h.isAdmin,a.getCurrentUser=h.getCurrentUser,a.$on("$viewContentLoaded",function(){Metronic.init()}),c.language=e.use(),a.changeLanguage=function(a){e.use(a).then(function(a){c.language=a})["catch"](function(a){console.error(a)})},a.$on("$destroy",function(){})}]),angular.module("xCallyShuttleApp").directive("ngSpinnerBar",["$rootScope",function(a){return{link:function(b,c){c.addClass("hide"),a.$on("$stateChangeStart",function(){"spinner-page"===c[0].id&&c.removeClass("hide")}),a.$on("$stateChangeSuccess",function(){"spinner-page"===c[0].id&&(c.addClass("hide"),$("body").removeClass("page-on-load"),Layout.setSidebarMenuActiveLink("match"),setTimeout(function(){Metronic.scrollTop()},1e3))}),a.$on("$spinnerStart",function(){"spinner-request"===c[0].id&&c.removeClass("hide")}),a.$on("$spinnerStop",function(){"spinner-request"===c[0].id&&c.addClass("hide")}),a.$on("$stateNotFound",function(){"spinner-page"===c[0].id&&c.addClass("hide")}),a.$on("$stateChangeError",function(){"spinner-page"===c[0].id&&c.addClass("hide")})}}}]).directive("a",function(){return{restrict:"E",link:function(a,b,c){(c.ngClick||""===c.href||"#"===c.href)&&b.on("click",function(a){a.preventDefault()})}}}).directive("nxEqual",function(){return{require:"ngModel",link:function(a,b,c,d){return c.nxEqual?(a.$watch(c.nxEqual,function(a){d.$setValidity("nxEqual",a===d.$viewValue)}),void d.$parsers.push(function(b){var e=b===a.$eval(c.nxEqual);return d.$setValidity("nxEqual",e),e?b:void 0})):void console.error("nxEqual expects a model as an argument!")}}}).directive("ngEnter",function(){return function(a,b,c){b.bind("keydown keypress",function(b){13===b.which&&(a.$apply(function(){a.$eval(c.ngEnter)}),b.preventDefault())})}}).directive("dropdownMenuHover",function(){return{link:function(a,b){b.dropdownHover()}}}).directive("uiSelectRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.uiSelectRequired=function(a){return a&&a.length}}}}).directive("rpattern",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a,b){return null==b||""===b||!h||a.test(b)?(d.$setValidity("pattern",!0),b):void d.$setValidity("pattern",!1)}var f,g=c.rpattern,h=!0;g&&(g.match(/^\/(.*)\/$/)?(g=new RegExp(g.substr(1,g.length-2)),f=function(a){return e(g,a)}):f=function(b){var c=a.$eval(g);if(!c||!c.test)throw new Error("Expected "+g+" to be a RegExp but was "+c);return e(c,b)}),d.$formatters.push(f),d.$parsers.push(f),c.$observe("required",function(a){h=a,f(d.$viewValue)})}}}).directive("queryBuilder",["$compile",function(a){return{restrict:"E",scope:{group:"=",fields:"=",operators:"=",properties:"="},templateUrl:"app/main/template.queryBuilderView.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){b.booleans=[{name:"AND"},{name:"OR"}],b.addCondition=function(a){"CONDITION"==a?b.group.rules.push({operator:"=",field:"",data:""}):b.group.rules.push({field:"",data:""})},b.removeCondition=function(a){b.group.rules.splice(a,1)},b.addGroup=function(a){b.group.rules.push({group:{"boolean":"AND",rules:[],type:a,main:!1}})},b.removeGroup=function(){b.$parent.group.rules.splice(b.$parent.$index,1)},e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]),angular.module("xCallyShuttleApp").filter("capitalize",function(){return function(a){return a?a.replace(/([^\W_]+[^\s-]*) */g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()}):""}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main",{"abstract":!0,templateUrl:"app/main/main.html",controller:"MainCtrl",resolve:{authorization:["$q","Auth","$state","$timeout","$location",function(a,b,c,d,e){return b.getToken()?a.when():(d(function(){e.path("/login")}),a.reject())}]}})}]),angular.module("xCallyShuttleApp").factory("xAlert",["$translate","Notification",function(a,b){return{show:function(c,d){switch(d){case"success":b.success({message:c,title:'<i class="glyphicon glyphicon-ok"></i> <strong>'+a.instant("MESSAGE_SUCCESS")+"!</strong>",delay:5e3});break;case"danger":b.error({message:c,title:'<i class="glyphicon glyphicon-warning-sign"></i> <strong>'+a.instant("MESSAGE_ERROR")+"!</strong>",delay:1e4});break;default:b.info(c)}}}}]).factory("stResource",["$q","$filter","$timeout","$rootScope","$http","$translate","xAlert",function(a,b,c,d,e,f,g){return{getPage:function(b){var c={page:Math.ceil(b.pagination.start/b.pagination.number),per_page:b.pagination.number};b.sort.predicate&&(c.sort_by=b.sort.predicate,c.sort_order=b.sort.reverse?"DESC":"ASC"),_.forIn(b.search.predicateObject,function(a,b){c[b]=a}),d.$broadcast("$spinnerStart"),e.get(b.url,{params:c}).success(function(a){h.resolve(a),d.$broadcast("$spinnerStop")}).error(function(a){g.show(f.instant(a.message),"danger"),
-d.$broadcast("$spinnerStop")});var h=a.defer();return h.promise}}}]),angular.module("xCallyShuttleApp").controller("MarketCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.market",{url:"/market",templateUrl:"app/market/market.html",controller:"MarketCtrl"})}]),angular.module("xCallyShuttleApp").controller("MotionbarCtrl",["$scope","$stateParams","$cookieStore","settings","Auth",function(a,b,c,d,e){e.loginWithToken(b.token,b.userId,b.name),a.getCurrentUser=e.getCurrentUser,d.layout.pageQuickSidebarOpened=!0}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("motionbar",{url:"/motionbar",template:"<div ui-view></div>","abstract":!0}).state("motionbar.chat",{url:"/chat?token&userId&name",templateUrl:"app/motionbar/motionbar.chat.html",controller:"MotionbarCtrl"})}]),angular.module("xCallyShuttleApp").controller("SoundListCtrl",["$scope","$http","socket","Modal","$q","FileUploader","$translate","xAlert","$cookieStore","$sce",function(a,b,c,d,e,f,g,h,i,j){a.isCollapsed=!0,a.audioSources={},a["delete"]=d.confirm["delete"](function(a){b["delete"]("/api/uploads/"+a).success(function(a){}).error(function(a){console.log(a)})}),a.getAudioSrc=function(a){return"/api/uploads/"+a},a.updateAudio=function(a,c){var d=e.defer();return b.put("/api/uploads/"+a,c).success(function(a){d.resolve()}).error(function(a){console.log(a.message),d.reject(a.message)}),d.promise},a.$on("$destroy",function(){c.unsyncUpdates("upload")}),a.initList=function(){b.get("/api/uploads").success(function(b){a.sounds=b,a.sounds.forEach(function(a){k(a)}),c.syncUpdates("upload",a.sounds)}).error(function(a){})};var k=function(c){b.get("/api/uploads/stream/"+c.id).success(function(b){a.audioSources[c.id]=b}).error(function(a){console.error(a)})};a.getSecureSrc=function(a){return j.trustAsResourceUrl("data:audio/ogg;base64,"+a)},a.getSecureDownloadSrc=function(a){return j.trustAsResourceUrl("data:application/octet-stream;charset=utf-16le;base64,"+a)};var l=a.uploader=new f({url:"/api/uploads",withCredentials:!0,headers:{Authorization:"Bearer "+i.get("token")}});l.filters.push({name:"customFilter",fn:function(a,b){return this.queue.length<10}}),l.onWhenAddingFileFailed=function(a,b,c){console.info("onWhenAddingFileFailed",a,b,c)},l.onAfterAddingFile=function(a){console.info("onAfterAddingFile",a)},l.onAfterAddingAll=function(a){console.info("onAfterAddingAll",a)},l.onBeforeUploadItem=function(a){console.info("onBeforeUploadItem",a)},l.onProgressItem=function(a,b){console.info("onProgressItem",a,b),a.isUploading=!0},l.onProgressAll=function(a){console.info("onProgressAll",a)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),a.isUploading=!1},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),a.responseMessage=b,a.isUploading=!1},l.onCancelItem=function(a,b,c,d){console.info("onCancelItem",a,b,c,d),a.isUploading=!1},l.onCompleteItem=function(a,b,c,d){console.info("onCompleteItem",a,b,c,d),a.isUploading=!1},l.onCompleteAll=function(){console.info("onCompleteAll")},console.info("uploader",l)}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sounds.list",{url:"/list",templateUrl:"app/sound/list/list.html",controller:"SoundListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sounds",{url:"/sounds",templateUrl:"app/sound/sound.html","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={odbcsByPage:{name:"10",value:10}},a.odbcsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Odbcs={checked:[]},a.check=function(b,c){c?a.Odbcs.checked=angular.copy(_.pluck(a.displayedOdbcs,"id")):a.Odbcs.checked=[]},a.getOdbcs=function(b){return _.map(a.displayedOdbcs,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("square_odbc"),b.url="/api/square/odbc",h.getPage(b).then(function(c){a.displayedOdbcs=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.odbcsByPage,a.displayedOdbcs.length),d.updateTableConfig(a.conf.odbcsByPage,a.displayedOdbcs.length)}),c.socket.on("square_odbc:save",function(){a.initList(b)}),c.socket.on("square_odbc:remove",function(c){a.Odbcs.checked=_.without(a.Odbcs.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/square/odbc/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/square/odbc",{params:{id:a.Odbcs.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.list",{url:"/list",templateUrl:"app/square/odbc/list/list.html",controller:"SquareOdbcListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs",{url:"/odbcs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getOdbc=function(){b.get("/api/square/odbc/"+e.id).success(function(b){delete b.pwd,a.odbc=b}).error(function(a){console.error(a),f.path("/square/odbcs/list")})},a.updateOdbc=function(){var f=angular.copy(a.odbc);b.put("/api/square/odbc/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.odbc=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.view",{url:"/view/:id",templateUrl:"app/square/odbc/view/view.html",controller:"SquareOdbcViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.square.odbcs.view.settings",{url:"/settings",templateUrl:"app/square/odbc/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={odbc:void 0},a.item={},a.next=function(){b.post("/api/square/odbc/validate/",a.item).success(function(a){a.length?e.show(f.instant("MESSAGE_EXIST_ODBC"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/square/odbc/",a.item).success(function(){d.path("/square/odbcs/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.wizard",{url:"/wizard",templateUrl:"app/square/odbc/wizard/wizard.html",controller:"SquareOdbcWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={projectsByPage:{name:"10",value:10}},a.projectsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Projects={checked:[]},a.check=function(b,c){c?a.Projects.checked=angular.copy(_.pluck(a.displayedProjects,"id")):a.Projects.checked=[]},a.getProjects=function(b){return _.map(a.displayedProjects,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("square_project"),b.url="/api/square/projects",h.getPage(b).then(function(c){a.displayedProjects=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.projectsByPage,a.displayedProjects.length),d.updateTableConfig(a.conf.projectsByPage,a.displayedProjects.length)}),c.socket.on("square_project:save",function(){a.initList(b)}),c.socket.on("square_project:remove",function(c){a.Projects.checked=_.without(a.Projects.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/square/projects/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/square/projects",{params:{id:a.Projects.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.list",{url:"/list",templateUrl:"app/square/project/list/list.html",controller:"SquareProjectListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareProjectViewCtrl",["$scope","$http","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i){a.squareProject={},a.getProject=function(){b.get("/api/square/projects/"+c.id).success(function(b){a.squareProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=e.getToken();var a=new EditorUi(new Editor);a.openString(b.preproduction,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),d.syncUpdates("square_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.view",{url:"/view/:id",templateUrl:"app/square/project/view/view.html",controller:"SquareProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/mxgraph/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/mxgraph/js/Editor.js","assets/plugins/mxgraph/js/Graph.js","assets/plugins/mxgraph/js/EditorUi.js","assets/plugins/mxgraph/js/Actions.js","assets/plugins/mxgraph/js/Menus.js","assets/plugins/mxgraph/js/Sidebar.js","assets/plugins/mxgraph/js/Toolbar.js","assets/plugins/mxgraph/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("SquareProjectWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={project:void 0},a.item={},a.next=function(){b.post("/api/square/projects/validate/",a.item).success(function(a){a.length?e.show(f.instant("MESSAGE_EXIST_PROJECT"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/square/projects/",a.item).success(function(){d.path("/square/projects/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.wizard",{url:"/wizard",templateUrl:"app/square/project/wizard/wizard.html",controller:"SquareProjectWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square",{url:"/square",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TeamListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={teamsByPage:{name:"10",value:10}},a.teamsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.teams={checked:[]},a.check=function(b,c){c?a.teams.checked=angular.copy(_.pluck(a.displayedTeams,"id")):a.teams.checked=[]},a.getTeams=function(b){return _.map(a.displayedTeams,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("team"),b.url="/api/teams/",h.getPage(b).then(function(c){a.displayedTeams=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.teamsByPage,a.displayedTeams.length),d.updateTableConfig(a.conf.teamsByPage,a.displayedTeams.length)}),f.socket.on("team:save",function(){a.initList(b)}),f.socket.on("team:remove",function(c){a.teams.checked=_.without(a.teams.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/teams/"+a).success(function(){e.show(c.instant("MESSAGE_TEAM_DELETE_SUCCESS"),"success")}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/teams",{params:{id:a.teams.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.list",{url:"/list",templateUrl:"app/team/list/list.html",controller:"TeamListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams",{url:"/teams",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TeamViewCtrl",["$scope","$http","$stateParams","$translate","xAlert",function(a,b,c,d,e){a.message="Hello";var f=function(){return{select:function(c){b.post("/api/teams/"+a.team.id+"/agents",{agents:c}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/teams/"+a.team.id+"/agents",{agents:c}).error(function(a){console.error(a)})}}};a.initView=function(){b.get("/api/teams/"+c.id).success(function(b){a.team=b}).error(function(a){e.show(a.message,"danger")})},a.initAgents=function(){b.get("/api/agents").success(function(d){a.agents=d.rows,b.get("/api/user_has_teams",{params:{TeamId:c.id}}).success(function(b){ComponentsDropdowns.bindTeam(_.pluck(b,"UserId"),_.map(a.agents,function(a){return{id:a.id,name:a.name}}),f)}).error(function(a){console.error(a)})})},a.updateItem=function(){var f=angular.copy(a.team),g=angular.copy(a.team);b.put("/api/teams/"+c.id,f).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.team=g,b.errors.forEach(function(a){e.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.view",{url:"/view/:id",templateUrl:"app/team/view/view.html",controller:"TeamViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.teams.view.agents",{url:"/agents",templateUrl:"app/team/view/view.agents.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]}])}]}}).state("main.teams.view.settings",{url:"/settings",templateUrl:"app/team/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TeamWizardCtrl",["$scope","$http","$translate","$location","WizardHandler","xAlert",function(a,b,c,d,e,f){a.forms={info:void 0},a.item={},a.createItem=function(){b.post("api/teams",a.item).success(function(){f.show(c.instant("MESSAGE_TEAM_CREATE_SUCCESS"),"success"),d.path("/teams/list")}).error(function(a){a.errors.forEach(function(a){f.show(a.message,"danger")})})},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.wizard",{url:"/wizard",templateUrl:"app/team/wizard/wizard.html",controller:"TeamWizardCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({name:"ui.select",insertBefore:"#ng_load_plugins_before",files:["assets/plugins/ui-select/select.min.css","assets/plugins/ui-select/select.min.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("TriggerListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={TriggersByPage:{name:"10",value:10}},a.TriggersByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.Triggers={checked:[]},a.check=function(b,c){c?a.Triggers.checked=angular.copy(_.pluck(a.displayedTriggers,"id")):a.Triggers.checked=[]},a.getTriggers=function(b){return _.map(a.displayedTriggers,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("trigger"),b.url="/api/triggers",e.getPage(b).then(function(c){a.displayedTriggers=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.TriggersByPage,a.displayedTriggers.length),d.updateTableConfig(a.conf.TriggersByPage,a.displayedTriggers.length)}),g.socket.on("trigger:save",function(){a.initList(b)}),g.socket.on("trigger:remove",function(c){a.Triggers.checked=_.without(a.Triggers.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/triggers/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/triggers",{params:{id:a.Triggers.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/triggers/"+a,{status:d}).success(function(a){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.list",{url:"/list",templateUrl:"app/trigger/list/list.html",controller:"TriggerListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers",{url:"/triggers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TriggerViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","triggers",function(a,b,c,d,e,f){a.$triggers=f,a.forms={info:{}},a.fields={},a.properties=f.properties,a.initView=function(){c.get("/api/triggers/"+b.id).success(function(b){a.trigger=b,a.conditionsFilter=JSON.parse(b.conditions),a.actionsFilter=JSON.parse(b.actions),a.fields.conditions=a.$triggers.triggers[b.channel].conditions,a.fields.actions=a.$triggers.triggers[b.channel].actions}).error(function(a){e.show(a.message,"danger")})},a.getProperties=function(){g()};var g=function(){c.get("/api/mail/templates/").success(function(b){a.mailTemplates=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.id})}),a.properties.mail.template=c}).error(function(a){e.show(a.message,"danger")})};a.updateTrigger=function(){c.put("/api/triggers/"+a.trigger.id,{name:a.trigger.name,description:a.trigger.description,conditions:angular.toJson(a.conditionsFilter),actions:angular.toJson(a.actionsFilter)}).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.view",{url:"/view/:id",templateUrl:"app/trigger/view/view.html",controller:"TriggerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.triggers.view.settings",{url:"/settings",templateUrl:"app/trigger/view/view.settings.html"}).state("main.triggers.view.routes",{url:"/routes",templateUrl:"app/trigger/view/view.routes.html"}).state("main.triggers.view.application",{url:"/application",templateUrl:"app/trigger/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("TriggerWizardCtrl",["$scope","$http","$location","xAlert","triggers","WizardHandler",function(a,b,c,d,e,f){a.$triggers=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={},a.fields={},a.properties=e.properties,a.forms={general:{}};var g={group:{"boolean":"AND",rules:[],type:"CONDITION",main:!0}},h={group:{rules:[],type:"ACTION"}};a.conditionsFilter=_.clone(g,!0),a.actionsFilter=_.clone(h,!0),a.$watch("item.channel",function(b,c){c&&(a.tempData[c].conditionsFilter=_.clone(a.conditionsFilter,!0),a.tempData[c].actionsFilter=_.clone(a.actionsFilter,!0)),a.conditionsFilter=a.tempData[b].conditionsFilter?a.tempData[b].conditionsFilter:_.clone(g,!0),a.actionsFilter=a.tempData[b].actionsFilter?a.tempData[b].actionsFilter:_.clone(h,!0),a.fields.conditions=a.$triggers.triggers[b].conditions,a.fields.actions=a.$triggers.triggers[b].actions},!0),a.item.channel="voice",a.getProperties=function(){i()};var i=function(){b.get("/api/mail/templates/").success(function(b){a.mailTemplates=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.id})}),a.properties.mail.template=c}).error(function(a){d.show(a.message,"danger")})};a.createItem=function(){a.item.conditions=angular.toJson(a.conditionsFilter),a.item.actions=angular.toJson(a.actionsFilter),b.post("/api/triggers",a.item).success(function(){c.path("/triggers/list")}).error(function(a){d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.wizard",{url:"/wizard",templateUrl:"app/trigger/wizard/wizard.html",controller:"TriggerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TrunkListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={trunksByPage:{name:"10",value:10},labels:["name","host","context","description"]},a.trunksByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.trunks={checked:[]},a.check=function(b,c){c?a.trunks.checked=angular.copy(_.pluck(a.displayedTrunks,"id")):a.trunks.checked=[]},a.getTrunks=function(b){return _.map(a.displayedTrunks,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("trunk"),b.url="/api/trunks",console.log(b),h.getPage(b).then(function(c){a.displayedTrunks=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.trunksByPage,a.displayedTrunks.length),d.updateTableConfig(a.conf.trunksByPage,a.displayedTrunks.length)}),f.socket.on("trunk:save",function(){a.initList(b)}),f.socket.on("trunk:remove",function(c){a.trunks.checked=_.without(a.trunks.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/trunks/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/trunks",{params:{id:a.trunks.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})}),a.$on("$destroy",function(){console.log("trunks destroy")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.list",{url:"/list",templateUrl:"app/trunk/list/list.html",controller:"TrunkListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks",{url:"/trunks",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TrunkViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location",function(a,b,c,d,e,f,g){a.getTrunk=function(){b.get("/api/trunks/"+e.id).success(function(b){b.nat=""===b.nat?[]:b.nat.split(","),b.allow=""===b.allow?[]:b.allow.split(";"),b.insecure=""===b.insecure?[]:b.insecure.split(","),b.transport=""===b.transport?[]:b.transport.split(","),delete b.secret,a.trunk=b}).error(function(a){console.error(a),g.path("/trunks/list")})},a.updateTrunk=function(){""===a.trunk.password&&delete a.trunk.password;var f=angular.copy(a.trunk);f.nat=f.nat.join(","),f.allow=f.allow.join(";"),f.insecure=f.insecure.join(","),f.transport=f.transport.join(","),b.put("/api/trunks/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),f.nat=f.nat.split(","),f.naallowt=f.allow.split(";"),f.insecure=f.insecure.split(","),f.transport=f.transport.split(","),a.trunk=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.view",{url:"/view/:id",templateUrl:"app/trunk/view/view.html",controller:"TrunkViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.trunks.view.settings",{url:"/settings",templateUrl:"app/trunk/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TrunkWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={context:"from-voip-provider"}},a.next=function(d){d?b.post("/api/trunks/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_TRUNK"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")}):c.wizard().next()},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/trunks/",a.item).success(function(){d.path("/trunks/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.wizard",{url:"/wizard",templateUrl:"app/trunk/wizard/wizard.html",controller:"TrunkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UpdateListCtrl",["$scope","Update",function(a,b){a.conf={updatesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.updatesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initList=function(){b.get(function(b){a.updates=b.all})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.updates.list",{url:"/list",templateUrl:"app/update/list/list.html",controller:"UpdateListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Update",["$resource",function(a){return a("/api/updates/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.updates",{url:"/updates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("UpdateViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","socket","FileUploader","Auth",function(a,b,c,d,e,f,g,h,i){a.Auth=i,a.updatePassword=function(){var f,g;i.isAdmin()?(f="/api/updates/password/"+e.id+"/reset",g={newPassword:a.update.newPwd}):(f="/api/updates/password/",g={oldPassword:a.update.currentPwd,newPassword:a.update.newPwd}),b.put(f,g).success(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})};var j=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});j.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),j.onSuccessItem=function(b,e,f,g){a.update.userpic=e.userpic,a.update.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},j.onErrorItem=function(a,b,e,f){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},j.onCompleteAll=function(){j.clearQueue()},a.initView=function(){b.get("/api/updates/"+e.id).success(function(b){a.update=b,a.update.transport=a.update.transport?a.update.transport.split(","):[],a.update.allow=a.update.allow?a.update.allow.split(";"):[]}).error(function(a){c.show(a.message,"danger")})},a.updateItem=function(){var f=angular.copy(a.update),g=angular.copy(a.update);delete f.password,delete f.md5secret,f.transport=f.transport.join(","),f.allow=f.allow.join(";"),b.put("/api/updates/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.update=g,b.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.updates.view",{url:"/view/:id",templateUrl:"app/update/view/view.html",controller:"UpdateViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.updates.view.account",{url:"/account",templateUrl:"app/update/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateWizardCtrl",["$scope","$http","xAlert","$location","WizardHandler","$translate",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"update",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){b.post("/api/updates/validate/",a.item).success(function(a){console.log(a),a.length?c.show(f.instant("MESSAGE_EXIST_INTERNAL"),"danger"):e.wizard().next();
-}).error(function(a){c.show(f.instant(a.message),"danger")})},a.getFirstFreeInternal=function(){b.get("/api/settings/internal").success(function(b){a.item.internal=b.value}).error(function(a){c.show(f.instant(a.message),"danger")})},a.exitValidation=function(a){return a},a.createItem=function(){a.item.transport&&(a.item.transport=a.item.transport.join(",")),a.item.allow&&(a.item.allow=a.item.allow.join(";")),b.post("/api/updates/",a.item).success(function(){d.path("/updates/list")}).error(function(a){a.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.updates.wizard",{url:"/wizard",templateUrl:"app/update/wizard/wizard.html",controller:"UpdateWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UserListCtrl",["$scope","$http","xAlert","$rootScope","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={usersByPage:{name:"10",value:10}},a.usersByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.users={checked:[]},a.check=function(b,c){c?a.users.checked=angular.copy(_.pluck(a.displayedUsers,"id")):a.users.checked=[]},a.getUsers=function(b){return _.map(a.displayedUsers,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/users/"+a).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/users",{params:{id:a.users.checked}}).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.initList=function(b){f.unsyncUpdates("user"),b.url="/api/users/",h.getPage(b).then(function(c){a.displayedUsers=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.usersByPage,a.displayedUsers.length),d.updateTableConfig(a.conf.usersByPage,a.displayedUsers.length)}),f.socket.on("user:save",function(){a.initList(b)}),f.socket.on("user:remove",function(c){a.users.checked=_.without(a.users.checked,c.id),a.initList(b)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.list",{url:"/list",templateUrl:"app/user/list/list.html",controller:"UserListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users",{url:"/users",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("UserViewCtrl",["$scope","$http","$stateParams","$translate","FileUploader","$cookieStore","Auth","xAlert",function(a,b,c,d,e,f,g,h){a.Auth=g,a.updatePassword=function(){var e,f;g.isAdmin()?(e="/api/users/password/"+c.id+"/reset",f={newPassword:a.user.newPwd}):(e="/api/users/password/",f={oldPassword:a.user.currentPwd,newPassword:a.user.newPwd}),b.put(e,f).success(function(a){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})};var i=a.uploader=new e({url:"api/users/"+c.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});i.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),i.onSuccessItem=function(b,c,e,f){a.user.userpic=c.userpic,a.user.id===g.getCurrentUser().id&&(g.getCurrentUser().userpic=c.userpic),h.show(d.instant("MESSAGE_WELL_DONE"),"success")},i.onErrorItem=function(a,b,c,e){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},i.onCompleteAll=function(){i.clearQueue()},a.initView=function(){b.get("/api/users/"+c.id).success(function(b){a.user=b,a.user.transport=a.user.transport?a.user.transport.split(","):[],a.user.allow=a.user.allow?a.user.allow.split(";"):[]}).error(function(a){a.errors.forEach(function(b){h.show(a.message+": "+b.message,"danger")})})},a.updateItem=function(){var e=angular.copy(a.user),f=angular.copy(a.user);delete e.password,delete e.md5secret,e.transport=e.transport.join(","),e.allow=e.allow.join(";"),b.put("/api/users/"+c.id,e).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.user=f,b.errors.forEach(function(a){h.show(b.message+": "+a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.view",{url:"/view/:id",templateUrl:"app/user/view/view.html",controller:"UserViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.users.view.account",{url:"/account",templateUrl:"app/user/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("UserWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"user",host:"dynamic",context:"from-sip"},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/users/",a.item).success(function(){e.show(f.instant("MESSAGE_WELL_DONE"),"success"),c.path("/users/list")}).error(function(a){a.errors.forEach(function(b){e.show(a.message+": "+b.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.wizard",{url:"/wizard",templateUrl:"app/user/wizard/wizard.html",controller:"UserWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VariableListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VariableListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={variablesByPage:{name:"10",value:10}},a.variablesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Variables={checked:[]},a.check=function(b,c){c?a.Variables.checked=angular.copy(_.pluck(a.displayedVariables,"id")):a.Variables.checked=[]},a.getVariables=function(b){return _.map(a.displayedVariables,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("variable"),b.url="/api/variables",h.getPage(b).then(function(c){a.displayedVariables=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.variablesByPage,a.displayedVariables.length),d.updateTableConfig(a.conf.variablesByPage,a.displayedVariables.length)}),c.socket.on("variable:save",function(){a.initList(b)}),c.socket.on("variable:remove",function(c){a.Variables.checked=_.without(a.Variables.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/variables/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/variables",{params:{id:a.Variables.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/variable/list/create.modal.html",controller:"VariableListCreateModalCtrl"});a.result.then(function(a){b.post("/api/variables",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables.list",{url:"/list",templateUrl:"app/variable/list/list.html",controller:"VariableListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables",{url:"/variables",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VariableViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getVariable=function(){b.get("/api/variables/"+e.id).success(function(b){a.variable=b}).error(function(a){console.error(a),f.path("/variables/list")})},a.updateVariable=function(){var f=angular.copy(a.variable);b.put("/api/variables/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.variable=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables.view",{url:"/view/:id",templateUrl:"app/variable/view/view.html",controller:"VariableViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.variables.view.settings",{url:"/settings",templateUrl:"app/variable/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts",{url:"/contexts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceContextListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={contextsByPage:{name:"10",value:10}},a.contextsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.voiceContexts={checked:[]},a.check=function(b,c){c?a.voiceContexts.checked=angular.copy(_.pluck(a.displayedVoiceContexts,"id")):a.voiceContexts.checked=[]},a.getVoiceContexts=function(b){return _.map(a.displayedVoiceContexts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_context"),b.url="/api/voice/contexts",h.getPage(b).then(function(c){a.displayedVoiceContexts=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.contextsByPage,a.displayedVoiceContexts.length),d.updateTableConfig(a.conf.contextsByPage,a.displayedVoiceContexts.length)}),c.socket.on("voice_context:save",function(){a.initList(b)}),c.socket.on("voice_context:remove",function(c){a.voiceContexts.checked=_.without(a.voiceContexts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/contexts/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/contexts",{params:{id:a.voiceContexts.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.list",{url:"/list",templateUrl:"app/voice/context/list/list.html",controller:"VoiceContextListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceContextViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getContext=function(){b.get("/api/voice/contexts/"+e.id).success(function(b){a.context=b}).error(function(a){console.error(a),f.path("/voice/contexts/list")})},a.updateVoiceContext=function(){var f=angular.copy(a.context);b.put("/api/voice/contexts/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.context=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.view",{url:"/view/:id",templateUrl:"app/voice/context/view/view.html",controller:"VoiceContextViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.contexts.view.settings",{url:"/settings",templateUrl:"app/voice/context/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceContextWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={context:void 0},a.item={},a.next=function(){b.post("/api/voice/contexts/validate/",a.item).success(function(a){console.log(a),a.length?e.show(f.instant("MESSAGE_EXIST_CONTEXT"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/contexts/",a.item).success(function(){d.path("/voice/contexts/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.wizard",{url:"/wizard",templateUrl:"app/voice/context/wizard/wizard.html",controller:"VoiceContextWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceMohListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={mohsByPage:{name:"10",value:10},labels:["name","directory","sort","description"]},a.mohsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mohs={checked:[]},a.check=function(b,c){c?a.mohs.checked=angular.copy(_.pluck(a.displayedMohs,"id")):a.mohs.checked=[]},a.getMohs=function(b){return _.map(a.displayedMohs,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("voice_musiconhold"),b.url="/api/voice/musiconholds",h.getPage(b).then(function(c){a.displayedMohs=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.mohsByPage,a.displayedMohs.length),d.updateTableConfig(a.conf.mohsByPage,a.displayedMohs.length)}),f.socket.on("voice_musiconhold:save",function(){a.initList(b)}),f.socket.on("voice_musiconhold:remove",function(c){a.mohs.checked=_.without(a.mohs.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/musiconholds/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/musiconholds",{params:{id:a.mohs.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.list",{url:"/list",templateUrl:"app/voice/moh/list/list.html",controller:"VoiceMohListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs",{url:"/mohs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceMohViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","Modal","$sce","$location",function(a,b,c,d,e,f,g,h,i){a.$translate=d,a.audioSources={},a.sortOptions=[{value:"random",name:"APPLICATION_RANDOM"},{value:"alpha",name:"APPLICATION_ALPHABETICAL"}],a.getMoh=function(){b.get("/api/voice/musiconholds/"+e.id).success(function(b){delete b.stamp,a.moh=b}).error(function(a){console.error(a),i.path("/voice/mohs/list")})},a.updateVoiceMoh=function(){console.log("update");var f=angular.copy(a.moh);b.put("/api/voice/musiconholds/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.voiceMoh=f})},a.addMohs=function(){b.post("/api/voice/musiconholds/"+e.id+"/files",a.item).success(function(){i.path("voice/mohs/view/"+e.id+"/audios")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getAudioFiles=function(){b.get("/api/voice/musiconholds/"+e.id+"/files").success(function(b){a.audioFiles=b.files,a.mohPath=b.path,a.audioFiles.forEach(function(a){j(a)})}).error(function(a){console.error(a)})},a.getSecureSrc=function(a){return h.trustAsResourceUrl(a)};var j=function(c){b.get("/api/voice/musiconholds/stream",{params:{path:encodeURI(a.mohPath+"/"+c)}}).success(function(b){a.audioSources[c]="data:audio/ogg;base64,"+b}).error(function(a){console.error(a)})};a.getSounds=function(){a.item={sounds:[]},b.get("/api/uploads").success(function(b){a.soundList=b}).error(function(a){console.error(a)})},a.deleteItem=g.confirm["delete"](function(f){b["delete"]("/api/voice/musiconholds/"+e.id+"/files",{params:{filename:f}}).success(function(){_.remove(a.audioFiles,function(a){return a===f}),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.view",{url:"/view/:id",templateUrl:"app/voice/moh/view/view.html",controller:"VoiceMohViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.mohs.view.settings",{url:"/settings",templateUrl:"app/voice/moh/view/view.settings.html"}).state("main.voice.mohs.view.audios",{url:"/audios",templateUrl:"app/voice/moh/view/view.audios.html",cache:!1}).state("main.voice.mohs.view.add",{url:"/add",templateUrl:"app/voice/moh/view/view.addFiles.html",cache:!1})}]),angular.module("xCallyShuttleApp").controller("VoiceMohWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.$translate=g,a.initWizard=function(){a.forms={},a.item={sort:"alpha"}},a.next=function(){b.post("/api/voice/musiconholds/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_MOH"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/musiconholds/",a.item).success(function(a){d.path("/voice/mohs/view/"+a.id+"/audios")}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.wizard",{url:"/wizard",templateUrl:"app/voice/moh/wizard/wizard.html",controller:"VoiceMohWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCtrl",["$scope","$http","socket","$translate","$rootScope","Modal","xAlert","stResource",function(a,b,c,d,e,f,g,h){a.conf={voiceQueuesByPage:{name:"10",value:10},labels:["name","description","strategy","context"]},a.voiceQueuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.queues={checked:[]},a.check=function(b,c){c?a.queues.checked=angular.copy(_.pluck(a.displayedQueues,"name")):a.queues.checked=[]},a.getQueues=function(b){return _.map(a.displayedQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_queue"),b.url="/api/voice/queues",h.getPage(b).then(function(c){a.displayedQueues=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.voiceQueuesByPage,a.displayedQueues.length),e.updateTableConfig(a.conf.voiceQueuesByPage,a.displayedQueues.length)}),c.socket.on("voice_queue:save",function(){a.initList(b)}),c.socket.on("voice_queue:remove",function(c){console.log("remove"),a.queues.checked=_.without(a.queues.checked,c.name),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/voice/queues/"+a).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/voice/queues",{params:{name:a.queues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.list",{url:"/list",templateUrl:"app/voice/queue/list/list.html",controller:"VoiceQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location",function(a,b,c,d,e,f,g){a.binaryChoices=[{name:"Yes",value:1},{name:"No",value:0}],a.monitorFormats=[{name:"wav",value:"wav"},{name:"gsm",value:"gsm"},{name:"Inactive",value:""}],a.queueAnnounces=[{display_name:"Default",value:null},{display_name:"Disabled",value:""}];var h=function(){return{select:function(c){b.post("/api/voice/queues/"+a.queue.name+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/voice/queues/"+a.queue.name+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/voice/queues/"+e.id).success(function(b){b.joinempty=""===b.joinempty?[]:b.joinempty.split(","),b.leavewhenempty=""===b.leavewhenempty?[]:b.leavewhenempty.split(","),b.periodic_announce=""===b.periodic_announce?[]:b.periodic_announce.split(","),a.queue=b}).error(function(a){g.path("/voice/queues/list")})},a.updateVoiceQueue=function(){var f=angular.copy(a.queue);f.joinempty=f.joinempty.join(","),f.leavewhenempty=f.leavewhenempty.join(","),f.periodic_announce=f.periodic_announce.join(","),f.context||(f.context=null),b.put("/api/voice/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),f.joinempty=f.joinempty.split(","),f.leavewhenempty=f.leavewhenempty.split(","),f.periodic_announce=f.periodic_announce.split(","),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/voice/user_has_queues",method:"GET",params:{queue:a.queue.name}}).success(function(b){ComponentsDropdowns.bindQueue(a.teams,_.pluck(b,"UserId"),h)})}).error(function(a){console.error(a)})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getMohs=function(){b.get("/api/voice/musiconholds").success(function(b){a.voiceMohs=b.rows,f.syncUpdates("voice_musiconhold",a.voiceMohs)}).error(function(a){c.show(a.message,"danger")})},a.getSounds=function(){b.get("/api/uploads").success(function(b){a.queueAnnounces=a.queueAnnounces.concat(b),a.periodicAnnounces=angular.copy(b),b.unshift({display_name:"None",converted_path:null,value:""}),a.sounds=b,f.syncUpdates("upload",a.sounds)}).error(function(a){console.error(a)})},a.returnAnnouncePath=function(a){return console.log("func"),a.converted_path?a.converted_path+"/"+a.save_name:null===a.value?null:a.value}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.view",{url:"/view/:id",templateUrl:"app/voice/queue/view/view.html",controller:"VoiceQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.queues.view.settings",{url:"/settings",templateUrl:"app/voice/queue/view/view.settings.html"}).state("main.voice.queues.view.agents",{url:"/agents",templateUrl:"app/voice/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={queue:void 0},a.item={},a.next=function(){b.post("/api/voice/queues/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_QUEUE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/queues/",a.item).success(function(){d.path("/voice/queues/list")}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.wizard",{url:"/wizard",templateUrl:"app/voice/queue/wizard/wizard.html",controller:"VoiceQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/agent/pause.modal.html",controller:"VoiceRealtimeViewAgentPauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/agent/queue.modal.add.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log(a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/voice/realtime/view/agent/queue.modal.remove.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initAgents=function(){b.get("/api/voice/user_has_queues").success(function(b){a.agents=b,a.groups=_.map(_.groupBy(a.agents,"membername"),function(a,b){return{membername:b,queues:a}}),f.socket.on("user_has_voice_queue:save",function(b){var c=_.find(a.groups,{membername:b.membername}),d=a.groups.indexOf(c);if(c){var e=_.find(c.queues,{queue:b.queue});e?_.merge(e,b):a.groups[d].queues.push(b)}else{var f={membername:b.membername,queues:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{membername:b.membername});_.remove(c.queues,{queue:b.queue}),c.queues.length||_.remove(a.groups,{membername:b.membername})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{membername:b.membername}),d=a.groups.indexOf(c);if(c){var e=_.find(c.queues,{queue:b.queue});e?_.merge(e,b):a.groups[d].queues.push(b)}else{var f={membername:b.membername,queues:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentPauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c){var e={action:"QueuePause","interface":a.selected["interface"],paused:c,reason:a.selected.item};_.isArray(d)||(e.queue=a.selected.queue),b.close(e)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={membername:a.data[0].membername,"interface":a.data[0]["interface"],penalty:0,paused:!1,reason:a.pauses[0],UserId:a.data[0].UserId},c.get("/api/voice/queues",{params:{page:0,per_page:100}}).success(function(b){a.queues=_.reject(b.rows,function(b){return _.find(a.data,{queue:b.name})?!0:!1}),a.selected.queue=a.queues[0]?a.queues[0].name:null,console.log(a.queues)}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,_.isArray(e)?a.selected={membername:a.data[0].membername,"interface":a.data[0]["interface"],logout:!1,UserId:a.data[0].UserId}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){console.log(a.selected);var c={action:"QueueAdd",logged:a.data[0].logged,loggedAt:a.data[0].loggedAt,queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),
-b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_agent")}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.agents=[],b.get("/api/report/agents").success(function(b){a.agents=b,c.syncUpdates("report_agent",a.agents)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewAgentReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_queue")}),a.conf={queuesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.queues=[],b.get("/api/report/queues").success(function(b){console.log(b),a.queues=b,c.syncUpdates("report_queue",a.queues)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewQueueReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueuePauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,console.log(d),a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c,e){var f;_.isArray(d)?(f=[],d.forEach(function(b){f.push({action:"QueuePause",queue:b.queue,membername:b.membername,"interface":b["interface"],paused:c,reason:a.selected.item})})):f={action:"QueuePause",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],paused:c,reason:a.selected.item},b.close(f)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/queue/pause.modal.html",controller:"VoiceRealtimeViewQueuePauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/queue/queue.modal.add.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log("action",a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")}),console.log(a)},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/voice/realtime/view/queue/queue.modal.remove.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initQueues=function(){b.get("/api/voice/user_has_queues").success(function(b){a.queues=b,a.groups=_.map(_.groupBy(a.queues,"queue"),function(a,b){return{queue:b,agents:a}}),console.log("ok"),f.socket.on("user_has_voice_queue:save",function(b){console.log("item",b);var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{queue:b.queue});_.remove(c.agents,{membername:b.membername}),c.agents.length||_.remove(a.groups,{queue:b.queue})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={penalty:0,paused:!1,reason:a.pauses[0]},a.$watch("selected.agent",function(b){b&&(a.selected.membername=b.name,a.selected["interface"]="SIP/"+b.name,a.selected.UserId=b.id)}),c.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=_.reject(b.rows,function(b){return _.find(a.data,{membername:b.name})?!0:!1}),a.selected.queue=a.data[0]?a.data[0].queue:null}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,console.log(e),_.isArray(e)?a.selected={queue:a.data[0].queue,logout:!1}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){var c={action:"QueueAdd",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.voice.realtime.view.agents"},{name:"View2",link:"main.voice.realtime.view.areports"}],a.queues=[{name:"View1",link:"main.voice.realtime.view.queues"},{name:"View2",link:"main.voice.realtime.view.qreports"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.realtime.view",{url:"/view",templateUrl:"app/voice/realtime/view/view.html",controller:"VoiceRealtimeViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.realtime.view.queues",{url:"/queues",controller:"VoiceRealtimeViewQueueCtrl",templateUrl:"app/voice/realtime/view/queue/queue.html"}).state("main.voice.realtime.view.qreports",{url:"/qreport/:search",controller:"VoiceRealtimeViewQueueReportCtrl",templateUrl:"app/voice/realtime/view/qreport/report.html"}).state("main.voice.realtime.view.agents",{url:"/agents",controller:"VoiceRealtimeViewAgentCtrl",templateUrl:"app/voice/realtime/view/agent/agent.html"}).state("main.voice.realtime.view.areports",{url:"/areport",controller:"VoiceRealtimeViewAgentReportCtrl",templateUrl:"app/voice/realtime/view/areport/report.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound",{url:"/inbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/inbound",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.routesByPage,a.displayedRoutes.length),e.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"inbound"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"inbound"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.list",{url:"/list",templateUrl:"app/voice/route/inbound/list/list.html",controller:"VoiceRouteInboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundViewCtrl",["$scope","$http","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=c,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={settings:void 0,interval:void 0},a.application={VoiceExtensionId:d.id,type:"inbound"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var e,f;switch(d.appId||(a.application={VoiceExtensionId:d.id,type:"inbound",interval:a.application.interval}),c){case"Queue":e="api/voice/queues",f="/api/uploads";break;case"Playback":e="/api/uploads";break;case"AGI":e="/api/square/projects";break;case"Goto":e="/api/voice/contexts";break;default:e=null,f=null}e&&b.get(e).success(function(b){a.items="Playback"!==c?b.rows:b}),f&&b.get(f).success(function(b){a.items2=b})}},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+d.id+"/applications").success(function(b){a.routeApplications=b,e.unsyncUpdates("voice_extension"),e.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),e.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===d.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+d.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(b){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0},a.getRoute=function(){b.get("/api/voice/extensions/"+d.id).success(function(b){a.route=b,e.socket.on("voice_extension:update",function(b){b.id==d.id&&(a.route=b)})}).error(function(a){f.path("/voice/routes/inbound/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+d.appId).success(function(b){var c=_.filter(a.$application.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),"Queue"===b.app&&(a.application.app_options=b.app_options?b.app_options.split(","):[]),a.interval.intType=b.IntervalId?"list":"*,*,*,*"===b.interval?"always":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){f.path("/voice/routes/inbound/view/"+d.id+"/applications")})},a.updateRoute=function(){var e=angular.copy(a.route);b.put("/api/voice/extensions/"+d.id,e).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){i.show(c.instant(b.message),"danger"),a.route=e})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){f.path("/voice/routes/inbound/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.updateItem=function(){switch(a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+d.appId,a.application).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),f.path("/voice/routes/inbound/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.deleteItem=h.confirm["delete"](function(d){b["delete"]("/api/voice/extensions/"+d).success(function(){a.getRouteApplications(),i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(c.instant(a.message),"danger")})}),a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.view",{url:"/view/:id",templateUrl:"app/voice/route/inbound/view/view.html",controller:"VoiceRouteInboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.inbound.view.settings",{url:"/settings",templateUrl:"app/voice/route/inbound/view/view.settings.html"}).state("main.voice.routes.inbound.view.applications",{url:"/applications",templateUrl:"app/voice/route/inbound/view/view.applications.html",cache:!1}).state("main.voice.routes.inbound.view.application",{url:"/application",templateUrl:"app/voice/route/inbound/view/view.application.html",authenticate:!0}).state("main.voice.routes.inbound.view.applications.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/inbound/view/view.applicationSettings.html",authenticate:!0,controller:"VoiceRouteInboundViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"inbound",appdata:"Inbound Call",context:"from-voip-provider"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/inbound/view/"+a.id+"/applications")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.wizard",{url:"/wizard",templateUrl:"app/voice/route/inbound/wizard/wizard.html",controller:"VoiceRouteInboundWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal",{url:"/internal",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/internal",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.routesByPage,a.displayedRoutes.length),e.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"internal"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"internal"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.list",{url:"/list",templateUrl:"app/voice/route/internal/list/list.html",controller:"VoiceRouteInternalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalViewCtrl",["$scope","$http","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=c,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={settings:void 0,interval:void 0},a.application={VoiceExtensionId:d.id,type:"internal"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var e,f;switch(d.appId||(a.application={VoiceExtensionId:d.id,type:"internal",interval:a.application.interval}),c){case"Queue":e="api/voice/queues",f="/api/uploads";break;case"Playback":e="/api/uploads";break;case"AGI":e="/api/square/projects";break;case"Goto":e="/api/voice/contexts";break;default:e=null,f=null}e&&b.get(e).success(function(b){a.items="Playback"!==c?b.rows:b}),f&&b.get(f).success(function(b){a.items2=b})}},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+d.id+"/applications").success(function(b){a.routeApplications=b,e.unsyncUpdates("voice_extension"),e.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),e.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===d.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+d.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(b){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0},a.getRoute=function(){b.get("/api/voice/extensions/"+d.id).success(function(b){a.route=b,e.socket.on("voice_extension:update",function(b){b.id==d.id&&(a.route=b)})}).error(function(a){console.error(a),f.path("/voice/routes/internal/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+d.appId).success(function(b){var c=_.filter(a.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),"Queue"===b.app&&(a.application.app_options=b.app_options?b.app_options.split(","):[]),a.interval.intType=b.IntervalId?"list":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){f.path("/voice/routes/internal/view/"+d.id+"/applications")})},a.updateRoute=function(){var e=angular.copy(a.route);b.put("/api/voice/extensions/"+d.id,e).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){i.show(c.instant(b.message),"danger"),a.route=e})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){f.path("/voice/routes/internal/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.updateItem=function(){switch(a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+d.appId,a.application).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),f.path("/voice/routes/internal/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.deleteItem=h.confirm["delete"](function(d){b["delete"]("/api/voice/extensions/"+d).success(function(b){a.getRouteApplications(),i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(c.instant(a.message),"danger")})}),a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.view",{url:"/view/:id",templateUrl:"app/voice/route/internal/view/view.html",controller:"VoiceRouteInternalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.internal.view.settings",{url:"/settings",templateUrl:"app/voice/route/internal/view/view.settings.html"}).state("main.voice.routes.internal.view.applications",{url:"/applications",templateUrl:"app/voice/route/internal/view/view.applications.html",cache:!1}).state("main.voice.routes.internal.view.application",{url:"/application",templateUrl:"app/voice/route/internal/view/view.application.html",authenticate:!0}).state("main.voice.routes.internal.view.applications.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/internal/view/view.applicationSettings.html",authenticate:!0,controller:"VoiceRouteInternalViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"internal",appdata:"Iternal Call",context:"from-sip"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/internal/view/"+a.id+"/applications")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.wizard",{url:"/wizard",templateUrl:"app/voice/route/internal/wizard/wizard.html",controller:"VoiceRouteInternalWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){
-return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/outbound",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.routesByPage,a.displayedRoutes.length),d.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"outbound"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"outbound"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(e.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.list",{url:"/list",templateUrl:"app/voice/route/outbound/list/list.html",controller:"VoiceRouteOutboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound",{url:"/outbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=d,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={info:void 0,interval:void 0},a.application={VoiceExtensionId:e.id,type:"outbound"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""},a.applications=[{name:"Dial",value:"Dial"},{name:"Custom",value:"custom"}]},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var d,f;switch(e.appId||(a.application={VoiceExtensionId:e.id,type:"outbound",interval:a.application.interval}),c){case"Dial":d="api/trunks",f="/api/voice/contexts";break;default:d=null,f=null}d&&b.get(d).success(function(b){a.items="Dial"===c?b.rows:b}),f&&b.get(f).success(function(b){a.items2="Dial"===c?b.rows:b})}},!0),a.$watch("application.TrunkId",function(b){b&&(a.application.trunk=_.result(_.find(a.items,{id:b}),"name"))},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,f.syncUpdates("interval",a.Intervals)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+e.id+"/applications").success(function(b){a.routeApplications=b,f.unsyncUpdates("voice_extension"),f.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),f.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===e.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+e.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0},a.getRoute=function(){b.get("/api/voice/extensions/"+e.id).success(function(b){a.route=b,f.socket.on("voice_extension:update",function(b){b.id==e.id&&(a.route=b)})}).error(function(a){g.path("/voice/routes/outbound/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+e.appId).success(function(b){var c=_.filter(a.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.intType=b.IntervalId?"list":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){console.error(a),g.path("/voice/routes/outbound/view/"+e.id+"/routes")})},a.updateRoute=function(){var f=angular.copy(a.route);b.put("/api/voice/extensions/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.route=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){g.path("/voice/routes/outbound/view/"+e.id+"/routes")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.updateItem=function(){switch(a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+e.appId,a.application).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),g.path("/voice/routes/outbound/view/"+e.id+"/routes")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.deleteItem=i.confirm["delete"](function(e){b["delete"]("/api/voice/extensions/"+e).success(function(b){a.getRouteApplications(),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.goNext=function(){h.wizard().next()},a.previous=function(){h.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){f.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.view",{url:"/view/:id",templateUrl:"app/voice/route/outbound/view/view.html",controller:"VoiceRouteOutboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.outbound.view.settings",{url:"/settings",templateUrl:"app/voice/route/outbound/view/view.settings.html"}).state("main.voice.routes.outbound.view.routes",{url:"/routes",templateUrl:"app/voice/route/outbound/view/view.routes.html",cache:!1}).state("main.voice.routes.outbound.view.route",{url:"/route",templateUrl:"app/voice/route/outbound/view/view.route.html",authenticate:!0}).state("main.voice.routes.outbound.view.routes.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/outbound/view/view.routeSettings.html",authenticate:!0,controller:"VoiceRouteOutboundViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"outbound",appdata:"Outbound Call",context:"from-sip"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/outbound/view/"+a.id+"/routes")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.wizard",{url:"/wizard",templateUrl:"app/voice/route/outbound/wizard/wizard.html",controller:"VoiceRouteOutboundWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes",{url:"/routes",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice",{url:"/voice",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={voicemailsByPage:{name:"10",value:10},labels:["mailbox","fullname","email"]},a.voicemailsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.voicemails={checked:[]},a.check=function(b,c){c?a.voicemails.checked=angular.copy(_.pluck(a.displayedVoicemails,"uniqueid")):a.voicemails.checked=[]},a.getVoicemails=function(b){return _.map(a.displayedVoicemails,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("voice_voicemail"),b.url="/api/voice/voicemails",h.getPage(b).then(function(c){a.displayedVoicemails=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.voicemailsByPage,a.displayedVoicemails.length),d.updateTableConfig(a.conf.voicemailsByPage,a.displayedVoicemails.length)}),f.socket.on("voice_voicemail:save",function(){a.initList(b)}),f.socket.on("voice_voicemail:remove",function(c){a.voicemails.checked=_.without(a.voicemails.checked,c.uniqueid),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/voicemails/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/voicemails",{params:{uniqueid:a.voicemails.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.list",{url:"/list",templateUrl:"app/voice/voicemail/list/list.html",controller:"VoiceVoicemailListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location",function(a,b,c,d,e,f,g,h,i){a.getVoicemail=function(){b.get("/api/voice/voicemails/"+e.uniqueid).success(function(b){delete b.password,delete b.stamp,a.voicemail=b}).error(function(a){console.error(a),i.path("/voice/voicemails/list")})},a.updateVoiceVoicemail=function(){var f=angular.copy(a.voicemail);b.put("/api/voice/voicemails/"+e.uniqueid,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.voicemail=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(a.message,"danger")})},a.getMessages=function(){b.get("/api/voice/voicemails/"+e.uniqueid+"/messages/").success(function(b){a.voicemailMessages=b,f.syncUpdates("voice_voicemail_messages",a.voicemailMessages)}).error(function(a){c.show(a.message,"danger")})},a.encodeRecording=function(a){return g.trustAsResourceUrl("data:audio/ogg;base64,"+j(a.data))},a.returnMessageDate=function(a){return a.split("T")[0]},a.returnDuration=function(a){return 1e3*a},a.deleteItem=h.confirm["delete"](function(a){b["delete"]("/api/voice/voicemails/messages/"+a+"/delete").success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){console.log(a),c.show(a.message,"danger")})});var j=function(a){for(var b=new Uint8Array(a),c=b.byteLength,d="",e=0;c>e;e++)d+=String.fromCharCode(b[e]);return window.btoa(d)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.view",{url:"/view/:uniqueid",templateUrl:"app/voice/voicemail/view/view.html",controller:"VoiceVoicemailViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.voicemails.view.settings",{url:"/settings",templateUrl:"app/voice/voicemail/view/view.settings.html"}).state("main.voice.voicemails.view.messages",{url:"/messages",templateUrl:"app/voice/voicemail/view/view.messages.html"})}]),angular.module("xCallyShuttleApp").controller("VoicemailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails",{url:"/voicemails",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={}},a.next=function(){b.post("/api/voice/voicemails/validate/",a.item).success(function(a){a.length?e.show(g.instant("MESSAGE_EXIST_MAILBOX"),"danger"):c.wizard().next()}).error(function(a){e.show(a.message,"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){a.item.customer_id=a.item.mailbox,b.post("/api/voice/voicemails/",a.item).success(function(){d.path("/voice/voicemails/list")}).error(function(a){e.show(a.message,"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.wizard",{url:"/wizard",templateUrl:"app/voice/voicemail/wizard/wizard.html",controller:"VoiceVoicemailWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={dashboardsByPage:{name:"10",value:10}},a.dashboardsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.dashboards={checked:[]},a.check=function(b,c){c?a.dashboards.checked=angular.copy(_.pluck(a.displayedDashboards,"id")):a.dashboards.checked=[]},a.getDashboards=function(b){return _.map(a.displayedDashboards,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){b.url="/api/dashboards",h.getPage(b).then(function(c){a.displayedDashboards=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.dashboardsByPage,a.displayedDashboards.length),d.updateTableConfig(a.conf.dashboardsByPage,a.displayedDashboards.length)}),c.socket.on("dashboard:save",function(){a.initList(b)}),c.socket.on("dashboard:remove",function(c){a.dashboards.checked=_.without(a.dashboards.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/dashboards/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/dashboards",{params:{id:a.dashboards.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/yourdashboard/list/create.modal.html",controller:"YourdashboardListCreateModalCtrl"});a.result.then(function(a){b.post("/api/dashboards",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.list",{url:"/list",templateUrl:"app/yourdashboard/list/list.html",controller:"YourdashboardListCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardShowCtrl",["$scope","localStorageService","$http","xAlert","$translate","Auth","$stateParams","$location",function(a,b,c,d,e,f,g,h){a.Auth=f,a.dashboard={name:"dashboard",structure:"4-8",enableconfirmdelete:!0,editable:f.isAdmin()?!0:!1,maximizable:!0,collapsible:!0},a.getDashboard=function(){c.get("/api/dashboards/"+g.id).success(function(b){b.model=JSON.parse(b.model),a.dashboard=_.merge(a.dashboard,b)}).error(function(a){h.path("/yourdashboards/list")})};var i=function(b,f,h){var i=angular.copy(a.dashboard);i.name=a.dashboard.model.title,i.model=JSON.stringify(i.model),c.put("/api/dashboards/"+g.id,i).success(function(){d.show(e.instant("MESSAGE_DASHBOARD_SAVED")+"!","success")}).error(function(b){d.show(b.message,"danger"),i.model=JSON.parse(i.model),i.name="dashboard",a.dashboard=i})};a.$on("adfDashboardChanged",i),a.$on("destroy",function(){console.log("main dashboard")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.show",{url:"/show/:id",templateUrl:"app/yourdashboard/show/show.html",controller:"YourdashboardShowCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.radioSwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.getDashboard=function(){b.get("/api/dashboards/"+e.id).success(function(b){delete b.model,a.dashboard=b}).error(function(a){f.path("/yourdashboards/list")})},a.updateDashboard=function(){var f=angular.copy(a.dashboard);b.put("/api/dashboards/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.dashboard=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.view",{url:"/view/:id",templateUrl:"app/yourdashboard/view/view.html",controller:"YourdashboardViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.yourdashboards.view.settings",{url:"/settings",templateUrl:"app/yourdashboard/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards",{url:"/yourdashboards",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedZdAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedZdAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("zendesk_account"),b.url="/api/zendesk/accounts",h.getPage(b).then(function(d){a.displayedZdAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedZdAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedZdAccounts.length)}),f.socket.on("zendesk_account:save",function(){a.initList(b)}),f.socket.on("zendesk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/zendesk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/zendesk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.checkAccount=function(a){b.get("/api/zendesk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.list",{url:"/list",templateUrl:"app/zendesk/list/list.html",controller:"ZendeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.$stateParams=c,a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("zendesk_configuration"),g.unsyncUpdates("zendesk_field")}),a.initView=function(){b.get("/api/zendesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/zendesk/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/zendesk/configurations",{params:{ZendeskAccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("zendesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/zendesk/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.ZendeskAccountId=c.id,b.post("api/zendesk/configurations",a.configuration).success(function(a){e.path("zendesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/zendesk/accounts/"+c.id+"/fields").success(function(b){a.accountFields=b}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/zendesk/configurations/"+c.configurationId).success(function(b){console.log(b),a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,g.socket.on("zendesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItemFromSubject=function(a){b["delete"]("api/zendesk/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.removeItemFromDescription=function(a){b["delete"]("api/zendesk/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateSubjectText=function(a){b.put("/api/zendesk/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.updateDescriptionText=function(a){b.put("/api/zendesk/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateSubjectText(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateDescriptionText(b)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view",{url:"/view/:id",templateUrl:"app/zendesk/view/view.html",controller:"ZendeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.zendesk.view.account",{url:"/account",templateUrl:"app/zendesk/view/view.account.html"}).state("main.zendesk.view.configurations",{url:"/configurations",templateUrl:"app/zendesk/view/view.configurations.html"}).state("main.zendesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/zendesk/view/view.configurationSettings.html",controller:"ZendeskViewCtrl"}).state("main.zendesk.view.configuration",{url:"/configuration",templateUrl:"app/zendesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("ZendeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.authType="password"},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/zendesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/zendesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.wizard",{url:"/wizard",templateUrl:"app/zendesk/wizard/wizard.html",controller:"ZendeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk",{url:"/zendesk",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").service("application",function(){var a={applications:[{name:"Queue",value:"Queue"},{name:"Playback",value:"Playback"},{name:"Dial",value:"Dial"},{name:"Cally-Square IVR",value:"AGI"},{name:"GoTo",value:"Goto"},{name:"Hangup",value:"Hangup"},{name:"Set",value:"Set"},{name:"Custom",value:"custom"},{name:"VoiceMail",value:"Voicemail"}],queueOptions:[{value:"C",name:"APPLICATION_QUEUE_OPTION_C"},{value:"c",name:"APPLICATION_QUEUE_OPTION_c"},{value:"d",name:"APPLICATION_QUEUE_OPTION_d"},{value:"F",name:"APPLICATION_QUEUE_OPTION_F"},{value:"h",name:"APPLICATION_QUEUE_OPTION_h"},{value:"H",name:"APPLICATION_QUEUE_OPTION_H"},{value:"n",name:"APPLICATION_QUEUE_OPTION_n"},{value:"i",name:"APPLICATION_QUEUE_OPTION_i"},{value:"I",name:"APPLICATION_QUEUE_OPTION_I"},{value:"r",name:"APPLICATION_QUEUE_OPTION_r"},{value:"R",name:"APPLICATION_QUEUE_OPTION_R"},{value:"t",name:"APPLICATION_QUEUE_OPTION_t"},{value:"T",name:"APPLICATION_QUEUE_OPTION_T"},{value:"w",name:"APPLICATION_QUEUE_OPTION_w"},{value:"W",name:"APPLICATION_QUEUE_OPTION_W"},{value:"k",name:"APPLICATION_QUEUE_OPTION_k"},{value:"K",name:"APPLICATION_QUEUE_OPTION_K"},{value:"x",name:"APPLICATION_QUEUE_OPTION_x"},{value:"X",name:"APPLICATION_QUEUE_OPTION_X"}],audioOptions:[{value:"skip",name:"APPLICATION_PLAYBACK_OPTION_SKIP"},{value:"noanswer",name:"APPLICATION_PLAYBACK_OPTION_NOANSWER"},{value:"j",name:"APPLICATION_PLAYBACK_OPTION_J"},{value:"say",name:"APPLICATION_PLAYBACK_OPTION_SAY"}],hangupCauses:[{value:"",name:"--"},{value:"1",name:"APPLICATION_HANGUP_CAUSE_1"},{value:"16",name:"APPLICATION_HANGUP_CAUSE_16"},{value:"17",name:"APPLICATION_HANGUP_CAUSE_17"},{value:"18",name:"APPLICATION_HANGUP_CAUSE_18"},{value:"21",name:"APPLICATION_HANGUP_CAUSE_21"},{value:"22",name:"APPLICATION_HANGUP_CAUSE_22"},{value:"27",name:"APPLICATION_HANGUP_CAUSE_27"},{value:"38",name:"APPLICATION_HANGUP_CAUSE_38"},{value:"41",name:"APPLICATION_HANGUP_CAUSE_41"}],intTypes:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"custom",name:"APPLICATION_CUSTOM"},{value:"list",name:"APPLICATION_FROM_LIST"}]};return{application:a}}),angular.module("xCallyShuttleApp").factory("Auth",["$location","$rootScope","$http","User","$cookieStore","$q",function(a,b,c,d,e,f){var g={};return e.get("token")&&(g=d.me()),{login:function(a,h){var i=h||angular.noop,j=f.defer();return c.post("/auth/local",{name:a.name,password:a.password,remember:a.remember}).success(function(a){return e.put("token",a.token),e.put("userId",a.userId),g=d.me({},function(){b.$broadcast("login")}),j.resolve(a),i()}).error(function(a){return this.logout(),j.reject(a),i(a)}.bind(this)),j.promise},loginWithToken:function(a,b,c){e.put("token",a),e.put("userId",b),
-e.put("name",c),g=d.me()},logout:function(){c.put("/api/users/"+g.id,{online:!1}).success(function(){e.remove("token"),e.remove("userId"),g={},b.$broadcast("logout")}).error(function(a){return a})},createUser:function(a,b){var c=b||angular.noop;return d.save(a,function(b){return e.put("token",b.token),g=d.me(),c(a)},function(a){return this.logout(),c(a)}.bind(this)).$promise},changePassword:function(a,b,c){var e=c||angular.noop;return d.changePassword({id:g.id},{oldPassword:a,newPassword:b},function(a){return e(null,a)},function(a){return e(a)}).$promise},getCurrentUser:function(){return g},isLoggedIn:function(){return g.hasOwnProperty("role")},isLoggedInAsync:function(a){g.hasOwnProperty("$promise")?g.$promise.then(function(){a(!0)})["catch"](function(){a(!1)}):a(g.hasOwnProperty("role")?!0:!1)},isAdmin:function(){return"admin"===g.role},getRole:function(){return g.role},getToken:function(){return e.get("token")},getUserId:function(){return console.log(e.get("userId")),e.get("userId")},getName:function(){return e.get("name")}}}]),angular.module("xCallyShuttleApp").factory("User",["$resource",function(a){return a("/api/users/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},me:{method:"GET",params:{id:"me"}}})}]),angular.module("xCallyShuttleApp").service("automations",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select",operators:"equals"},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",propertyField:"number",operators:"noequals"}],actions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select"}]},chat:{conditions:[],actions:[]},fax:{conditions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select",operators:"equals"},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",propertyField:"number",operators:"noequals"}],actions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select"}]}},b=["voice","mail","chat","fax"],c={equals:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"}],all:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"},{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}],noequals:[{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}]},d={voice:{},mail:{status:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_PENDING",value:"PENDING"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"},{name:"APPLICATION_STATUS_SOLVED",value:"SOLVED"}]},chat:{},fax:{status:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_PENDING",value:"PENDING"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"},{name:"APPLICATION_STATUS_SOLVED",value:"SOLVED"}]}};return{automations:a,properties:d,channels:b,operators:c}}),angular.module("xCallyShuttleApp").controller("FooterController",["$scope",function(a){a.$on("$includeContentLoaded",function(){Layout.initFooter()})}]),angular.module("xCallyShuttleApp").controller("HeaderController",["$scope","$rootScope","$location","$state","$http","$notification","Auth","xAlert","socket","ngAudio","settings","toastr","localStorageService",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.toggleQuickSidebar=function(){k.layout.pageQuickSidebarOpened=!k.layout.pageQuickSidebarOpened,k.layout.pageQuickSidebarOpened||m.remove("chatRoomId")},a.initHeader=function(){var c=j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3");"agent"===g.getCurrentUser().role&&(i.socket.on("report_mail:save",function(a){c.play();var b=f("MAIL CHANNEL",{icon:"assets/images/media/channels/mail64.png",body:"NEW Incoming Mail Message!",delay:1e3*a.timeslot});b.$on("click",function(){e.put("/api/report/mails/"+a.id,{connect:!0}).success(function(){b.close(),h.show("Mail properly assigned","success")}).error(function(a){h.show(a.message,"danger")})})}),i.socket.on("report_chat:save",function(a){c.play();var d=f("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming Chat Visitor!",delay:1e3*a.timeslot});d.$on("click",function(){e.put("/api/report/chats/"+a.id,{connect:!0}).success(function(){d.close(),h.show("Chat properly assigned","success"),b.$broadcast("chatMessageEvent",{type:"external",chatRoomId:a.chatroomid})}).error(function(a){h.show(a.message,"danger")})})}),i.socket.on("chat_message:save",function(a){var d=m.get("chatRoomId");if(!d||d!==a.ChatRoomId){c.play();var e=f(a.User.fullname,{icon:"assets/images/media/channels/chat64.png",body:a.body.length>35?a.body.substring(0,35)+"...":a.body,delay:1e4});e.$on("click",function(){b.$broadcast("chatMessageEvent",{type:"internal",chatRoomId:a.ChatRoomId})})}})),e({url:"/api/fax/user_has_queues",method:"GET",params:{UserId:g.getCurrentUser().id}}).success(function(b){a.faxQueues=_.pluck(b,"FaxQueueId"),a.faxQueues.forEach(function(a){i.socket.on("FAX:QUEUE:"+a,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}),i.socket.on("FAX:AGENT:"+g.getCurrentUser().id,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}).error(function(a){console.error(a)}),i.socket.on("user_has_fax_queue:save",function(b){b=_.map(b,function(a){return a.UserId=parseInt(a.UserId,10),a}),b=_.find(b,{UserId:g.getCurrentUser().id}),b&&-1===_.indexOf(a.faxQueues,b.FaxQueueId)&&(a.faxQueues.push(b.FaxQueueId),i.socket.on("FAX:QUEUE:"+b.FaxQueueId,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})}))}),i.socket.on("user_has_fax_queue:remove",function(b){_.indexOf(b.where.UserId,g.getCurrentUser().id.toString())>=0&&_.indexOf(a.faxQueues,b.where.FaxQueueId)>=0&&(a.faxQueues=_.remove(a.faxQueues,b.where.FaxQueueId),i.socket.removeAllListeners("FAX:QUEUE:"+b.where.FaxQueueId))})},a.logout=function(){e.get("/auth/local/logout").success(function(){g.logout(),c.path("/login")}).error(function(a){console.error(a)})},a.isActive=function(a){return a===c.path()}}]),angular.module("xCallyShuttleApp").service("interval",function(){var a={months:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"jan",name:"APPLICATION_JANUARY"},{value:"feb",name:"APPLICATION_FEBRUARY"},{value:"mar",name:"APPLICATION_MARCH"},{value:"apr",name:"APPLICATION_APRIL"},{value:"may",name:"APPLICATION_MAY"},{value:"jun",name:"APPLICATION_JUNE"},{value:"jul",name:"APPLICATION_JULY"},{value:"aug",name:"APPLICATION_AUGUST"},{value:"sep",name:"APPLICATION_SEPTEMBER"},{value:"oct",name:"APPLICATION_OCTOBER"},{value:"nov",name:"APPLICATION_NOVEMBER"},{value:"dec",name:"APPLICATION_DECEMBER"}],daysOfWeek:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"mon",name:"APPLICATION_MONDAY"},{value:"tue",name:"APPLICATION_TUESDAY"},{value:"wed",name:"APPLICATION_WEDNESDAY"},{value:"thu",name:"APPLICATION_THURSDAY"},{value:"fri",name:"APPLICATION_FRIDAY"},{value:"sat",name:"APPLICATION_SATURDAY"},{value:"sun",name:"APPLICATION_SUNDAY"}],daysOfMonth:["always",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]};return{interval:a}}),angular.module("xCallyShuttleApp").factory("Modal",["$rootScope","$uibModal",function(a,b){function c(c,d){console.log("openModal",d);var e=a.$new();return c=c||{},d=d||"modal-default",angular.extend(e,c),b.open({templateUrl:"components/modal/delete.html",windowClass:d,scope:e})}return{confirm:{"delete":function(a){return a=a||angular.noop,function(){var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"<p>Are you sure you want to delete"+(e?"<strong> "+e+"</strong>":" selected items")+"?</p>",buttons:[{classes:"btn red",text:"Delete",click:function(a){b.close(a)}},{classes:"btn default",text:"Cancel",click:function(a){b.dismiss(a)}}]}},"over-topbar center"),b.result.then(function(b){a.apply(b,d)})}}}}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerAddModal",["$scope","$uibModalInstance","Agent","items",function(a,b,c,d){a.items=d,a.agents=c.get(function(b){a.agents=b,a.items.forEach(function(b){_.remove(a.agents.rows,{id:b.id})})}),a.selected={items:[]},a.modal={title:"APPLICATION_AGENTS_SELECTION"},a.ok=function(){b.close(_.union(_.pluck(a.selected.items,"id"),_.pluck(a.items,"id")))},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerCloseModal",["$scope","$uibModalInstance",function(a,b){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_CHAT"},a.ok=function(){b.close()},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarController",["$scope","$rootScope","$window","$http","$uibModal","$log","$timeout","Auth","Agent","User","ChatRoom","ChatMessage","socket","settings","localStorageService","xAlert","$translate",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){a.emojiMessage={},a.options={link:!0,linkTarget:"_blank",pdf:{embed:!1},image:{embed:!0},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!1,video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,ytAuthKey:"_nkO9h1A7HlVyiUICO17oA"}};var r=a.currentUser=h.getCurrentUser();a.message={body:"",user:""},a.$on("$includeContentLoaded",function(){o.get("chatRoomId")&&k.get({id:o.get("chatRoomId")},t,u),o.get("currentTab")&&(a.currentTab=o.get("currentTab"))});var s=angular.element(c);a.getWindowDimensions=function(){return{h:s.height(),w:s.width()}},a.$watch(a.getWindowDimensions,function(b){a.style={height:b.h-46-46-46+"px"},a.style2={height:b.h-46-46-46-180+"px"}},!0),s.bind("resize",function(){a.$apply()}),a.agents=i.get({page:0,per_page:1e3},function(){m.syncUpdates("agent",a.agents.rows)}),a.users=j.get({page:0,per_page:1e3},function(){m.syncUpdates("user",a.users.rows)}),a.chatRooms=k.me(function(b){a.chatRooms=b,m.syncUpdates("chat_room",a.chatRooms)},function(a){console.error(a)}),a.currentTab=0,a.messagesTab=!1,b.$on("chatMessageEvent",function(b,c){switch(c.type){case"internal":a.currentTab=0;break;case"external":a.currentTab=2}k.get({id:c.chatRoomId},t,u)}),a.goToTab=function(b){a.currentTab=b,a.messagesTab=!1,a.chatRoom=null,o.set("currentTab",a.currentTab),o.set("messagesTab",a.messagesTab),o.remove("chatRoomId"),m.unsyncUpdates("chat_message"),m.unsyncUpdates("chat_room")},a.goToMessage=function(a,b){a?k.users({users:[r.id,a]},t,u):k.get({id:b},t,u)},a.sendMessage=function(){a.message.body.trim().length&&l.save({ChatRoomId:a.chatRoom.id,body:a.message.body},function(){a.message.body=""},function(a){console.error(a)})},a.goBack=function(){a.messagesTab=!1,a.chatRoom=null,o.set("messagesTab",a.messagesTab),o.remove("chatRoomId"),m.unsyncUpdates("chat_message"),m.unsyncUpdates("user_has_chat_room")},a.chatRoomsGroupsGreaterThan=function(a){return function(b){return b.Users?"external"!==b.type&&b.Users.length>a:!1}},a.closeChatRoom=function(a,b){var c=e.open({animation:!0,size:b,templateUrl:"components/quickSidebar/modal/close.html",controller:"QuickSidebarControllerCloseModal"});c.result.then(function(){d.put("/api/chat/rooms/"+a,{status:"close"}).then(function(){p.show(q.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){p.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})},a.addAgent=function(b,c){var g=e.open({animation:!0,size:c,templateUrl:"components/quickSidebar/modal/add.html",controller:"QuickSidebarControllerAddModal",resolve:{items:function(){return _.map(a.chatRoom.Users?a.chatRoom.Users:[],function(a){return{id:a.id,fullname:a.fullname}})}}});g.result.then(function(c){d.put("/api/chat/rooms/"+b+"/users",{users:c}).then(function(b){m.unsyncUpdates("chat_message"),a.chatRoom=b.data,a.currentTab=3,a.messagesTab=!0;var c=_.find(a.chatRooms,{id:b.id}),d=a.chatRooms.indexOf(c);c?_.merge(a.chatRooms[d],b.data):a.chatRooms.push(b.data),m.socket.on("chat_message:save",function(c){c.ChatRoomId===b.data.id&&(a.chatRoom.ChatMessages.push(c),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),p.show(q.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){p.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})};var t=function(b){a.messagesTab=!0,n.layout.pageQuickSidebarOpened=!0,o.set("chatRoomId",b.id),o.set("messagesTab",a.messagesTab),a.chatRoom=b;var c=_.find(a.chatRooms,{id:b.id}),d=a.chatRooms.indexOf(c);c?_.merge(a.chatRooms[d],b):a.chatRooms.push(b),g(function(){angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last")},1e3),m.socket.on("chat_message:save",function(c){c.ChatRoomId===b.id&&(a.chatRoom.ChatMessages.push(c),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),m.socket.on("chat_room:save",function(b){b.id===a.chatRoom.id&&(a.chatRoom.status=b.status)})},u=function(a){console.error(a)};a.$on("$destroy",function(){m.unsyncUpdates("agent"),m.unsyncUpdates("user")})}]),angular.module("xCallyShuttleApp").directive("resizeQuickSidebar",["$window",function(a){return function(b){var c=angular.element(a);b.getWindowDimensions=function(){return{h:c.height(),w:c.width()}},b.$watch(b.getWindowDimensions,function(a){b.style={height:a.h-46-46-46+"px"}},!0),c.bind("resize",function(){b.$apply()})}}]),angular.module("xCallyShuttleApp").controller("SidebarController",["$scope","$rootScope","$resource","$location","Auth","$http","xAlert","$stateParams","socket",function(a,b,c,d,e,f,g,h,i){a.Auth=e,a.$stateParams=h,a.$on("$includeContentLoaded",function(){Metronic.init(),Layout.initSidebar()}),a.isAssociated=function(a){if(e.isAdmin())return!0;if(e.getCurrentUser().Modules)for(var b=0;b<e.getCurrentUser().Modules.length;b++)if(e.getCurrentUser().Modules[b].name===a)return!0;return!1},a.getSidebarDashboards=function(){f.get("/api/dashboards").then(function(b){a.dashboards=b.data.rows,i.syncUpdates("dashboard",a.dashboards)})["catch"](function(a){g.show("Error loading your dashboards","danger")})},a.isActive=function(a){return a===d.path()},a.$on("destroy",function(){i.unsyncUpdates("dashboard")})}]),angular.module("xCallyShuttleApp").factory("socket",["$rootScope","socketFactory","Auth",function(a,b,c){var d=c.getCurrentUser(),e=io("",{query:"token="+c.getToken()+"&userId="+(d.id||c.getUserId())+"&name="+(d.name||c.getName())+"&role="+(d.role||"agent")+"&source=browser",path:"/socket.io-client"}),f=b({ioSocket:e});return a.$on("login",function(){e=io("",{forceNew:!0,query:"token="+c.getToken()+"&userId="+c.getCurrentUser().id+"&name="+c.getCurrentUser().name+"&role="+c.getCurrentUser().role+"&source=browser",path:"/socket.io-client"})}),a.$on("logout",function(){f&&f.disconnect(!0)}),{socket:f,syncUpdates:function(a,b,c){c=c||angular.noop,f.on(a+":save",function(a){var d=_.find(b,{id:a.id}),e=b.indexOf(d),f="created";d?(_.merge(b[e],a),f="updated"):b.unshift(a),c(f,a,b)}),f.on(a+":remove",function(a){var d="deleted";_.remove(b,{id:a.id}),c(d,a,b)})},unsyncUpdates:function(a){f.removeAllListeners(a+":save"),f.removeAllListeners(a+":remove")},syncUpdatesByAttributes:function(a,b,c,d){d=d||angular.noop,f.on(a+":save",function(e){console.log(a),console.log(e);var f=!0;if(_.forIn(b,function(a,b){return e[b]&&e[b]===a?!0:f=!1}),f){var g=_.find(c,{id:e.id}),h=c.indexOf(g),i="created";g?(_.merge(c[h],e),i="updated"):c.unshift(e),d(i,e,c)}}),f.on(a+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},syncMailMessageUpdates:function(a,b,c,d){d=d||angular.noop,f.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),f.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncMailMessageUpdates:function(a,b){f.removeAllListeners(a+":"+b+":save"),f.removeAllListeners(a+":"+b+":remove")},syncFaxMessageUpdates:function(a,b,c,d){d=d||angular.noop,f.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),f.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncFaxMessageUpdates:function(a,b){f.removeAllListeners(a+":"+b+":save"),f.removeAllListeners(a+":"+b+":remove")}}}]),angular.module("xCallyShuttleApp").service("triggers",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_FROM",value:"from",propertyField:"input",operators:"equals"},{name:"APPLICATION_CC",value:"cc",propertyField:"input",operators:"equals"},{name:"APPLICATION_SUBJECT",value:"subject",propertyField:"input",operators:"equals"}],actions:[{name:"APPLICATION_TEMPLATE",value:"template",propertyField:"select"}]},chat:{conditions:[],actions:[]},fax:{conditions:[],actions:[]}},b={equals:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"}],all:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"},{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}],noequals:[{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}]},c={voice:{},mail:{},chat:{},fax:{}},d=["voice","mail","chat","fax"];return{triggers:a,properties:c,operators:b,channels:d}}),function(a,b){angular.module("adf.widget.counter",["adf.provider"]).value("apiServiceUrlCounter","/api/widgets/counter").config(["dashboardProvider",function(a){a.widget("counter",{title:"Counter",description:"Counter for db results",templateUrl:"{widgetsPath}/counter/src/view.html",controller:"apiwidgetCounterViewCtrl",edit:{templateUrl:"{widgetsPath}/counter/src/edit.html",controller:"apiwidgetCounterEditCtrl"}})}]).service("apiServiceCounter",["$q","$http","apiServiceUrlCounter",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiwidgetCounterEditCtrl",["$scope",function(a){a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.colors=[{name:"Blue",value:"blue-madison"},{name:"Red",value:"red-intense"},{name:"Green",value:"green-haze"},{name:"Purple",value:"purple-plum"},{name:"Orange",value:"yellow-casablanca"},{name:"Yellow",value:"yellow-crusta"}],a.config.icons=[{name:"Talk bubbles",value:"fa-comments"},{name:"Bar Chart",value:"fa-bar-chart"},{name:"Shopping Cart",value:"fa-shopping-cart"},{name:"Globe",value:"fa-globe"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE"}]).controller("apiwidgetCounterViewCtrl",["$scope","$interval","apiServiceCounter",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE",a.counterApiCall=function(){a.config.condition&&a.config.report&&c.get(a.config).then(function(b){a.count=parseInt(b[0].count)})},a.counterApiCall();var d=b(function(){a.counterApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.counter").run(["$templateCache",function(a){a.put("{widgetsPath}/counter/src/edit.html","<form role=form><div class=form-group><label class=control-label>{{'APPLICATION_REPORT' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_REPORT' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"report.value as report in config.reportTables | filter: $select.search\"><div ng-bind-html=\"report.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_CONDITION' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder=\"{{'APPLICATION_CONDITION' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_REFRESH_TIMEOUT' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder=\"{{'APPLICATION_REFRESH_TIMEOUT' | translate}}\" min=1></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_COLOR' | translate}}</label><ui-select data-ng-model=config.color name=color theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_COLOR' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"color.value as color in config.colors | filter: $select.search\"><div ng-bind-html=\"color.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_ICON' | translate}}</label><ui-select data-ng-model=config.icon name=icon theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_ICON' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"icon.value as icon in config.icons | filter: $select.search\"><div ng-bind-html=\"icon.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_DETAILS' | translate}}</label> <input type=text class=form-control id=details ng-model=config.details maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_DETAILS' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK' | translate}}</label> <input type=text class=form-control id=link ng-model=config.link placeholder=http://yourlink></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}</label> <input type=text class=form-control id=linkText ng-model=config.linkText maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}\"></div></form>"),a.put("{widgetsPath}/counter/src/view.html",'<div class=dashboard-stat ng-class=config.color ng-if="count || count === 0"><div class=visual><i class=fa ng-class=config.icon></i></div><div class=details><div class=number>{{count}}</div><div class=desc>{{config.details}}</div></div><a class=more href={{config.link}}>{{config.linkText}} <i class="m-icon-swapright m-icon-white"></i></a></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if="!count && count != 0"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).value("apiServiceUrlPieChart","/api/widgets/piechart").config(["dashboardProvider",function(a){a.widget("pie-chart",{title:"Pie-Chart",description:"Display a pie-chart starting from DB values",templateUrl:"{widgetsPath}/pie-chart/src/view.html",controller:"apiWidgetPieChartViewCtrl",edit:{templateUrl:"{widgetsPath}/pie-chart/src/edit.html",controller:"apiWidgetPieChartEditCtrl"}})}]).service("apiServicePieChart",["$q","$http","apiServiceUrlPieChart",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetPieChartEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetPieChartViewCtrl",["$scope","$interval","apiServicePieChart",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.pieChartApiCall=function(){a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){if(b&&1===b.length){a.labels=[],a.data=[];for(var c in b[0])a.labels.push(c),a.data.push(b[0][c])}else a.labels=[],a.data=[]})},a.pieChartApiCall();var d=b(function(){a.pieChartApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.pie-chart").run(["$templateCache",function(a){a.put("{widgetsPath}/pie-chart/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_FIELDS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div></form>'),a.put("{widgetsPath}/pie-chart/src/view.html",'<div ng-if=labels.length ng-style=config.style><canvas id=doughnut class="chart chart-doughnut" chart-data=data chart-labels=labels legend=true></canvas></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_METRIC_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.table",["adf.provider"]).value("apiServiceUrlTable","/api/widgets/table").config(["dashboardProvider",function(a){a.widget("table",{title:"Table",description:"Show tabbed results from db",templateUrl:"{widgetsPath}/table/src/view.html",controller:"apiWidgetTableViewCtrl",edit:{templateUrl:"{widgetsPath}/table/src/edit.html",controller:"apiWidgetTableEditCtrl"}})}]).service("apiServiceTable",["$q","$http","apiServiceUrlTable",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetTableEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetTableViewCtrl",["$scope","$interval","apiServiceTable",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.style={"max-height":a.config.height+"px",overflow:"scroll"},a.tableApiCall=function(){a.config.condition&&a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){a.results=b})},a.tableApiCall();var d=b(function(){a.tableApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.table").run(["$templateCache",function(a){a.put("{widgetsPath}/table/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_METRICS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div><div class=form-group><label for=condition>{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}</label> <input type=number class=form-control id=height ng-model=config.height placeholder="{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}" min=350></div></form>'),
-a.put("{widgetsPath}/table/src/view.html",'<div ng-if=results ng-style=config.style><table st-table=results class="table table-striped table-bordered table-hover"><div class=table-responsive><thead><tr><th colspan={{config.fields.length}}><div class=row><div class=col-md-6></div><div class=col-md-6><div class="input-group input-medium pull-right"><input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class=form-control type=search> <span class=input-group-addon><i class="fa fa-search"></i></span></div></div></div></th></tr><tr><th ng-repeat="field in config.fields">{{field.alias}}</th></tr></thead><tbody><tr data-ng-repeat="result in results" class=animate-repeat><td ng-repeat="field in config.fields">{{result[field.alias]}}</td></tr><tr data-ng-hide=results.length><td colspan={{config.fields.length}} style=text-align:center;><i>{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</i></td></tr></tbody><tfoot><tr><td colspan={{config.fields.length}} class=text-center><div st-pagination class=pagination st-items-by-page=10 st-displayed-pages=3></div></td></tr></tfoot></div></table></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_FIELD_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(){angular.module("pdf",[]).directive("ngPdf",["$window",function(a){return{restrict:"E",templateUrl:function(a,b){return b.templateUrl?b.templateUrl:"partials/viewer.html"},link:function(b,c,d){var e=d.pdfUrl,f=null,g=d.page?d.page:1,h=d.scale>0?d.scale:1,i=c.find("canvas"),j=i[0],k=j.getContext("2d"),l=angular.element(a);l.on("scroll",function(){b.$apply(function(){b.scroll=l[0].scrollY})}),PDFJS.disableWorker=!0,b.pageNum=g,b.renderPage=function(a){f.getPage(a).then(function(a){var e,f,g,i={};"page-fit"!==d.scale||h?e=a.getViewport(h):(e=a.getViewport(1),f=c[0].clientWidth/e.width,g=c[0].clientHeight/e.height,h=Math.min(f,g)),j.height=e.height,j.width=e.width,i={canvasContext:k,viewport:e},a.render(i).promise.then(function(){"function"==typeof b.onPageRender&&b.onPageRender()})})},b.goPrevious=function(){b.pageToDisplay<=1||(b.pageNum=parseInt(b.pageNum)-1)},b.goNext=function(){b.pageToDisplay>=f.numPages||(b.pageNum=parseInt(b.pageNum)+1)},b.zoomIn=function(){return h=parseFloat(h)+.2,b.renderPage(b.pageToDisplay),h},b.zoomOut=function(){return h=parseFloat(h)-.2,b.renderPage(b.pageToDisplay),h},b.changePage=function(){b.renderPage(b.pageToDisplay)},b.rotate=function(){"rotate0"===j.getAttribute("class")?j.setAttribute("class","rotate90"):"rotate90"===j.getAttribute("class")?j.setAttribute("class","rotate180"):"rotate180"===j.getAttribute("class")?j.setAttribute("class","rotate270"):j.setAttribute("class","rotate0")},PDFJS.getDocument(e,null,null,b.onProgress).then(function(a){"function"==typeof b.onLoad&&b.onLoad(),f=a,b.renderPage(b.pageToDisplay),b.$apply(function(){b.pageCount=a.numPages})},function(a){a&&"function"==typeof b.onError&&b.onError(a)}),b.$watch("pageNum",function(a){b.pageToDisplay=parseInt(a),null!==f&&b.renderPage(b.pageToDisplay)})}}}])}(),function(a){a.module("angular-elastic-builder",["RecursionHelper"])}(window.angular),function(a){a.module("angular-elastic-builder").directive("elasticBuilder",["elasticQueryService",function(a){return{scope:{data:"=elasticBuilder"},templateUrl:"angular-elastic-builder/BuilderDirective.html",link:function(b){var c=b.data;b.filters=[],b.removeChild=function(a){b.filters.splice(a,1)},b.addRule=function(){b.filters.push({})},b.addGroup=function(){b.filters.push({type:"group",subType:"and",rules:[]})},b.$watch("data.needsUpdate",function(d){d&&(b.filters=a.toFilters(c.query,b.data.fields),b.data.needsUpdate=!1)}),b.$watch("filters",function(d){d&&(c.query=a.toQuery(b.filters,b.data.fields))},!0)}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticBuilderChooser",["RecursionHelper","groupClassHelper",function(a,b){return{scope:{elasticFields:"=",item:"=elasticBuilderChooser",onRemove:"&"},templateUrl:"angular-elastic-builder/ChooserDirective.html",compile:function(c){return a.compile(c,function(a,c,d){var e=a.depth=+d.depth,f=a.item;a.getGroupClassName=function(){var a=e;return"group"===f.type&&a++,b(a)}})}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticBuilderGroup",["RecursionHelper","groupClassHelper",function(a,b){return{scope:{elasticFields:"=",group:"=elasticBuilderGroup",onRemove:"&"},templateUrl:"angular-elastic-builder/GroupDirective.html",compile:function(c){return a.compile(c,function(a,c,d){var e=a.depth=+d.depth,f=a.group;a.addRule=function(){f.rules.push({})},a.addGroup=function(){f.rules.push({type:"group",subType:"and",rules:[]})},a.removeChild=function(a){f.rules.splice(a,1)},a.getGroupClassName=function(){return b(e+1)}})}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticBuilderRule",[function(){return{scope:{elasticFields:"=",rule:"=elasticBuilderRule",onRemove:"&"},templateUrl:"angular-elastic-builder/RuleDirective.html",link:function(a){a.getType=function(){var b=a.elasticFields,c=a.rule.field;return b&&c?"boolean"===b[c].subType?"boolean":b[c].type:void 0}}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticType",[function(){return{scope:{type:"=elasticType",rule:"=",guide:"="},template:'<ng-include src="getTemplateUrl()" />',link:function(a){a.getTemplateUrl=function(){var b=a.type;if(b)return b=b.charAt(0).toUpperCase()+b.slice(1),"angular-elastic-builder/types/"+b+".html"},a.booleans=["False","True"],a.booleansOrder=["True","False"],a.inputNeeded=function(){var b=["equals","notEquals","gt","gte","lt","lte"];return~b.indexOf(a.rule.subType)}}}}])}(window.angular),function(a){a.module("angular-elastic-builder").factory("groupClassHelper",function(){return function(a){var b=[""];return b[a%b.length]}})}(window.angular),function(a){function b(a,b){var c=a.map(d.bind(a,b));return c}function c(a,b){var c=a.map(e.bind(a,b)).filter(function(a){return!!a});return c}function d(a,b,c){c!==!1&&(c=!0);var e=Object.keys(b)[0],g={or:"group",and:"group",range:"number"},h=g[e]||"item",i=f(h);switch(e){case"or":case"and":i.rules=b[e].map(d.bind(b,a)),i.subType=e;break;case"missing":case"exists":i.field=b[e].field,i.subType={exists:"exists",missing:"notExists"}[e],delete i.value;break;case"term":case"terms":i.field=Object.keys(b[e])[0];var j=a[Object.keys(b[e])[0]];if("multi"===j.type){var k=b[e][i.field];"string"==typeof k&&(k=[k]),i.value=b[e][i.field]}else i.subType=c?"equals":"notEquals",i.value=b[e][i.field],"number"==typeof i.value&&(i.subType="boolean");break;case"range":i.field=Object.keys(b[e])[0],i.subType=Object.keys(b[e][i.field])[0],i.value=b[e][i.field][i.subType];break;case"not":i=d(a,b[e].filter,!1);break;default:i.field=Object.keys(b[e])[0]}return i}function e(a,b){var c={};if("group"===b.type)return c[b.subType]=b.rules.map(e.bind(b,a)).filter(function(a){return!!a}),c;var d=b.field,f=a[d];if(d){switch(f.type){case"term":case"multiterm":if("boolean"===f.subType&&(b.subType="boolean"),!b.subType)return;switch(b.subType){case"equals":case"boolean":if(void 0===b.value)return;c.term={},c.term[d]=b.value;break;case"notEquals":if(void 0===b.value)return;c.not={filter:{term:{}}},c.not.filter.term[d]=b.value;break;case"exists":c.exists={field:d};break;case"notExists":c.missing={field:d};break;default:throw new Error("unexpected subtype "+b.subType)}break;case"number":c.range={},c.range[d]={},c.range[d][b.subType]=b.value;break;case"date":if("exists"===b.subType)c.exists={field:d};else{if("notExists"!==b.subType)throw new Error("unexpected subtype");c.missing={field:d}}break;case"multi":c.terms={},c.terms[d]=b.value;break;default:throw new Error("unexpected type")}return c}}function f(b){var c={group:{type:"group",subType:"",rules:[]},item:{field:"",subType:"",value:""},number:{field:"",subType:"",value:null}};return a.copy(c[b])}a.module("angular-elastic-builder").factory("elasticQueryService",[function(){return{toFilters:b,toQuery:c}}])}(window.angular),function(a){a.module("angular-elastic-builder").run(["$templateCache",function(a){a.put("angular-elastic-builder/BuilderDirective.html",'<!-- <div class="elastic-builder">\n  <div class="filter-panels">\n    <div class="list-group form-inline">\n      <div\n        data-ng-repeat="filter in filters"\n        data-elastic-builder-chooser="filter"\n        data-elastic-fields="data.fields"\n        data-on-remove="removeChild($index)"\n        data-depth="0"></div>\n      <div class="list-group-item actions">\n        <a class="btn btn-xs btn-primary" title="Add Rule" data-ng-click="addRule()">\n          <i class="fa fa-plus"></i>\n        </a>\n        <a class="btn btn-xs btn-primary" title="Add Group" data-ng-click="addGroup()">\n          <i class="fa fa-list"></i>\n        </a>\n      </div>\n    </div>\n  </div>\n</div> -->\n\n<!-- <div class="elastic-builder">\n  <div class="filter-panels"> -->\n    <div class="list-group form-inline list-group-item-custom" ng-switch="data.type">\n      <div\n        data-ng-repeat="filter in filters"\n        data-elastic-builder-chooser="filter"\n        data-elastic-fields="data.fields"\n        data-on-remove="removeChild($index)"\n        data-depth="0">\n      </div>\n      <div class="list-group-item actions list-group-item-custom" ng-switch-when="condition">\n        <a href="#" class="btn green btn-sm" data-ng-click="addGroup()">\n				  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_GROUP\' | translate }}\n				</a>\n      </div>\n      <div class="list-group-item actions list-group-item-custom" ng-switch-when="action">\n        <a href="#" class="btn green btn-sm" data-ng-click="addRule()">\n				  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_ACTION\' | translate }}\n				</a>\n      </div>\n      <div class="list-group-item actions list-group-item-custom" ng-switch-default>\n        <a href="#" class="btn green btn-sm" data-ng-click="addRule()">\n				  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_CONDITION\' | translate }}\n				</a>\n        <a href="#" class="btn green btn-sm" data-ng-click="addGroup()">\n				  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_GROUP\' | translate }}\n				</a>\n      </div>\n    </div>\n  <!-- </div>\n</div> -->\n'),a.put("angular-elastic-builder/ChooserDirective.html",'<!-- <div\n  class="list-group-item elastic-builder-chooser"\n  data-ng-class="getGroupClassName()">\n\n  <div data-ng-if="item.type === \'group\'"\n    data-elastic-builder-group="item"\n    data-depth="{{ depth }}"\n    data-elastic-fields="elasticFields"\n    data-on-remove="onRemove()"></div>\n\n  <div data-ng-if="item.type !== \'group\'"\n    data-elastic-builder-rule="item"\n    data-elastic-fields="elasticFields"\n    data-on-remove="onRemove()"></div>\n\n</div> -->\n\n\n<div class="list-group-item elastic-builder-chooser list-group-item-custom" data-ng-class="getGroupClassName()">\n  <div data-ng-if="item.type === \'group\'"\n    data-elastic-builder-group="item"\n    data-depth="{{ depth }}"\n    data-elastic-fields="elasticFields"\n    data-on-remove="onRemove()"></div>\n  <div data-ng-if="item.type !== \'group\'"\n    data-elastic-builder-rule="item"\n    data-elastic-fields="elasticFields"\n    data-on-remove="onRemove()"></div>\n</div>\n'),a.put("angular-elastic-builder/GroupDirective.html",'<!-- <div class="elastic-builder-group">\n  <h5>If\n    <select data-ng-model="group.subType" class="form-control">\n      <option value="and">all</option>\n      <option value="or">any</option>\n    </select>\n    of these conditions are met\n  </h5>\n  <div\n    data-ng-repeat="rule in group.rules"\n    data-elastic-builder-chooser="rule"\n    data-elastic-fields="elasticFields"\n    data-depth="{{ +depth + 1 }}"\n    data-on-remove="removeChild($index)"></div>\n\n  <div class="list-group-item actions" data-ng-class="getGroupClassName()">\n    <a class="btn btn-xs btn-primary" title="Add Sub-Rule" data-ng-click="addRule()">\n      <i class="fa fa-plus"></i>\n    </a>\n    <a class="btn btn-xs btn-primary" title="Add Sub-Group" data-ng-click="addGroup()">\n      <i class="fa fa-list"></i>\n    </a>\n  </div>\n\n  <a class="btn btn-xs btn-danger remover" data-ng-click="onRemove()">\n    <i class="fa fa-minus"></i>\n  </a>\n</div> -->\n\n\n<!-- BEGIN Portlet PORTLET-->\n<div class="portlet light">\n  <div class="portlet-title">\n    <div class="caption" data-ng-class="{\'font-blue-hoki\': data.type === \'condition\', \'font-red-flamingo\': data.type === \'action\'}">\n      <!-- <i class="icon-people font-green-sharp"></i> -->\n      <h5><span class="caption-subject">{{ \'APPLICATION_IF\' | translate }}</span>\n        <select data-ng-model="group.subType" class="form-control">\n          <option value="and"><strong>{{ \'APPLICATION_ALL\' | translate | lowercase }}</strong></option>\n          <option value="or"><strong>{{ \'APPLICATION_ANY\' | translate | lowercase }}</strong></option>\n        </select>\n        <span class="caption-subject">{{group.subType == \'and\' ? \'MESSAGE_CODITIONS_MET_ALL\' : \'MESSAGE_CODITIONS_MET_ANY\' | translate}}</span>\n      </h5>\n    </div>\n  </div>\n  <div class="portlet-body">\n    <div class="elastic-builder-group">\n      <div\n        data-ng-repeat="rule in group.rules"\n        data-elastic-builder-chooser="rule"\n        data-elastic-fields="elasticFields"\n        data-depth="{{ +depth + 1 }}"\n        data-on-remove="removeChild($index)"></div>\n\n      <div class="list-group-item actions list-group-item-custom" data-ng-class="getGroupClassName()">\n        <a href="#" class="btn green btn-sm" data-ng-click="addRule()">\n          <i class="icon-plus"></i> {{ \'APPLICATION_ADD_CONDITION\' | translate }}\n        </a>\n        <a class="btn red btn-sm remover" data-ng-click="onRemove()">\n          <i class="icon-trash"></i> {{ \'APPLICATION_REMOVE_GROUP\' | translate }}\n        </a>\n      </div>\n    </div>\n  </div>\n</div>\n<!-- END Portlet PORTLET-->\n'),a.put("angular-elastic-builder/RuleDirective.html",'<!-- <div class="elastic-builder-rule">\n  <select class="form-control" data-ng-model="rule.field" data-ng-options="key as key for (key, value) in elasticFields"></select>\n\n  <span data-elastic-type="getType()" data-rule="rule" data-guide="elasticFields[rule.field]"></span>\n\n  <a class="btn btn-xs btn-danger remover" data-ng-click="onRemove()">\n    <i class="fa fa-minus"></i>\n  </a>\n\n</div> -->\n<!-- <div class="elastic-builder-rule"> -->\n  <!-- <select class="form-control" data-ng-model="rule.field" data-ng-options="key as key for (key, value) in elasticFields"></select> -->\n  {{elasticFields[rule.field].action.label | translate}}\n  <select class="form-control" data-ng-model="rule.field" >\n  <option ng-repeat="option in elasticFields" value="{{option.value}}">{{ option.label | translate }}</option>\n  </select>\n  <!-- <ui-select class="form-control" data-ng-model="rule.field" theme="bootstrap">\n    <ui-select-match placeholder="{{\'APPLICATION_CONDITION\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n    <ui-select-choices repeat="value.value as key for (key, value) in elasticFields | filter: $select.search">\n      {{$translate.instant(key.name)}}\n    </ui-select-choices>\n  </ui-select> -->\n\n  <span data-elastic-type="getType()" data-rule="rule" data-guide="elasticFields[rule.field]"></span>\n\n  <!-- <a class="btn btn-xs btn-danger remover" data-ng-click="onRemove()">\n    <i class="fa fa-minus"></i>\n  </a> -->\n\n  <a class="btn remover" data-ng-click="onRemove()">\n    <i class="icon-trash"></i>\n  </a>\n\n<!-- </div> -->\n'),a.put("angular-elastic-builder/types/Boolean.html",'<span class="boolean-rule">\n  Equals\n\n  <!-- This is a weird hack to make sure these are numbers -->\n  <select\n    data-ng-model="rule.value"\n    class="form-control"\n    data-ng-options="booleans.indexOf(choice) as choice for choice in booleansOrder">\n  </select>\n</span>\n'),a.put("angular-elastic-builder/types/Date.html",'<span class="date-rule">\n  <select data-ng-model="rule.subType" class="form-control">\n\n    <optgroup label="Generic">\n      <option value="exists">Exists</option>\n      <option value="notExists">! Exists</option>\n    </optgroup>\n  </select>\n\n</span>\n'),a.put("angular-elastic-builder/types/Multi.html",'<!-- <span class="multi-rule">\n  <span data-ng-repeat="choice in guide.choices">\n    <label class="checkbox">\n      <input type="checkbox" data-ng-model="rule.values[choice]">\n      {{ choice }}\n    </label>\n  </span>\n</span> -->\n\n<span class="multi-rule">\n  {{guide.action.midterm | translate}}\n  <!-- Range Fields -->\n  <!-- <select data-ng-model="rule.values" class="form-control"> -->\n  <select data-ng-model="rule.value" class="form-control">\n    <!-- <optgroup label="Numeral"> -->\n      <option data-ng-repeat="(key, value) in guide.choices" value="{{value}}">{{key}}</option>\n    <!-- </optgroup> -->\n\n    <!-- <optgroup label="Generic">\n      <option value="exists">Exists</option>\n      <option value="notExists">! Exists</option>\n    </optgroup> -->\n  </select>\n\n  <!-- <input data-ng-if="inputNeeded()"\n    class="form-control"\n    data-ng-model="rule.value"\n    type="number"\n    min="{{ guide.minimum }}"\n    max="{{ guide.maximum }}"> -->\n</span>\n'),a.put("angular-elastic-builder/types/Multiterm.html",'<span class="elastic-multiterm">\n  <select data-ng-model="rule.subType" class="form-control">\n      <option value="equals">{{ \'APPLICATION_EQUALS_TO\' | translate }}</option>\n      <option value="notEquals">{{ \'APPLICATION_NOT_EQUALS_TO\' | translate }}</option>\n  </select>\n  <select data-ng-model="rule.value" class="form-control">\n      <option data-ng-repeat="(key, value) in guide.choices" value="{{value}}">{{value | capitalize}}</option>\n  </select>\n</span>\n'),a.put("angular-elastic-builder/types/Number.html",'<span class="number-rule">\n  <select data-ng-model="rule.subType" class="form-control">\n    <!-- <optgroup label="Numeral"> -->\n      <option value="equals">=</option>\n      <option value="gt">&gt;</option>\n      <option value="gte">&ge;</option>\n      <option value="lt">&lt;</option>\n      <option value="lte">&le;</option>\n    <!-- </optgroup> -->\n\n    <!-- <optgroup label="Generic"> -->\n      <!-- <option value="exists">Exists</option>\n      <option value="notExists">! Exists</option> -->\n    <!-- </optgroup> -->\n  </select>\n\n  <!-- Range Fields -->\n  <input data-ng-if="inputNeeded()"\n    class="form-control"\n    data-ng-model="rule.value"\n    type="number"\n    min="{{ guide.minimum }}"\n    max="{{ guide.maximum }}">\n\n    <!-- <span class="help-block">{{rule.help}}</span> -->\n\n</span>\n'),a.put("angular-elastic-builder/types/Term.html",'<!-- <span class="elastic-term">\n  <select data-ng-model="rule.subType" class="form-control"> -->\n    <!-- Term Options -->\n    <!-- <optgroup label="Text">\n      <option value="equals">Equals</option>\n      <option value="notEquals">! Equals</option>\n    </optgroup> -->\n\n    <!-- Generic Options -->\n    <!-- <optgroup label="Generic">\n      <option value="exists">Exists</option>\n      <option value="notExists">! Exists</option>\n    </optgroup>\n\n  </select>\n  <input\n    data-ng-if="inputNeeded()"\n    class="form-control"\n    data-ng-model="rule.value"\n    type="text">\n</span> -->\n\n\n<span class="elastic-term">\n  <select data-ng-model="rule.subType" class="form-control">\n    <!-- Term Options -->\n    <!-- <optgroup label="Text"> -->\n      <option value="equals">{{ \'APPLICATION_EQUALS_TO\' | translate }}</option>\n      <option value="notEquals">{{ \'APPLICATION_NOT_EQUALS_TO\' | translate }}</option>\n    <!-- </optgroup> -->\n\n    <!-- Generic Options -->\n    <!-- <optgroup label="Generic">\n      <option value="exists">Exists</option>\n      <option value="notExists">! Exists</option>\n    </optgroup> -->\n\n  </select>\n  <input\n    data-ng-if="inputNeeded()"\n    class="form-control input-medium"\n    data-ng-model="rule.value"\n    type="text">\n</span>\n')}])}(window.angular);var Metronic=function(){var a,b=!1,c=!1,d=!1,e=!1,f=[],g="assets/",h="img/",i="plugins/",j="css/",k={blue:"#89C4F4",red:"#F3565D",green:"#1bbc9b",purple:"#9b59b6",grey:"#95a5a6",yellow:"#F8CB00"},l=function(){"rtl"===$("body").css("direction")&&(b=!0),c=!!navigator.userAgent.match(/MSIE 8.0/),d=!!navigator.userAgent.match(/MSIE 9.0/),e=!!navigator.userAgent.match(/MSIE 10.0/),e&&$("html").addClass("ie10"),(e||d||c)&&$("html").addClass("ie")},m=function(){for(var a=0;a<f.length;a++){var b=f[a];b.call()}},n=function(){var a;if(c){var b;$(window).resize(function(){b!=document.documentElement.clientHeight&&(a&&clearTimeout(a),a=setTimeout(function(){m()},50),b=document.documentElement.clientHeight)})}else $(window).resize(function(){a&&clearTimeout(a),a=setTimeout(function(){m()},50)})},o=function(){$("body").on("click",".portlet > .portlet-title > .tools > a.remove",function(a){a.preventDefault();var b=$(this).closest(".portlet");$("body").hasClass("page-portlet-fullscreen")&&$("body").removeClass("page-portlet-fullscreen"),b.find(".portlet-title .fullscreen").tooltip("destroy"),b.find(".portlet-title > .tools > .reload").tooltip("destroy"),b.find(".portlet-title > .tools > .remove").tooltip("destroy"),b.find(".portlet-title > .tools > .config").tooltip("destroy"),b.find(".portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip("destroy"),b.remove()}),$("body").on("click",".portlet > .portlet-title .fullscreen",function(a){a.preventDefault();var b=$(this).closest(".portlet");if(b.hasClass("portlet-fullscreen"))$(this).removeClass("on"),b.removeClass("portlet-fullscreen"),$("body").removeClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height","auto");else{var c=Metronic.getViewPort().height-b.children(".portlet-title").outerHeight()-parseInt(b.children(".portlet-body").css("padding-top"))-parseInt(b.children(".portlet-body").css("padding-bottom"));$(this).addClass("on"),b.addClass("portlet-fullscreen"),$("body").addClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height",c)}}),$("body").on("click",".portlet > .portlet-title > .tools > a.reload",function(a){a.preventDefault();var b=$(this).closest(".portlet").children(".portlet-body"),c=$(this).attr("data-url"),d=$(this).attr("data-error-display");c?(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),$.ajax({type:"GET",cache:!1,url:c,dataType:"html",success:function(a){Metronic.unblockUI(b),b.html(a)},error:function(a,c,e){Metronic.unblockUI(b);var f="Error on reloading the content. Please check your connection and try again.";"toastr"==d&&toastr?toastr.error(f):"notific8"==d&&$.notific8?($.notific8("zindex",11500),$.notific8(f,{theme:"ruby",life:3e3})):alert(f)}})):(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),window.setTimeout(function(){Metronic.unblockUI(b)},1e3))}),$('.portlet .portlet-title a.reload[data-load="true"]').click(),$("body").on("click",".portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand",function(a){a.preventDefault()})},p=function(){if($().uniform){var a=$("input[type=checkbox]:not(.toggle, .make-switch, .icheck), input[type=radio]:not(.toggle, .star, .make-switch, .icheck)");a.size()>0&&a.each(function(){0===$(this).parents(".checker").size()&&$(this).show()})}},q=function(){$().iCheck&&$(".icheck").each(function(){var a=$(this).attr("data-checkbox")?$(this).attr("data-checkbox"):"icheckbox_minimal-grey",b=$(this).attr("data-radio")?$(this).attr("data-radio"):"iradio_minimal-grey";a.indexOf("_line")>-1||b.indexOf("_line")>-1?$(this).iCheck({checkboxClass:a,radioClass:b,insert:'<div class="icheck_line-icon"></div>'+$(this).attr("data-label")}):$(this).iCheck({checkboxClass:a,radioClass:b})})},r=function(){$().bootstrapSwitch&&$(".make-switch").bootstrapSwitch()},s=function(){$().confirmation&&$("[data-toggle=confirmation]").confirmation({container:"body",btnOkClass:"btn-xs btn-success",btnCancelClass:"btn-xs btn-danger"})},t=function(){$("body").on("shown.bs.collapse",".accordion.scrollable",function(a){Metronic.scrollTo($(a.target))})},u=function(){if(location.hash){var a=location.hash.substr(1);$('a[href="#'+a+'"]').parents(".tab-pane:hidden").each(function(){var a=$(this).attr("id");$('a[href="#'+a+'"]').click()}),$('a[href="#'+a+'"]').click()}},v=function(){$("body").on("hide.bs.modal",function(){$(".modal:visible").size()>1&&$("html").hasClass("modal-open")===!1?$("html").addClass("modal-open"):$(".modal:visible").size()<=1&&$("html").removeClass("modal-open")}),$("body").on("show.bs.modal",".modal",function(){$(this).hasClass("modal-scroll")&&$("body").addClass("modal-open-noscroll")}),$("body").on("hide.bs.modal",".modal",function(){$("body").removeClass("modal-open-noscroll")}),$("body").on("hidden.bs.modal",".modal:not(.modal-cached)",function(){$(this).removeData("bs.modal")})},w=function(){$(".tooltips").tooltip(),$(".portlet > .portlet-title .fullscreen").tooltip({container:"body",title:"Fullscreen"}),$(".portlet > .portlet-title > .tools > .reload").tooltip({container:"body",title:"Reload"}),$(".portlet > .portlet-title > .tools > .remove").tooltip({container:"body",title:"Remove"}),$(".portlet > .portlet-title > .tools > .config").tooltip({container:"body",title:"Settings"}),$(".portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip({container:"body",title:"Collapse/Expand"})},x=function(){$("body").on("click",".dropdown-menu.hold-on-click",function(a){a.stopPropagation()})},y=function(){$("body").on("click",'[data-close="alert"]',function(a){$(this).parent(".alert").hide(),$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-close="note"]',function(a){$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-remove="note"]',function(a){$(this).closest(".note").remove(),a.preventDefault()})},z=function(){$('[data-hover="dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")})},A=function(){$(".popovers").popover(),$(document).on("click.bs.popover.data-api",function(b){a&&a.popover("hide")})},B=function(){Metronic.initSlimScroll(".scroller")},C=function(){jQuery.fancybox&&$(".fancybox-button").size()>0&&$(".fancybox-button").fancybox({groupAttr:"data-rel",prevEffect:"none",nextEffect:"none",closeBtn:!0,helpers:{title:{type:"inside"}}})},D=function(){(c||d)&&$("input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)").each(function(){var a=$(this);""===a.val()&&""!==a.attr("placeholder")&&a.addClass("placeholder").val(a.attr("placeholder")),a.focus(function(){a.val()==a.attr("placeholder")&&a.val("")}),a.blur(function(){(""===a.val()||a.val()==a.attr("placeholder"))&&a.val(a.attr("placeholder"))})})},E=function(){$().select2&&$(".select2me").select2({placeholder:"Select"})};return{init:function(){l(),n(),p(),q(),r(),B(),C(),E(),o(),y(),x(),u(),w(),A(),t(),v(),s(),D()},initAjax:function(){p(),q(),r(),z(),B(),E(),C(),x(),w(),A(),t(),s()},initComponents:function(){this.initAjax()},setLastPopedPopover:function(b){a=b},addResizeHandler:function(a){f.push(a)},runResizeHandlers:function(){m()},scrollTo:function(a,b){var c=a&&a.size()>0?a.offset().top:0;a&&($("body").hasClass("page-header-fixed")&&(c-=$(".page-header").height()),c+=b?b:-1*a.height()),$("html,body").animate({scrollTop:c},"slow")},initSlimScroll:function(a){$(a).each(function(){if(!$(this).attr("data-initialized")){var a;a=$(this).attr("data-height")?$(this).attr("data-height"):$(this).css("height"),$(this).slimScroll({allowPageScroll:!0,size:"7px",color:$(this).attr("data-handle-color")?$(this).attr("data-handle-color"):"#bbb",wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",railColor:$(this).attr("data-rail-color")?$(this).attr("data-rail-color"):"#eaeaea",position:b?"left":"right",height:a,alwaysVisible:"1"==$(this).attr("data-always-visible")?!0:!1,railVisible:"1"==$(this).attr("data-rail-visible")?!0:!1,disableFadeOut:!0}),$(this).attr("data-initialized","1")}})},destroySlimScroll:function(a){$(a).each(function(){if("1"===$(this).attr("data-initialized")){$(this).removeAttr("data-initialized"),$(this).removeAttr("style");var a={};$(this).attr("data-handle-color")&&(a["data-handle-color"]=$(this).attr("data-handle-color")),$(this).attr("data-wrapper-class")&&(a["data-wrapper-class"]=$(this).attr("data-wrapper-class")),$(this).attr("data-rail-color")&&(a["data-rail-color"]=$(this).attr("data-rail-color")),$(this).attr("data-always-visible")&&(a["data-always-visible"]=$(this).attr("data-always-visible")),$(this).attr("data-rail-visible")&&(a["data-rail-visible"]=$(this).attr("data-rail-visible")),$(this).slimScroll({wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",destroy:!0});var b=$(this);$.each(a,function(a,c){b.attr(a,c)})}})},scrollTop:function(){Metronic.scrollTo()},blockUI:function(a){a=$.extend(!0,{},a);var b="";if(b=a.animate?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><div class="block-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div></div>':a.iconOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""></div>':a.textOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>":'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>",a.target){var c=$(a.target);c.height()<=$(window).height()&&(a.cenrerY=!0),c.block({message:b,baseZ:a.zIndex?a.zIndex:1e3,centerY:void 0!==a.cenrerY?a.cenrerY:!1,css:{top:"10%",border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})}else $.blockUI({message:b,baseZ:a.zIndex?a.zIndex:1e3,css:{border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})},unblockUI:function(a){a?$(a).unblock({onUnblock:function(){$(a).css("position",""),$(a).css("zoom","")}}):$.unblockUI()},startPageLoading:function(a){a&&a.animate?($(".page-spinner-bar").remove(),$("body").append('<div class="page-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>')):($(".page-loading").remove(),$("body").append('<div class="page-loading"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif"/>&nbsp;&nbsp;<span>'+(a&&a.message?a.message:"Loading...")+"</span></div>"))},stopPageLoading:function(){$(".page-loading, .page-spinner-bar").remove()},alert:function(a){a=$.extend(!0,{container:"",place:"append",type:"success",message:"",close:!0,reset:!0,focus:!0,closeInSeconds:0,icon:""},a);var b=Metronic.getUniqueID("Metronic_alert"),c='<div id="'+b+'" class="Metronic-alerts alert alert-'+a.type+' fade in">'+(a.close?'<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>':"")+(""!==a.icon?'<i class="fa-lg fa fa-'+a.icon+'"></i>  ':"")+a.message+"</div>";
-return a.reset&&$(".Metronic-alerts").remove(),a.container?"append"==a.place?$(a.container).append(c):$(a.container).prepend(c):$("body").hasClass("page-container-bg-solid")?$(".page-title").after(c):$(".page-bar").size()>0?$(".page-bar").after(c):$(".page-breadcrumb").after(c),a.focus&&Metronic.scrollTo($("#"+b)),a.closeInSeconds>0&&setTimeout(function(){$("#"+b).remove()},1e3*a.closeInSeconds),b},initUniform:function(a){a?$(a).each(function(){0===$(this).parents(".checker").size()&&($(this).show(),$(this).uniform())}):p()},updateUniform:function(a){$.uniform.update(a)},initFancybox:function(){C()},getActualVal:function(a){return a=$(a),a.val()===a.attr("placeholder")?"":a.val()},getURLParameter:function(a){var b,c,d=window.location.search.substring(1),e=d.split("&");for(b=0;b<e.length;b++)if(c=e[b].split("="),c[0]==a)return unescape(c[1]);return null},isTouchDevice:function(){try{return document.createEvent("TouchEvent"),!0}catch(a){return!1}},getViewPort:function(){var a=window,b="inner";return"innerWidth"in window||(b="client",a=document.documentElement||document.body),{width:a[b+"Width"],height:a[b+"Height"]}},getUniqueID:function(a){return"prefix_"+Math.floor(Math.random()*(new Date).getTime())},isIE8:function(){return c},isIE9:function(){return d},isRTL:function(){return b},isAngularJsApp:function(){return"undefined"==typeof angular?!1:!0},getAssetsPath:function(){return g},setAssetsPath:function(a){g=a},setGlobalImgPath:function(a){h=a},getGlobalImgPath:function(){return g+h},setGlobalPluginsPath:function(a){i=a},getGlobalPluginsPath:function(){return g+i},getGlobalCssPath:function(){return g+j},getBrandColor:function(a){return k[a]?k[a]:""},getResponsiveBreakpoint:function(a){var b={xs:480,sm:768,md:900,lg:1200};return b[a]?b[a]:0}}}(),Layout=function(){var a="img/",b="css/",c=Metronic.getResponsiveBreakpoint("md"),d=function(){var a,b=$(".page-content"),d=$(".page-sidebar"),e=$("body");if(e.hasClass("page-footer-fixed")===!0&&e.hasClass("page-sidebar-fixed")===!1){var f=Metronic.getViewPort().height-$(".page-footer").outerHeight()-$(".page-header").outerHeight();b.height()<f&&b.attr("style","min-height:"+f+"px")}else{if(e.hasClass("page-sidebar-fixed"))a=g(),e.hasClass("page-footer-fixed")===!1&&(a-=$(".page-footer").outerHeight());else{var h=$(".page-header").outerHeight(),i=$(".page-footer").outerHeight();a=Metronic.getViewPort().width<c?Metronic.getViewPort().height-h-i:d.height()+20,a+h+i<=Metronic.getViewPort().height&&(a=Metronic.getViewPort().height-h-i)}b.attr("style","min-height:"+a+"px")}},e=function(a,b){var d=location.hash.toLowerCase(),e=$(".page-sidebar-menu");if("click"===a||"set"===a?b=$(b):"match"===a&&e.find("li > a").each(function(){var a=$(this).attr("href").toLowerCase();return a.length>1&&d.substr(1,a.length-1)==a.substr(1)?void(b=$(this)):void 0}),b&&0!=b.size()&&"javascript:;"!==b.attr("href").toLowerCase()&&"#"!==b.attr("href").toLowerCase()){parseInt(e.data("slide-speed")),e.data("keep-expanded");e.find("li.active").removeClass("active"),e.find("li > a > .selected").remove(),e.hasClass("page-sidebar-menu-hover-submenu")===!1?e.find("li.open").each(function(){0===$(this).children(".sub-menu").size()&&($(this).removeClass("open"),$(this).find("> a > .arrow.open").removeClass("open"))}):e.find("li.open").removeClass("open"),b.parents("li").each(function(){$(this).addClass("active"),$(this).find("> a > span.arrow").addClass("open"),1===$(this).parent("ul.page-sidebar-menu").size()&&$(this).find("> a").append('<span class="selected"></span>'),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click()}},f=function(){jQuery(".page-sidebar").on("click","li > a",function(a){var b=$(this).next().hasClass("sub-menu");if(!(Metronic.getViewPort().width>=c&&1===$(this).parents(".page-sidebar-menu-hover-submenu").size())){if(b===!1)return void(Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click());if(!$(this).next().hasClass("sub-menu always-open")){var e=$(this).parent().parent(),f=$(this),g=$(".page-sidebar-menu"),h=jQuery(this).next(),i=g.data("auto-scroll"),j=parseInt(g.data("slide-speed")),k=g.data("keep-expanded");k!==!0&&(e.children("li.open").children("a").children(".arrow").removeClass("open"),e.children("li.open").children(".sub-menu:not(.always-open)").slideUp(j),e.children("li.open").removeClass("open"));var l=-200;h.is(":visible")?(jQuery(".arrow",jQuery(this)).removeClass("open"),jQuery(this).parent().removeClass("open"),h.slideUp(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})):b&&(jQuery(".arrow",jQuery(this)).addClass("open"),jQuery(this).parent().addClass("open"),h.slideDown(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})),a.preventDefault()}}}),jQuery(".page-sidebar").on("click"," li > a.ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=jQuery(".page-sidebar ul"),e=($(".page-content"),$(".page-content .page-content-body"));d.children("li.active").removeClass("active"),d.children("arrow.open").removeClass("open"),$(this).parents("li").each(function(){$(this).addClass("active"),$(this).children("a > span.arrow").addClass("open")}),$(this).parents("li").addClass("active"),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),Metronic.startPageLoading();var f=$(this);$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){0===f.parents("li.open").size()&&$(".page-sidebar-menu > li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("<h4>Could not load the requested content.</h4>")}})}),jQuery(".page-content").on("click",".ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=($(".page-content"),$(".page-content .page-content-body"));Metronic.startPageLoading(),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){Metronic.stopPageLoading(),d.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){d.html("<h4>Could not load the requested content.</h4>"),Metronic.stopPageLoading()}})}),i(),$(".page-sidebar").on("click",".sidebar-search .remove",function(a){a.preventDefault(),$(".sidebar-search").removeClass("open")}),$(".page-sidebar .sidebar-search").on("keypress","input.form-control",function(a){return 13==a.which?($(".sidebar-search").submit(),!1):void 0}),$(".sidebar-search .submit").on("click",function(a){a.preventDefault(),$("body").hasClass("page-sidebar-closed")&&$(".sidebar-search").hasClass("open")===!1?(1===$(".page-sidebar-fixed").size()&&$(".page-sidebar .sidebar-toggler").click(),$(".sidebar-search").addClass("open")):$(".sidebar-search").submit()}),0!==$(".sidebar-search").size()&&($(".sidebar-search .input-group").on("click",function(a){a.stopPropagation()}),$("body").on("click",function(){$(".sidebar-search").hasClass("open")&&$(".sidebar-search").removeClass("open")}))},g=function(){var a=Metronic.getViewPort().height-$(".page-header").outerHeight();return $("body").hasClass("page-footer-fixed")&&(a-=$(".page-footer").outerHeight()),a},h=function(){var a=$(".page-sidebar-menu");return Metronic.destroySlimScroll(a),0===$(".page-sidebar-fixed").size()?void d():void(Metronic.getViewPort().width>=c&&(a.attr("data-height",g()),Metronic.initSlimScroll(a),d()))},i=function(){var a=$("body");a.hasClass("page-sidebar-fixed")&&$(".page-sidebar").on("mouseenter",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").removeClass("page-sidebar-menu-closed")}).on("mouseleave",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").addClass("page-sidebar-menu-closed")})},j=function(){var a=$("body");$.cookie&&"1"===$.cookie("sidebar_closed")&&Metronic.getViewPort().width>=c?($("body").addClass("page-sidebar-closed"),$(".page-sidebar-menu").addClass("page-sidebar-menu-closed")):$.cookie&&$.cookie("sidebar_closed","0"),$("body").on("click",".sidebar-toggler",function(b){var c=$(".page-sidebar"),d=$(".page-sidebar-menu");$(".sidebar-search",c).removeClass("open"),a.hasClass("page-sidebar-closed")?(a.removeClass("page-sidebar-closed"),d.removeClass("page-sidebar-menu-closed"),$.cookie&&$.cookie("sidebar_closed","0")):(a.addClass("page-sidebar-closed"),d.addClass("page-sidebar-menu-closed"),a.hasClass("page-sidebar-fixed")&&d.trigger("mouseleave"),$.cookie&&$.cookie("sidebar_closed","1")),$(window).trigger("resize")})},k=function(){$(".page-header").on("click",'.hor-menu a[data-toggle="tab"]',function(a){a.preventDefault();var b=$(".hor-menu .nav"),c=b.find("li.current");$("li.active",c).removeClass("active"),$(".selected",c).remove();var d=$(this).parents("li").last();d.addClass("current"),d.find("a:first").append('<span class="selected"></span>')}),$(".page-header").on("click",".search-form",function(a){$(this).addClass("open"),$(this).find(".form-control").focus(),$(".page-header .search-form .form-control").on("blur",function(a){$(this).closest(".search-form").removeClass("open"),$(this).unbind("blur")})}),$(".page-header").on("keypress",".hor-menu .search-form .form-control",function(a){return 13==a.which?($(this).closest(".search-form").submit(),!1):void 0}),$(".page-header").on("mousedown",".search-form.open .submit",function(a){a.preventDefault(),a.stopPropagation(),$(this).closest(".search-form").submit()}),$('[data-hover="megamenu-dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")}),$(document).on("click",".mega-menu-dropdown .dropdown-menu",function(a){a.stopPropagation()})},l=function(){$("body").on("shown.bs.tab",'a[data-toggle="tab"]',function(){d()})},m=function(){var a=300,b=500;navigator.userAgent.match(/iPhone|iPad|iPod/i)?$(window).bind("touchend touchcancel touchleave",function(c){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}):$(window).scroll(function(){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}),$(".scroll-to-top").click(function(a){return a.preventDefault(),$("html, body").animate({scrollTop:0},b),!1})},n=function(){var a,b=$(".full-height-content");if(a=Metronic.getViewPort().height-$(".page-header").outerHeight(!0)-$(".page-footer").outerHeight(!0)-$(".page-title").outerHeight(!0)-$(".page-bar").outerHeight(!0),b.hasClass("portlet")){var d=b.find(".portlet-body");if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(d.find(".full-height-content-body"));a=a-b.find(".portlet-title").outerHeight(!0)-parseInt(b.find(".portlet-body").css("padding-top"))-parseInt(b.find(".portlet-body").css("padding-bottom"))-2,b.hasClass("full-height-content-scrollable")?(a-=35,d.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(d.find(".full-height-content-body"))):d.css("min-height",a)}else{if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(b.find(".full-height-content-body"));b.hasClass("full-height-content-scrollable")?(a-=35,b.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(b.find(".full-height-content-body"))):b.css("min-height",a)}};return{initHeader:function(){k()},setSidebarMenuActiveLink:function(a,b){e(a,b)},initSidebar:function(){h(),f(),j(),Metronic.isAngularJsApp()&&e("match"),Metronic.addResizeHandler(h)},initContent:function(){n(),l(),Metronic.addResizeHandler(d),Metronic.addResizeHandler(n)},initFooter:function(){m()},init:function(){this.initHeader(),this.initSidebar(),this.initContent(),this.initFooter()},fixContentHeight:function(){d()},initFixedSidebarHoverEffect:function(){i()},initFixedSidebar:function(){h()},getLayoutImgPath:function(){return Metronic.getAssetsPath()+a},getLayoutCssPath:function(){return Metronic.getAssetsPath()+b}}}();angular.module("xCallyShuttleApp").run(["$templateCache",function(a){a.put("app/agent/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-people"></i>\n					<a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-people font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AGENTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="agents.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AGENT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/agents/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAgents([\'name\', \'fullname\', \'email\'])" csv-header="[\'Username\', \'Fullname\', \'Email\']" field-separator=";" filename="agents.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedAgents" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n													<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="name">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n						    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="agent in displayedAgents" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="agents.checked" checklist-value="agent.id"></td>\n								<td>{{agent.fullname}}</td>\n					      <td>{{agent.name}}</td>\n					      <td><a data-ng-href="mailto:{{agent.email}}">{{agent.email}}</a></td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/agents/view/{{agent.id}}/account">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(agent.fullname,agent.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedAgents.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No agents available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/agent/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin() || agent.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && agent.id === Auth.getCurrentUser().id}">\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane" data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="agent.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="agent.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="agent.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START INTERNAL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="agent.internal" required disabled/>\n								<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERNAL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin()" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											{{ \'APPLICATION_REMOVE\' | translate }}\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											{{ \'APPLICATION_CONFIRM\' | translate }}\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin() || agent.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && agent.id === Auth.getCurrentUser().id}" id="tab_1_3">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.reNewPwd" nx-equal="agent.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/agent/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-people"></i>\n					<a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{agent.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- START SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{agent.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{agent.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.agents.view.account\')}">\n							<a data-ng-href="/agents/view/{{agent.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/agent/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-people"></i>\n				<a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/agents/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" ng-init="getFirstFreeInternal();">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/agents/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/agents/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n						<!-- START INTERNAL -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<div class="input-group">\n							<input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/agents/validate/internal"/>\n							<span class="input-group-addon">\n								<input type="checkbox" data-ng-model="item.internalEnabled">\n							</span>\n							</div>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERNAL -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n					<form name="forms.voice" novalidate>\n\n						<!-- START ACCOUNTCODE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_ACCOUNTCODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="accountcode" placeholder="{{\'APPLICATION_ACCOUNTCODE\' | translate}}" class="form-control" data-ng-model="item.accountcode" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ACCOUNTCODE -->\n\n						<!-- START TRANSPORT -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n							<ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n						    	{{transport}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n							</span>\n						</div>\n						<!-- END TRANSPORT -->\n\n						<!-- START HOST -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END HOST -->\n\n						<!-- START NAT -->\n						<!-- <div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_NAT\' | translate}}</label>\n							<ui-select multiple ng-model="item.nat" name="nat" theme="bootstrap" ng-disabled="disabled">\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$item}}</ui-select-match>\n								<ui-select-choices repeat="nat in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n									{{nat}}\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n							</span>\n						</div> -->\n\n						<!-- END NAT -->\n\n						<!-- START TYPE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$invalid}">\n							<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$select.selected}}</ui-select-match>\n								<ui-select-choices repeat="type in [\'friend\', \'user\', \'peer\'] | filter: $select.search">\n									<div ng-bind-html="type | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END TYPE -->\n\n						<!-- START CODEC -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n							<ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n						    	{{allow}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n							</span>\n						</div>\n						<!-- END CODEC -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
-a.put("app/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bulb"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Automations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.AutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="AutomationByPage in AutomationsByPage | filter: $select.search">\n													<div ng-bind-html="AutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Automation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="Automation in displayedAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Automations.checked" checklist-value="Automation.id"></td>\n					      <td>{{Automation.name}}</td>\n								<td>{{Automation.description}}</td>\n								<td>{{Automation.channel | capitalize}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(Automation.id, Automation.status)",\n								    bs-switch\n								    ng-model="Automation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/automations/view/{{Automation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Automation.name, Automation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>No available automations</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.AutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ automation.description }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.automations.view.settings\')}">\n							<a href="/automations/view/{{automation.id}}/settings">\n							<i class="icon-bulb"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<!-- <pre>\n					{{conditionsData.query | json}}\n				</pre>\n				<pre>\n					{{actionsData.query | json}}\n				</pre> -->\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<div class="tab-pane" id="tab_1_2">\n					<div class="portlet light bordered">\n						<div class="portlet-title">\n							<div class="caption font-blue-hoki">\n								<i class="icon-tag font-blue-hoki"></i>\n								<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n							</div>\n						</div>\n						<div class="portlet-body">\n							<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[automation.channel]"></query-builder>\n						</div>\n					</div>\n					<div class="portlet light bordered">\n						<div class="portlet-title">\n							<div class="caption font-blue-hoki">\n								<i class="icon-tag font-blue-hoki"></i>\n								<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n							</div>\n						</div>\n						<div class="portlet-body">\n							<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[automation.channel]"></query-builder>\n						</div>\n					</div>\n\n						<input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateAutomation()"/>\n					</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/automation/wizard/wizard.html",'<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<!-- <pre>\n						{{item | json}}\n					</pre>\n					<pre>\n						{{conditionsData.query | json}}\n					</pre>\n					<pre>\n						{{actionsData.query | json}}\n					</pre> -->\n					<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n						<form name="forms.general" data-ng-submit="submit()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.name.$touched && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.general.name.$touched && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n					</wz-step>\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(conditionsData.query.length && actionsData.query.length)">\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<div class="form-group"  >\n									<label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n										<ui-select-choices repeat="channel in $automations.channels | filter: $select.search">\n											<div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/preview/preview.html",'<style>\n  .xc_footer\n  {\n  	text-align: center;\n  	padding-bottom: 5px;\n  }\n\n  .xc_powered\n  {\n  	color: grey;\n    font: 10px/16px "Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;\n  	padding-bottom: 5px;\n  }\n\n  .xc_chat_container\n  {\n  	//width:379px;\n  	//position:fixed;\n  	//bottom:0;\n  	//right:50px;\n  	z-index:9999;\n  	background-color:transparent;\n  }\n\n  .xc_chat_container *\n  {\n  	font-family:Arial,Helvetica,sans-serif;\n  	font-size:13px;\n  	margin:0;\n  	padding:0;\n  }\n\n  .xc_chat_container p\n  {\n  	margin:5px 0;\n  }\n\n  .xc_signup_wrapper\n  {\n  	max-height:375px;\n  }\n\n  .xc_conversation_container\n  {\n  	max-height:375px;\n  	list-style:none;\n  	overflow:auto;\n  	margin:0;\n  	padding:20px 10px;\n  }\n\n  .xc_conversation_container a\n  {\n  	color:#036;\n  }\n\n  .xc_conversation_container a.xc_btn_style\n  {\n  	color:#fff;\n  }\n\n  div.xc_chat_head\n  {\n  	color:#fff;\n  	background:{{chatWebsite.color}};\n  	//border-radius: 20px 20px 0px 0px !important;\n  	height:52px;\n  	line-height:55px;\n  	cursor:pointer;\n  }\n\n  div.xc_chat_head.rounded\n  {\n  	border-radius: 20px 20px 0px 0px !important;\n  }\n\n  div.xc_chat_head.squared\n  {\n  	//border-radius: 20px 20px 0px 0px !important;\n  }\n\n  .xc_chat_head-title\n  {\n  	margin:5px 0 0 15px;\n  	color: #fff;\n  }\n\n  .xc_header_icon\n  {\n  	display:block;\n  	background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  	width:21px;\n  	height:16px;\n  	float:right;\n  	margin:20px 20px 0 0;\n  }\n\n  .xc_header_icon span.xc_notification_badge span\n  {\n  	display:block;\n  	height:16px;\n  	width:15px;\n  	text-align:center;\n  	font-size:9px;\n  	color:#555;\n  	position:relative;\n  	top:-20px;\n  	left:4px;\n  	margin:0;\n  	padding:0;\n  }\n\n  .xc_sub-head-spacer\n  {\n  	padding:1px;\n  }\n\n  .xc_conversation\n  {\n  	display:none;\n  	margin:0 12px 0 11px;\n  }\n\n  .xc_chat_toggle_container\n  {\n  	/*background:mediumslateblue center -52px;*/\n  	background: white;\n  	border-style: solid;\n    border-width: 1px;\n  	border-color: {{chatWebsite.color}};\n  	//display:none;\n  }\n\n  .xc_signup_wrapper,.xc_notifications_wrapper,.xc_enquiry_wrapper\n  {\n  	//display:none;\n    display:block;\n  	overflow:auto;\n  	line-height:1;\n  	padding:25px;\n  }\n\n  .xc_exit_chat_container\n  {\n  	text-align:right;\n  	width:95%;\n  	margin:0 auto;\n  	padding:5px 1px 0 0;\n  }\n\n  .xc_exit_chat_container span,.xc_exit_chat_container a\n  {\n  	font-size:80%;\n  	color:#666;\n  	text-decoration:none;\n  }\n\n  .xc_exit_chat_container a:hover\n  {\n  	color:#333;\n  }\n\n  a.xc_btn_exit_chat_confirm:hover\n  {\n  	color:red;\n  }\n\n  a.xc_btn_exit_chat_cancel:hover\n  {\n  	color:#0c0;\n  }\n\n  form.xc_form_reply\n  {\n  	position:relative;\n  }\n\n  .xc_form_reply\n  {\n  	/*background-color:#e3e3e3;*/\n  	text-align:center;\n  	/*border-top:1px solid #d3d3d3;*/\n  }\n\n  .xc_input_message\n  {\n  	height:100px;\n  	margin:10px auto 5px;\n  }\n\n  .xc_input_enquiry_message\n  {\n  	height:100px;\n  }\n\n  .xc_form_signup,.xc_form_enquiry\n  {\n  	text-align:center;\n  }\n\n  .xc_chat_container textarea,.xc_chat_container input[type=text]\n  {\n  	width:95%;\n  	min-width:95%;\n  	max-width:95%;\n  	-webkit-box-sizing:border-box;\n  	-moz-box-sizing:border-box;\n  	box-sizing:border-box;\n  	background-color:#fff;\n  	border:1px solid #ccc;\n  	-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	-webkit-transition:border linear .2s, box-shadow linear .2s;\n  	-moz-transition:border linear .2s, box-shadow linear .2s;\n  	-o-transition:border linear .2s, box-shadow linear .2s;\n  	transition:border linear .2s, box-shadow linear .2s;\n  	display:inline-block;\n  	font-size:14px;\n  	line-height:20px;\n  	color:#555;\n  	-webkit-border-radius:4px;\n  	-moz-border-radius:4px;\n  	border-radius:4px;\n  	vertical-align:middle;\n  	margin:3px 0;\n  	padding:4px 6px;\n  	resize: none;\n  }\n\n  .xc_chat_container textarea:focus,.xc_chat_container input[type=text]:focus\n  {\n  	outline: {{chatWebsite.color_focus}} auto 5px;\n  }\n\n  .xc_chat_container input[type=text]\n  {\n    	height: 30px;\n  }\n\n  .xc_message_sending textarea, .xc_enquiry_sending textarea\n  {\n    	background: #fff url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/loading.gif) 98% 5px no-repeat;\n  }\n\n  .xc_chatrow\n  {\n  	display:block;\n  	border-top:1px dashed #e3e3e3;\n  	margin:5px 0;\n    	clear: both;\n  }\n\n  .xc_chatrow p\n  {\n  	color:#444;\n  	word-wrap:break-word;\n  }\n\n  .xc_time\n  {\n  	float:right;\n  	font-size:80%;\n  	color:#ccc;\n  	padding-left:12px;\n  	margin:3px;\n  }\n\n  .xc_submission_pending\n  {\n  	background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_clock.png) left center no-repeat;\n  }\n\n  .xc_submission_confirmed\n  {\n  	background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_tick.png) left center no-repeat;\n  }\n\n  .xc_fullname\n  {\n  	font-weight:700;\n  }\n\n  .xc_fullname:after\n  {\n  	content:":";\n  }\n\n  .xc_avatar\n  {\n    	float: left;\n    	margin: 0 5px 5px 0;\n    	display: inline-block;\n    	width: 40px;\n    	height: 40px;\n    	border-radius: 5px;\n    	-moz-border-radius: 5px;\n    	-webkit-border-radius: 5px;\n  }\n\n  .xc_smilie\n  {\n  	background-repeat:no-repeat;\n  	display:inline-block;\n  	width:18px;\n  	height:18px;\n  	text-indent:-9999px;\n  	white-space:nowrap;\n  }\n\n  .xc_btn_load_more\n  {\n  	width:100%!important;\n  }\n\n  .xc_notifications_wrapper\n  {\n  	text-shadow:0 1px 0 rgba(255,255,255,0.5);\n  }\n\n  .xc_notification_success\n  {\n  	color:#468847;\n  }\n\n  .xc_notification_error\n  {\n  	color:#b94a48;\n  }\n\n  .xc_errorlist\n  {\n  	margin:0 0 0 25px;\n  	padding:0;\n  }\n\n  i.xc_btn_notifications_close\n  {\n  	float:right;\n  	font-weight:700;\n  	font-size:20px;\n  	color:#ccc;\n  	cursor:pointer;\n  	margin:-15px 0 0;\n  	padding:0;\n  }\n\n  .xc_btn_style\n  {\n  	width:95%;\n  	text-align:center;\n  	line-height:1.2;\n  	font-size:90%;\n  	-moz-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	-webkit-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	background:0;\n  	background-color:{{chatWebsite.color_button}};\n  	-moz-border-radius:4px;\n  	-webkit-border-radius:4px;\n  	border-radius:4px;\n  	border:1px solid {{chatWebsite.color_button}};\n  	display:inline-block;\n  	color:#fff;\n  	font-weight:700;\n  	text-decoration:none;\n  	text-shadow:1px 1px 0 #000c17;\n  	margin:0 auto 5px;\n  	padding:2px 0;\n  }\n\n  .xc_btn_style:hover\n  {\n  	background:0;\n  	background-color:{{chatWebsite.color_button}};\n      color: #fff;\n    	text-decoration: none;\n  }\n\n  .xc_btn_style:active\n  {\n  	position:relative;\n  	top:1px;\n  }\n\n  .xc_composing_container\n  {\n    	display: none;\n    width: 95%;\n    margin: 0 auto;\n    background: transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_pencil.png) 6px center no-repeat;\n    padding-left: 19px;\n    font-style: italic;\n  }\n\n  @media only screen and (max-height: 620px) {\n  	.xc_conversation_container\n  	{\n  		max-height:300px!important;\n  	}\n  }\n\n  @media only screen and (max-height: 545px) {\n  	.xc_conversation_container\n  	{\n  		max-height:200px!important;\n  	}\n  }\n\n  @media only screen and (max-height: 445px) {\n  	.xc_conversation_container\n  	{\n  		max-height:150px!important;\n  	}\n  }\n\n  @media only screen and (max-width: 480px) {\n  	.xc_chat_container\n  	{\n  		width:95%!important;\n  		right:auto!important;\n  		-webkit-border-top-left-radius:15px;\n  		-webkit-border-top-right-radius:15px;\n  		-moz-border-radius-topleft:15px;\n  		-moz-border-radius-topright:15px;\n  		border-top-left-radius:15px;\n  		border-top-right-radius:15px;\n  		box-shadow:0 0 5px rgba(0,0,0,.5);\n  		-webkit-box-shadow:0 0 5px rgba(0,0,0,.5);\n  		-moz-box-shadow:0 0 5px rgba(0,0,0,.5);\n  	}\n\n  	div.xc_chat_head\n  	{\n  		background-color:#036;\n  		background-image:none;\n  		line-height:25px;\n  		height:auto;\n  		-webkit-border-top-left-radius:15px;\n  		-webkit-border-top-right-radius:15px;\n  		-moz-border-radius-topleft:15px;\n  		-moz-border-radius-topright:15px;\n  		border-top-left-radius:15px;\n  		border-top-right-radius:15px;\n  		padding:10px;\n  	}\n\n  	.xc_chat_toggle_container\n  	{\n  		background-color:#fff;\n  		background-image:none;\n  		border-color:#036;\n  		border-style:solid;\n  		border-width:0 1px;\n  	}\n\n  	.xc_header_icon\n  	{\n  		background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  		margin:0;\n  	}\n\n  	.xc_header_icon span.xc_notification_badge span\n  	{\n  		top:-5px;\n  		left:5px;\n  	}\n\n  	.xc_notification_success\n  	{\n  		background-color:#dff0d8;\n  		border:1px solid #d6e9c6;\n  	}\n\n  	.xc_conversation_container\n  	{\n  		max-height:375px;\n  		border-color:#036;\n  	}\n\n  	.xc_notification_error\n  	{\n  		background-color:#f2dede;\n  		border:1px solid #eed3d7;\n  	}\n\n  	.xc_sub-head-spacer\n  	{\n  		display:none;\n  		padding:0;\n  	}\n\n  	.xc_chat_head-title,.xc_conversation\n  	{\n  		margin:0;\n  	}\n  }\n</style>\n<div class="xc_chat_container">\n    <div class="xc_chat_head {{chatWebsite.header_shape}}">\n      <i class="xc_header_icon">\n        <span class="xc_notification_badge">\n          <span class="xc_notification_badge_number"></span>\n        </span>\n      </i>\n      <span class="xc_chat_head-title">{{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}</span>\n    </div>\n    <div class="xc_chat_toggle_container">\n        <div class="xc_sub-head-spacer"></div>\n        <div class="xc_notifications_wrapper">\n            <!--<i class="xc_btn_notifications_close">&times;</i>-->\n            <ul class="xc_errorlist"></ul>\n        </div>\n        <div class="xc_enquiry_wrapper" data-ng-show=\'statePreview.state == "offline"\'>\n            <form class="xc_form_enquiry" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.offline_message\'></p>\n                <input maxlength="45" type="text" name="data[Enquiry][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_enquiry_fullname" />\n                <input maxlength="85" type="text" name="data[Enquiry][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_enquiry_email" />\n                <textarea maxlength="1500" placeholder="{{chatWebsite.enquiry_message_placeholder}}" name="data[Enquiry][message]" class="xc_input_enquiry_message"></textarea>\n                <a href="#" class="xc_btn_enquiry xc_btn_style">{{chatWebsite.enquiry_button}}</a></form>\n        </div>\n        <div class="xc_signup_wrapper" data-ng-show=\'statePreview.state == "online"\'>\n            <form class="xc_form_signup" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.online_message\'></p>\n                <input maxlength="45" type="text" name="data[Discussion][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_fullname" />\n                <input maxlength="85" type="text" name="data[Discussion][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_email" />\n                <input type="hidden" class="xc_input_visitor_time" name="data[Discussion][visitor_time]" /><a href="#" class="xc_btn_signup xc_btn_style">{{chatWebsite.start_chat_button}}</a></form>\n        </div>\n        <!-- <div class="xc_conversation">\n            <div class="xc_conversation_container">\n                <p class="xc_message_intro" data-id="-10">{FirstMessageText}</p>\n            </div>\n            <div class="xc_composing_container"></div>\n            <form class="xc_form_reply" accept-charset="UTF-8">\n                <div class="xc_exit_chat_container"><a href="#" class="xc_btn_exit_chat">{ExitChatButtonText}</a>\n                    <div class="xc_exit_chat_confirmation_wrapper" style="display: none;"><span>{ExitChatQuestionText} </span><a href="#" class="xc_btn_exit_chat_confirm">{ExitChatButtonConfirmText}</a><span> | </span><a href="#" class="xc_btn_exit_chat_cancel">{ExitChatButtonCancelText}</a></div>\n                </div>\n                <textarea maxlength="750" placeholder="{MessagePlaceholderText}" name="data[Message][message]" class="xc_input_message"></textarea><a href="#" class="xc_btn_send xc_btn_style">{MessageSendButtonText}</a></form>\n        </div> -->\n        <div class="xc_footer">\n            <div class="xc_powered"><a>Powered by Xenialab | Trademark xCALLY</a></div>\n        </div>\n    </div>\n</div>\n'),a.put("app/chat/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUE\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="chatQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#" data-ng-click="open()">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/chat/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Username\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="chat_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedChatQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.chatQueuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="chatQueueByPage in chatQueuesByPage | filter: $select.search">\n													<div ng-bind-html="chatQueueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="chatQueue in displayedChatQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatQueues.checked" checklist-value="chatQueue.id"></td>\n					      <td>{{chatQueue.name}}</td>\n								<td>{{chatQueue.description}}</td>\n								<td>{{chatQueue.strategy | uppercase}}</td>\n								<td>{{chatQueue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/queues/view/{{chatQueue.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatQueue.name,chatQueue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedChatQueues.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No chat queues available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.chatQueuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body" style="width: 50%; margin: 0 auto;">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.chat.queues.view.settings\')}">\n							<a data-ng-href="/chat/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.queues.view.agents\')}">\n							<a data-ng-href="/chat/queues/view/{{queue.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateChatQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_AGENT\' | translate}} {{\'APPLICATION_TIMEOUT\' | translate}}</label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n              <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n            </div>\n						<!-- END TIMEOUT -->\n\n						<!-- START HEADER SHAPE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n              <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n						</div>\n						<!-- END HEADER SHAPE -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/chat/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_WEB_SITE\' | translate }}</th>\n						<th st-sort="agentcalledAt" st-sort-default="reverse">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentringnoanswerAt">{{ \'APPLICATION_UNASWER_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': agent.lastevent === \'called\',\n								\'icon-user-following font-green\': agent.lastevent === \'agent\',\n								\'icon-user-unfollow font-red\': agent.lastevent === \'timeout\',\n								\'icon-user-unfollow font-blue\': agent.lastevent === \'answered_elsewhere\'}"></i>\n							</span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.chatqueuename}}</td>\n						<td>{{agent.fullname}}</td>\n						<td>{{agent.visitorname}} {{agent.visitoremail}}</td>\n						<td>{{agent.websitename}}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectedAt}}" data-ng-show="agent.agentconnectedAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentringnoanswerAt}}" data-ng-show="agent.agentringnoanswerAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_VISITOR\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_WEB_SITE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initChats()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedChats" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n											<div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="visitorname" class="input-medium">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n						<th st-sort="websitename" class="input-small">{{ \'APPLICATION_WEB_SITE\' | translate }}</th>\n						<th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n						<th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n						<th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="session in displayedChats">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n								\'icon-user-following font-green\': session.fullname,\n								\'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n							</span>\n						</td>\n						<td>{{session.uniqueid}}</td>\n						<td>{{session.chatqueuename}}</td>\n						<td>{{session.fullname}}</td>\n						<td>{{session.visitorname + \' [\' + session.visitoremail + \']\'}}</td>\n						<td>{{session.websitename}}</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatleaveAt}}" data-ng-show="session.chatleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatunmanagedAt}}" data-ng-show="session.chatunmanagedAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedChats.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No sessions available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="visitorname" placeholder="{{ \'APPLICATION_VISITOR\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="websitename" placeholder="{{ \'APPLICATION_WEB_SITE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/chat/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n										<li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_SESSIONS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'sessions\'></tree>\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatRooms" filename="rooms.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatRooms" st-safe-src="chatRooms" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatRoomsByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatRooms.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="type">{{ \'APPLICATION_TYPE\' | translate }}</th>\n							<th st-sort="users">{{ \'APPLICATION_USERS\' | translate }}</th>\n							<th st-sort="visitor">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n							<th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatRoom in displayedChatRooms" data-ng-click="$location.path(\'/chat/statistics/conversation/\' + chatRoom.id)">\n							<td style="text-align: center;">{{chatRoom.type | uppercase}}</td>\n							<td style="text-align: center;">{{getUsersFullname(chatRoom.Users)}}</td>\n							<td style="text-align: center;">{{chatRoom.ChatVisitor.email}}</td>\n							<td style="text-align: center;">\n								<span class="label label-sm label-success" data-ng-class="{\'label-success\': chatRoom.status == \'close\', \'label-warning\': chatRoom.status == \'open\'}">\n									{{chatRoom.status | capitalize}}\n								</span>\n							</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatRoom.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatRoomsByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initRoomView()">\n	<div class="col-md-6">\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-book-open font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRANSCRIPT\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="chatRoom.ChatMessages" filename="chatMessages.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="scroller" style="height: 352px;" data-always-visible="1" data-rail-visible1="1">\n					<ul class="chats">\n						<li data-ng-class="{\'out\': chatMessage.visitorId, \'in\': chatMessage.userId}" data-ng-repeat="chatMessage in chatRoom.ChatMessages | orderBy:\'-createdAt\'">\n							<img class="avatar" data-ng-src="api/users/{{chatMessage.userId ? chatMessage.userId : \'avatar\'}}/avatar"/>\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<a href="#" class="name">\n								{{chatMessage.fullname}} </a>\n								<span class="datetime">\n									<time is="relative-time" datetime="{{chatMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<span class="body">\n									{{chatMessage.body}}\n								</span>\n							</div>\n						</li>\n					</ul>\n				</div>\n			</div>\n		<!-- END PORTLET-->\n		</div>\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatRoom.ChatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatRoom.ChatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatRoom.ChatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered" data-ng-repeat="user in chatRoom.Users">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-earphones-alt font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }}:</a> </span>\n					<span class="caption-helper">{{user.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.fullname}}\n					</div>\n				</div>\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_USERNAME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.name}}\n					</div>\n				</div>\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ROLE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.role | uppercase}}\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/statistic/statistic.enquiry.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-question font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatEnquiries" filename="enquiries.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatEnquiries" st-safe-src="chatEnquiries" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatEnquiriesByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatEnquiries.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="type">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n							<th st-sort="users">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatEnquiry in displayedChatEnquiries" data-ng-click="$location.path(\'/chat/statistics/enquiry/\' + chatEnquiry.id)">\n							<td style="text-align: center;">{{chatEnquiry.username}}</td>\n							<td style="text-align: center;">{{chatEnquiry.email}}</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatEnquiriesByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.enquiry.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initEnquiryView()">\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-book-open font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEXT\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="chatEnquiry" filename="chatEnquery.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN PAGE CONTENT-->\n				<div class="note note-warning">\n					<h4 class="block">{{chatEnquiry.ChatVisitor.fullname}} -\n						<time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n							April 1, 2014\n						</time>\n					</h4>\n					<p>\n						 {{chatEnquiry.text}}\n					</p>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatEnquiry.ChatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatEnquiry.ChatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatEnquiry.ChatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eyeglass"></i>\n					<a href="/chat/statistics">{{ \'APPLICATION_STATISTICS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/statistics.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<!-- <div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{chatWebsite.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{chatWebsite.address}}\n					</div>\n				</div> -->\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR BUTTONS -->\n				<!-- <div class="profile-userbuttons">\n					<button type="button" class="btn btn-circle green-haze btn-sm">Follow</button>\n					<button type="button" class="btn btn-circle btn-danger btn-sm">Message</button>\n				</div> -->\n				<!-- END SIDEBAR BUTTONS -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.summary\')}">\n							<a ng-href="/chat/statistics/summary">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_SUMMARY\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.enquiry\') || $state.is(\'main.chat.statistics.enquiries\')}">\n							<a ng-href="/chat/statistics/enquiries">\n							<i class="icon-question"></i>\n							{{ \'APPLICATION_ENQUIRIES\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.conversation\') || $state.is(\'main.chat.statistics.conversations\')}">\n							<a ng-href="/chat/statistics/conversations">\n							<i class="icon-notebook"></i>\n							{{ \'APPLICATION_CONVERSATIONS\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.visitor\') || $state.is(\'main.chat.statistics.visitors\')}">\n							<a ng-href="/chat/statistics/visitors">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_VISITORS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.summary.html",'<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered" data-ng-show="online">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_LOCATIONS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<map center="0, 0" zoom="2">\n				<marker data-ng-show="chatVisitor.latitude && chatVisitor.longitude" data-ng-repeat="chatVisitor in chatVisitors" position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n			</map>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_OPENED\' | translate }} <i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatRooms | filter:{ status:\'open\' }).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_CLOSED\' | translate }} <i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatRooms | filter:{ status:\'close\' }).length }} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatRooms | filter:{ status:\'open\' }).length, (chatRooms | filter:{ status:\'close\' }).length]" labels="[$translate.instant(\'APPLICATION_OPENED\'), $translate.instant(\'APPLICATION_CLOSED\')]" legend="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-users font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_PENDING\' | translate }} <i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'pending\' }).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_SERVED\' | translate }} <i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'served\' }:true).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_UNSERVED\' | translate }} </span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'unserved\' }).length }} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatVisitors | filter:{ status:\'pending\' }).length, (chatVisitors | filter:{ status:\'served\' }:true).length, (chatVisitors | filter:{ status:\'unserved\' }).length]" labels="[$translate.instant(\'APPLICATION_PENDING\'), $translate.instant(\'APPLICATION_SERVED\'), $translate.instant(\'APPLICATION_UNSERVED\')]" legend="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-question font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_READ\' | translate }}<i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{(chatEnquiries | filter:{ read:true }).length}} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_UNREAD\' | translate }}<i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{(chatEnquiries | filter:{ read:false }).length}} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatEnquiries | filter:{ read:true }).length, (chatEnquiries | filter:{ read:false }).length]" labels="[$translate.instant(\'APPLICATION_READ\'), $translate.instant(\'APPLICATION_UNREAD\')]" legend="true" ng-show="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n'),a.put("app/chat/statistic/statistic.visitor.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-users font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatVisitors" filename="visitors.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatVisitors" st-safe-src="chatVisitors" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatVisitorsByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatVisitors.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n							<th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="remote_address">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n							<th st-sort="referer">{{ \'APPLICATION_ORIGIN\' | translate }}</th>\n							<th st-sort="device">{{ \'APPLICATION_DEVICE\' | translate }}</th>\n							<th st-sort="browser">{{ \'APPLICATION_BROWSER\' | translate }}</th>\n							<th st-sort="visitor_language">{{ \'APPLICATION_LANGUAGES\' | translate }}</th>\n							<th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatVisitor in displayedChatVisitors" data-ng-click="$location.path(\'/chat/statistics/visitor/\' + chatVisitor.id)">\n							<td>{{chatVisitor.fullname}}</td>\n							<td>{{chatVisitor.email}}</td>\n							<td>{{chatVisitor.remote_address}}</td>\n							<td>{{chatVisitor.referer}}</td>\n							<td class="centered-td">{{chatVisitor.device ? chatVisitor.device : \'--\'}}</td>\n							<td class="centered-td">\n								<img data-ng-show="chatVisitor.browser.includes(\'Chrome\')" data-ng-src="assets/images/browsers/chrome/chrome_16x16.png" data-title="{{chatVisitor.browser}}" bs-tooltip>\n								<img data-ng-show="chatVisitor.browser.includes(\'Safari\')" data-ng-src="assets/images/browsers/safari/safari_16x16.png">\n								<img data-ng-show="chatVisitor.browser.includes(\'Firefox\')" data-ng-src="assets/images/browsers/firefox/firefox_16x16.png">\n								<img data-ng-show="chatVisitor.browser.includes(\'Explorer\')" data-ng-src="assets/images/browsers/internet-explorer/internet-explorer_16x16.png">\n							</td>\n							<td class="centered-td">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'IT\') || chatVisitor.visitor_language.includes(\'it\')" data-ng-src="assets/images/flags/it.png">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'US\') || chatVisitor.visitor_language.includes(\'us\')" data-ng-src="assets/images/flags/us.png">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'EN\') || chatVisitor.visitor_language.includes(\'en\')" data-ng-src="assets/images/flags/en_EN.png">\n							</td>\n							<td class="centered-td">\n								<span class="label label-sm label-success" data-ng-class="{\'label-warning\': chatVisitor.status == \'pending\', \'label-danger\': chatVisitor.status == \'unserved\'}">\n									{{ $translate.instant(\'APPLICATION_\' + $filter(\'uppercase\')(chatVisitor.status)) }}\n								</span>\n							</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatVisitorsByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.visitor.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initVisitorView()">\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-pin font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_LOCATION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN PAGE CONTENT-->\n				<map center="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" zoom="8">\n					<marker position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n				</map>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatVisitor.longitude && chatVisitor.latitude">\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/mail/timeline/list"> Timeline</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				Timeline\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'"  ng-animate=" \'animate\' ">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-envelope font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-globe"></i>\n						<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_WEB_SITES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="chatWebsites.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_WEB_SITE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#" data-ng-click="open()">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/chat/websites/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatWebsites([\'name\', \'address\', \'description\', \'remote\'])" csv-header="[\'Name\', \'Address\', \'Description\', \'Remote\']" field-separator=";" filename="chat_websites.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedChatWebsites" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.chatWebsitesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="chatWebsiteByPage in chatWebsitesByPage | filter: $select.search">\n													<div ng-bind-html="chatWebsiteByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th st-sort="address">{{ \'APPLICATION_WEB_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="chatWebsite in displayedChatWebsites" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatWebsites.checked" checklist-value="chatWebsite.id"></td>\n					      <td>{{chatWebsite.name}}</td>\n								<td>{{chatWebsite.description}}</td>\n					      <td><a ng-href="{{chatWebsite.address}}">{{chatWebsite.address}}</a></td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatWebsite.name,chatWebsite.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedChatWebsites.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{\'MESSAGE_NO_AVAILABLE_WEBSITES\' | translate}}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="address" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_WEB_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.chatWebsitesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/chat/website/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/chat/websites/view/{{chatWebsite.id}}/actions/wizard" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n								<th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n						    <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n								<th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="chatApplications">\n					    <tr data-ng-repeat="application in chatApplications">\n								<td align="center">\n									<span>\n										<i data-ng-class="application.User ? \'icon-user\' : \'icon-docs\'"></i>\n									</span>\n								</td>\n								<td align="center">{{application.timeout}}</td>\n								<td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n								<td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/view/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="chatApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/website/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.settings" ng-submit="updateItem()" novalidate>\n					<!-- START APP -->\n					<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n							<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n							<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n								<div ng-bind-html="app.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END APP -->\n\n					<!-- START HOST -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n						<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END HOST -->\n\n					<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n						<!-- START QUEUE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n							<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select class="input-medium" data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n									<div ng-bind-html="queue.name | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END QUEUE -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n						<!-- START AGENT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n								<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n									<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END AGENT -->\n					</div>\n\n					<!-- START INTERVAL_TYPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n							<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n								{{ intType.name | translate }}\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END INTERVAL_TYPE -->\n\n					<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n						<!-- START TIME -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n							<div class="input-group input-large">\n								<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n									<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n								</fieldset>\n								<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n								<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n								<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n							</div>\n						</div>\n						<!-- END TIME -->\n\n						<!-- START ALWAYS -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n							<div class="input-group input-large">\n								<label class="control-label pointer-cursor">\n									<input\n										bs-switch\n										data-ng-model="application.alwaysTime"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n									<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n								</label>\n							</div>\n						</div>\n						<!-- END ALWAYS -->\n\n						<!-- START WEEKDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END WEEKDAY -->\n\n						<!-- START MONTHDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTHDAY -->\n\n						<!-- START MONTH -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTH -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n						<!-- START INTERVALS -->\n						<div class="form-group inpu" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n									{{ interval.name}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVALS -->\n\n					</div>\n					<button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n				</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n						<form name="forms.action" novalidate>\n							<!-- START APP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n									<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n										<div ng-bind-html="app.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APP -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n								<span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n								<!-- START QUEUE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n											<div ng-bind-html="queue.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n								<!-- START AGENT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n									<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n										<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n											<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END AGENT -->\n							</div>\n\n							<!-- START INTERVAL_TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n										{{ intType.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVAL_TYPE -->\n\n							<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n											<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n										</fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n										<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START ALWAYS -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n									<div class="input-group input-large">\n										<label class="control-label pointer-cursor">\n											<input\n												bs-switch\n												data-ng-model="application.alwaysTime"\n												type="checkbox"\n												switch-active="{{ isActive }}"\n												switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n												switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n												switch-on-color="{{ onColor }}"\n												switch-off-color="{{ offColor }}"\n												switch-animate="{{ animate }}"\n												switch-size="{{ size }}"\n												switch-label="{{ label }}"\n												switch-icon="{{ icon }}"\n												switch-radio-off="{{ radioOff }}"\n												switch-label-width="{{ labelWidth }}"\n												switch-handle-width="{{ handleWidth }}">\n											<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n										</label>\n									</div>\n								</div>\n								<!-- END ALWAYS -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n											{{ interval.name}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n\n							<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n						<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/snippet/view/view.html",'<div class="row" data-ng-init="getSnippetCode()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SNIPPET\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_EMBEDDING\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_APPEARANCE\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FORMS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_LABELS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_5" data-toggle="tab">{{\'APPLICATION_SETTINGS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n						<div class="col-md-8">\n							<div class="tab-content">\n								<!-- EMBEDDING TAB -->\n								<div class="tab-pane active" id="tab_1_1">\n									<h3>{{\'APPLICATION_EMBED_SNIPPET\' | translate}}</h3>\n									<p>\n										{{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n									</p>\n									<div class="form-body">\n										<div class="form-group">\n											<div class="col-md-12">\n												<textarea name="snippet" rows="13" style="resize:none;cursor:text;" class="form-control" readonly data-ng-model="snippetCode"></textarea>\n											</div>\n										</div>\n									</div>\n								</div>\n								<!-- END EMBEDDING TAB -->\n\n								<!-- APPEARANCE TAB -->\n								<div class="tab-pane" id="tab_1_2">\n									<form name="forms.formAppearance" data-ng-submit="forms.formAppearance.$valid && updateItem()" novalidate>\n\n										<!-- START MAIN COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n											<label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{chatWebsite.color}}" class="form-control" data-ng-model="chatWebsite.color" required/>\n											<span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END MAIN COLOR -->\n\n										<!-- START FOCUS COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n											<label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{chatWebsite.color_focus}}" class="form-control" data-ng-model="chatWebsite.color_focus" required/>\n											<span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END FOCUS COLOR -->\n\n										<!-- START BUTTON COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n											<label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{chatWebsite.color_button}}" class="form-control" data-ng-model="chatWebsite.color_button" required/>\n											<span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END BUTTON COLOR -->\n\n										<!-- START HEADER SHAPE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n											<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n											<ui-select data-ng-model="chatWebsite.header_shape" name="headerShape" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n												<ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n													<div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END HEADER SHAPE -->\n\n										<!-- START ANIMATION TOGGLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n											<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n											<ui-select data-ng-model="chatWebsite.animation" name="animationToggle" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n												<ui-select-choices repeat="animationToggle in [true, false] | filter: $select.search">\n													<div ng-bind-html="animationToggle ? \'On\' : \'Off\' | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END ANIMATION TOGGLE -->\n\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END APPEARANCE TAB -->\n\n								<!-- FORMS TAB -->\n								<div class="tab-pane" id="tab_1_3">\n									<form name="forms.formFunctionality" data-ng-submit="forms.formFunctionality.$valid && updateItem()" novalidate>\n\n										<!-- START DOWNLOAD TRANSCRIPT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n											<label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n											<ui-select data-ng-model="chatWebsite.download_transcript" name="downloadTranscript" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n												<ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n													<div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END DOWNLOAD TRANSCRIPT -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END FORMS TAB -->\n\n								<!-- STRINGS TAB -->\n								<div class="tab-pane" id="tab_1_4">\n									<form name="forms.formLabel" data-ng-submit="forms.formLabel.$valid && updateItem()" novalidate>\n\n										<h4 class="block" data-ng-show="statePreview.state == \'online\'">{{\'APPLICATION_ONLINE_STATE\' | translate}}</h4>\n\n										<!-- START HEADER ONLINE -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n											<input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_online"/>\n										</div>\n										<!-- END HEADER ONLINE -->\n\n										<!-- START ONLINE MESSAGE-->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n											<input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.online_message"/>\n										</div>\n										<!-- END HEADER ONLINE -->\n\n										<!-- START USERNAME PLACEHOLDER -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n											<label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.username_placeholder"/>\n										</div>\n										<!-- END USERNAME PLACEHOLDER -->\n\n										<!-- START EMAIL PLACEHOLDER -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n											<label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.email_placeholder"/>\n										</div>\n										<!-- END EMAIL PLACEHOLDER -->\n\n										<!-- START START CHAT BUTTON -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n											<label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n											<input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.start_chat_button"/>\n										</div>\n										<!-- END START CHAT BUTTON -->\n\n										<h4 class="block" data-ng-show="statePreview.state == \'offline\'">{{\'APPLICATION_OFFLINE_STATE\' | translate}}</h4>\n\n										<!-- START HEADER OFFLINE -->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n											<input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_offline"/>\n										</div>\n										<!-- END HEADER OFFLINE -->\n\n										<!-- START OFFLINE MESSAGE-->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n											<input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.offline_message"/>\n										</div>\n										<!-- END OFFLINE MESSAGE -->\n\n										<!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_message_placeholder"/>\n										</div>\n										<!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n										<!-- START ENQUIRY BUTTON -->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n											<input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_button"/>\n										</div>\n										<!-- END ENQUIRY BUTTON -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END STRINGS TAB -->\n\n								<!-- SETTINGS TAB -->\n								<div class="tab-pane" id="tab_1_5">\n									<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n										<!-- START NAME -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n											<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chatWebsite.name" required/>\n											<span data-ng-show="(forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSettings.name.$invalid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END NAME -->\n\n										<!-- START ADDRESS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n											<label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.address" required/>\n											<span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END ADDRESS -->\n\n										<!-- START REMOTE IP -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n											<label class="control-label">{{\'APPLICATION_REMOTE\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="url" name="remote" placeholder="{{\'APPLICATION_REMOTE\' | translate}}" class="form-control" data-ng-model="chatWebsite.remote" required/>\n											<span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END REMOTE IP -->\n\n										<!-- START DESCRIPTION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.description.$touched || forms.formSetting.$submitted) && forms.formSetting.description.$invalid}">\n											<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n											<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chatWebsite.description"/>\n										</div>\n										<!-- END DESCRIPTION -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END SETTINGS TAB -->\n							</div>\n						</div>\n						<div class="col-md-4">\n							<!-- START STATE -->\n							<div class="form-group">\n								<!-- <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label> -->\n								<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n								<ui-select data-ng-model="statePreview.state" name="statePreview" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="statePreview in [\'online\',\'offline\'] | filter: $select.search">\n										<div ng-bind-html="statePreview | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END STATE -->\n							<preview></preview>\n						</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
-a.put("app/chat/website/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-globe"></i>\n					<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{chatWebsite.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/website.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{chatWebsite.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{chatWebsite.address}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.includes(\'main.chat.websites.view.snippet\')}">\n							<a ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SNIPPET\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.chat.websites.view.actions\')}">\n							<a ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/list">\n							<i class="icon-directions"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-globe"></i>\n						<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_WEB_SITE_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$touched && !forms.formSettings.name.$valid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n								<span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ADDRESS -->\n\n							<!-- START REMOTE IP -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remote" placeholder="{{\'APPLICATION_REMOTE\' | translate}}" class="form-control" data-ng-model="item.remote" required/>\n								<span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END REMOTE IP -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.form.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_WEB_SITE_APPEARANCE\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n						<form name="forms.formAppearance" novalidate>\n\n							<!-- START MAIN COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{item.color}}" class="form-control" data-ng-model="item.color" required/>\n								<span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAIN COLOR -->\n\n							<!-- START FOCUS COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{item.color_focus}}" class="form-control" data-ng-model="item.color_focus" required/>\n								<span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FOCUS COLOR -->\n\n							<!-- START BUTTON COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n								<label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{item.color_button}}" class="form-control" data-ng-model="item.color_button" required/>\n								<span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END BUTTON COLOR -->\n\n							<!-- START HEADER SHAPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_SHAPE\' | translate}}</label>\n								<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="item.animation" required/> -->\n								<ui-select data-ng-model="item.header_shape" name="headerShape" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n									<ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n										<div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END HEADER SHAPE -->\n\n							<!-- START ANIMATION TOGGLE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n								<ui-select data-ng-model="item.animation" name="animationToggle" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected  ? \'On\' : \'Off\'}}</ui-select-match>\n									<ui-select-choices repeat="filter in [true,false] | filter: $select.search">\n										<div ng-bind-html="filter ? \'On\' : \'Off\' | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END ANIMATION TOGGLE -->\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_LABELS\' | translate}}" canexit="exitValidation(forms.formLabel.$valid)">\n						<form name="forms.formLabel" novalidate>\n\n							<!-- START HEADER ONLINE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n								<input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="item.header_online"/>\n							</div>\n							<!-- END HEADER ONLINE -->\n\n							<!-- START ONLINE MESSAGE-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n								<input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.online_message"/>\n							</div>\n							<!-- END HEADER ONLINE -->\n\n							<!-- START USERNAME PLACEHOLDER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.username_placeholder"/>\n							</div>\n							<!-- END USERNAME PLACEHOLDER -->\n\n							<!-- START EMAIL PLACEHOLDER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.email_placeholder"/>\n							</div>\n							<!-- END EMAIL PLACEHOLDER -->\n\n							<!-- START START CHAT BUTTON -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n								<label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n								<input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="item.start_chat_button"/>\n							</div>\n							<!-- END START CHAT BUTTON -->\n\n							<!-- START HEADER OFFLINE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n								<input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="item.header_offline"/>\n							</div>\n							<!-- END HEADER OFFLINE -->\n\n							<!-- START OFFLINE MESSAGE-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n								<input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.offline_message"/>\n							</div>\n							<!-- END OFFLINE MESSAGE -->\n\n							<!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.enquiry_message_placeholder"/>\n							</div>\n							<!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n							<!-- START ENQUIRY BUTTON -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n								<input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="item.enquiry_button"/>\n							</div>\n							<!-- END ENQUIRY BUTTON -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_FORMS\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n						<form name="forms.formFunctionality" novalidate>\n\n							<!-- START DOWNLOAD TRANSCRIPT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n								<ui-select data-ng-model="item.download_transcript" name="downloadTranscript" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n									<ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n										<div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END DOWNLOAD TRANSCRIPT -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/dashboard/dashboard.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/dashboard/voice">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n									<!-- <li dropdown>\n											<a href="#" dropdown-toggle>\n													{{ \'APPLICATION_VOICE\' | translate }}\n													<b class=\'caret\'></b>\n											</a>\n											<tree tree=\'voice\'></tree>\n									</li>\n									<li dropdown>\n											<a href="#" dropdown-toggle>\n													{{ \'APPLICATION_MAIL\' | translate }}\n													<b class=\'caret\'></b>\n											</a>\n											<tree tree=\'mail\'></tree>\n									</li> -->\n		                <li data-ng-class="{active: $state.is(\'main.dashboard.voice\')}">\n		                    <a href="/dashboard/voice">\n													<b class=\'icon-earphones-alt\'></b>\n		                        {{ \'APPLICATION_VOICE\' | translate }}\n		                    </a>\n		                    <!-- <tree tree=\'voice\'></tree> -->\n		                </li>\n										<li data-ng-class="{active: $state.is(\'main.dashboard.mail\')}">\n		                    <a href="/dashboard/mail">\n													<b class=\'icon-envelope\'></b>\n		                        {{ \'APPLICATION_MAIL\' | translate }}\n		                    </a>\n		                    <!-- <tree tree=\'mail\'></tree> -->\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/dashboard/mail/mail.html",'<div class="col-md-12">\nThis is the mail view.\n</div>\n'),a.put("app/dashboard/voice/voice.html",'<div class="row" ng-init=\'getQueueStats()\'>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat red-intense">\n      <div class="visual">\n        <i class="fa fa-comments"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.abandonedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ABANDONED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat green-haze">\n      <div class="visual">\n        <i class="fa fa-bar-chart-o"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.completedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_COMPLETED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat purple-plum">\n      <div class="visual">\n        <i class="fa fa-shopping-cart"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.waitCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_WAIT\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat blue-madison">\n      <div class="visual">\n        <i class="fa fa-globe"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.activeCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ACTIVE\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n</div>\n'),a.put("app/fax/account/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="fax_accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/accounts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAccounts([\'name\', \'description\', \'phone\'])" csv-header="[\'Name\', \'Description\', \'Phone\']" field-separator=";" filename="fax_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.faxAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="faxAccountByPage in faxAccountsByPage | filter: $select.search">\n													<div ng-bind-html="faxAccountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAccount, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="phone">{{ \'APPLICATION_PHONE\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="faxAccount in displayedFaxAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="fax_accounts.checked" checklist-value="faxAccount.id"></td>\n					      <td>{{faxAccount.name}}</td>\n								<td>{{faxAccount.description}}</td>\n								<td>{{faxAccount.phone}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/accounts/view/{{faxAccount.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAccount.name,faxAccount.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxAccounts.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No fax account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td></td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="phone" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PHONE\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.faxAccountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.applications.html",'<div class="row" data-ng-init="initApplication()">\n	<div class="col-md-12">\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<!-- START APP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n									<label class="control-label">{{\'APPLICATION_APPLICATION\' | translate}}</label>\n									<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n				            <ui-select-match placeholder="{{\'APPLICATION_APPLICATION\' | translate}}">{{$select.selected | uppercase}}</ui-select-match>\n				            <ui-select-choices repeat="filter in [\'queue\', \'agent\'] | filter: $select.search">\n				              <div ng-bind-html="filter | uppercase | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APP -->\n\n								<!-- START APPADATA -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n									<label class="control-label">{{\'APPLICATION_ARGUMENTS\' | translate}}</label>\n									<ui-select data-ng-model="application.appdata" name="appdata" theme="bootstrap" required>\n				            <ui-select-match placeholder="{{\'APPLICATION_ARGUMENTS\' | translate}}">{{$select.selected.name}}</ui-select-match>\n				            <ui-select-choices repeat="item in items | filter: $select.search">\n				              <div data-ng-bind-html="item.name | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APPADATA -->\n\n								<!-- START TIMEOUT -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n									<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n									<input type="text" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" required>\n									<span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END TIMEOUT -->\n\n								<!-- START INTERVAL -->\n								<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL\' | translate}}</label>\n									<input type="text" name="interval" placeholder="*|*|*|*" class="form-control" data-ng-model="application.interval">\n									<span data-ng-show="(forms.info.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid && forms.info.interval.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div> -->\n								<!-- END INTERVAL -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/fax/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-paper-plane"></i>\n					<a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="account"></i>\n				</li>\n				<li data-ng-show="account">\n					<a href="#">{{ account.name || account.description }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/account.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ account.name || account.description }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ account.phone }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.accounts.view.settings\')}">\n							<a href="/fax/accounts/view/{{account.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.fax.accounts.view.routes\') || $state.is(\'main.fax.accounts.view.applications\')}">\n							<a href="/fax/accounts/view/{{account.id}}/routes">\n							<i class="icon-directions"></i>\n							{{\'APPLICATION_ROUTES\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.routes.html",'<div class="row" data-ng-init="getFaxApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ROUTES\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/fax/accounts/view/{{account.id}}/applications" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n								<!-- <th width="5%">{{ \'APPLICATION_ID\' | translate }}</th> -->\n						    <th>{{\'APPLICATION_APPLICATION\' | translate}}</th>\n						    <th>{{\'APPLICATION_ARGUMENTS\' | translate}}</th>\n								<th>{{\'APPLICATION_TIMEOUT\' | translate}}</th>\n						    <!-- <th>{{\'APPLICATION_INTERVAL\' | translate}}</th> -->\n								<th width="5%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n						<tbody ui-sortable="sortableOptions" data-ng-model="faxApplications">\n					    <tr data-ng-repeat="application in faxApplications | orderBy:\'priority\'">\n								<td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td>\n								<td>{{getAppdata(application.app, application.appdata)}}</td>\n								<td>{{application.timeout}}</td>\n								<!-- <td>{{application.interval}}</td> -->\n					      <td>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app,application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="faxApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/account/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItemFaxAccount()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START TRUNKS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="account.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n										<div data-ng-bind="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START TRUNKS -->\n\n							<!-- START PHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="account.phone" required/>\n								<span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PHONE -->\n\n							<!-- START ECM -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n								<!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="account.ecm" bs-checkbox>{{account.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n								<input\n									bs-switch\n									ng-model="account.ecm"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END ECM -->\n\n							<!-- START FAXHEADER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="account.faxheader" required/>\n								<span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FAXHEADER -->\n\n							<!-- START LOCALID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="account.localid" required/>\n								<span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LOCALID -->\n\n							<!-- START MAXRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n								<ui-select data-ng-model="account.maxrate" name="maxrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="maxrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MAXRATE -->\n\n							<!-- START MINRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n								<ui-select data-ng-model="account.minrate" name="minrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="minrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MINRATE -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/account/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START TRUNKS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="item.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n										<div data-ng-bind="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START TRUNKS -->\n\n							<!-- START PHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="item.phone" required/>\n								<span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PHONE -->\n\n							<!-- START ECM -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n								<!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="item.ecm" bs-checkbox>{{item.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n								<input\n									bs-switch\n									ng-model="item.ecm"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END ECM -->\n\n							<!-- START FAXHEADER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="item.faxheader" required/>\n								<span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FAXHEADER -->\n\n							<!-- START LOCALID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="item.localid" required/>\n								<span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LOCALID -->\n\n							<!-- START MAXRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n								<ui-select data-ng-model="item.maxrate" name="maxrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="maxrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MAXRATE -->\n\n							<!-- START MINRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n								<ui-select data-ng-model="item.minrate" name="minrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="minrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MINRATE -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-settings"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="faxAutomations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="fax_automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.faxAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="faxAutomationByPage in faxAutomationsByPage | filter: $select.search">\n													<div ng-bind-html="faxAutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAutomation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="faxAutomation in displayedFaxAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxAutomations.checked" checklist-value="faxAutomation.id"></td>\n					      <td>{{faxAutomation.name}}</td>\n								<td>{{faxAutomation.description}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(faxAutomation.id, faxAutomation.status)",\n								    bs-switch\n								    ng-model="faxAutomation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/fax/automations/view/{{faxAutomation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAutomation.name, faxAutomation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>{{\'MESSAGE_NO_AVAILABLE_AUTOMATIONS\' | translate}}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.faxAutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{automation.description}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.automations.view.settings\')}">\n							<a href="/fax/automations/view/{{automation.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/fax/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'or\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<div class="tab-pane" id="tab_1_3">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'and\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n											<span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_4">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewAction()">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="action in automation.BusinessActions">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n													<div data-ng-bind="action.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3" data-ng-switch="action.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-4">\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeAction(action.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessActions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid && forms.automation.$valid)">\n						<form name="forms.automation" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n										<span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n										<input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n										<span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<hr>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'or\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-user"></i>\n									<span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.or">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'or\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.or.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'and\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-people"></i>\n									<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.and">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'and\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.and.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'actions\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-magic-wand"></i>\n									<span class="caption-subject">Perform these actions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.actions">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n														<div data-ng-bind="action.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n												<input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4">\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.actions.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add action</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n								</div>\n							</div>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-note"></i>\n						<a href="/fax/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n	<div class="col-md-12" ui-view>\n	</div>\n</div>\n'),a.put("app/fax/inbox/incoming/incoming.html",'<!-- END PAGE HEADER-->\n<div data-ng-init="getRooms()">\n	<!-- <pre>\n		{{faxRooms | json}}\n	</pre> -->\n	<div class="inbox-header">\n		<h1 class="pull-left">Inbox</h1>\n	</div>\n	<div class="inbox-content">\n		<table class="table table-advance" st-table="displayedFaxRooms" st-safe-src="faxRooms">\n			<thead>\n				<tr>\n					<th colspan="8" style="background: #eef4f7; border: none; border-bottom: solid 5px #fff;">\n						<div class="row">\n							<div class="col-md-6">\n								<input type="checkbox" class="mail-checkbox mail-group-checkbox checker" data-ng-model="checked" data-ng-change="switchCheckbox(displayedFaxRooms, checked)">\n								<div class="btn-group">\n									<a data-ng-href="/fax/inbox/compose" class="btn btn-sm blue">{{\'APPLICATION_NEW_MESSAGE\' | translate}} <i class="fa fa-plus"></i></a>\n									<!-- <a class="btn btn-sm blue dropdown-toggle" href="#" data-toggle="dropdown">\n										{{\'APPLICATION_MORE\' | translate}} <i class="fa fa-angle-down"></i>\n									</a> -->\n									<ul class="dropdown-menu">\n										<li>\n											<a href="#" data-ng-click="markAsRead(true)">\n											<i class="icon-paper-plane-open"></i> {{\'APPLICATION_MARK_AS_READ\' | translate}} </a>\n										</li>\n										<li>\n											<a href="#" data-ng-click="markAsRead(false)">\n											<i class="icon-paper-plane"></i> {{\'APPLICATION_MARK_AS_UNREAD\' | translate}} </a>\n										</li>\n										<li class="divider">\n										</li>\n										<li>\n											<a href="#" data-ng-click="deleteMessage()">\n											<i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}} </a>\n										</li>\n									</ul>\n								</div>\n							</div>\n							<div class="col-md-6">\n								<div class="input-group input-medium pull-right">\n									<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n									<span class="input-group-addon btn green" style="cursor: default;">\n										<i class="icon-magnifier" style="color: white;"></i>\n									</span>\n								</div>\n								<ui-select data-ng-model="conf.faxRoomsByPage" theme="bootstrap" style="width: 100px;" class="pull-right margin-right-10">\n									<ui-select-match placeholder="{{ \'APPLICATION_SEARCH\' | translate }}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="p in [10, 20, 35, 50] | filter: $select.search">\n										<span ng-bind-html="p | highlight: $select.search"></span>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n					</th>\n				</tr>\n			</thead>\n			<tbody>\n				<tr data-ng-repeat="faxRoom in displayedFaxRooms | orderBy:\'-updatedAt\'" data-ng-class="{unread: !faxRoom.read}" data-ng-click="go(\'/fax/inbox/room/\' + faxRoom.id, faxRoom.id, \'OPEN\')" class="animate-repeat">\n					<td class="inbox-small-cells" style="border: none;">\n						<input type="checkbox" class="checker" checklist-model="checkedMailMessages.id" checklist-value="faxRoom.id">\n					</td>\n					<!-- <td class="inbox-small-cells" style="border: none;">\n						<i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n					</td> -->\n					<td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n						#{{faxRoom.id}}\n					</td>\n					<!-- <td class="inbox-small-cells" style="border: none;">\n						<i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n					</td> -->\n					<!-- <td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n						{{faxRoom.subject}}\n					</td> -->\n					<td class="view-message" style="cursor:pointer; border:none;">\n					 	{{faxRoom.from}}\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;">\n					 	{{faxRoom.MailAccount.description ? faxRoom.MailAccount.description : faxRoom.MailAccount.name}}\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;" data-ng-switch="faxRoom.status">\n						<span class="badge badge-default" data-ng-class="{\n						\'badge-danger\': faxRoom.status == \'NEW\',\n						\'badge-warning\': faxRoom.status == \'OPEN\',\n						\'badge-info\': faxRoom.status == \'PENDING\',\n						\'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;">\n						<span class="badge badge-success badge-roundless" data-ng-show="faxRoom.User.fullname"> {{faxRoom.User.fullname}} </span>\n						<span class="badge badge-default badge-roundless" data-ng-hide="faxRoom.User.fullname"> {{\'APPLICATION_UNASSIGNED\' | translate}} </span>\n					</td>\n					<td class="view-message text-right" context-menu="menuOptions" style="border: none;">\n						<time is="relative-time" datetime="{{faxRoom.updatedAt}}">\n							April 1, 2014\n						</time>\n					</td>\n				</tr>\n				<tr data-ng-hide="faxRooms.length">\n					<td colspan="6" class="text-center">\n						<i>{{\'MESSAGE_NO_AVAILABLE_MESSAGES\' | translate}}</i>\n					</td>\n				</tr>\n				<tr>\n					<td colspan="8" class="text-center" style="border: none;">\n						<div st-pagination class="pagination" st-items-by-page="conf.faxRoomsByPage" st-displayed-pages="7"></div>\n					</td>\n				</tr>\n			</tbody>\n		</table>\n	</div>\n</div>\n'),
-a.put("app/fax/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n	<div class="portlet light">\n		<!-- PROJECT HEAD -->\n		<div class="portlet-title">\n			<div class="caption" data-ng-show="faxRoom">\n				<i class="icon-bar-chart font-green-sharp hide"></i>\n				<span class="badge badge-default" data-ng-class="{\'badge-error\': faxRoom.status == \'NEW\',\n				\'badge-warning\': faxRoom.status == \'OPEN\',\n				\'badge-info\': faxRoom.status == \'PENDING\',\n				\'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n			</div>\n			<div class="actions" data-ng-show="faxRoom">\n				<div class="btn-group" data-ng-show="Auth.isAdmin()">\n					<a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li data-ng-repeat="agent in agents">\n							<a href="#" data-ng-click="assignAgent(agent.id)">\n							{{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n				<div class="btn-group">\n					<a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_STATUS\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'PENDING\')">\n							{{\'STATUS_PENING\' | translate}} <span class="badge badge-danger">\n							P </span>\n							</a>\n						</li>\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'CLOSED\')">\n							{{\'STATUS_CLOSED\' | translate}} <span class="badge badge-success">\n							C </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n			</div>\n		</div>\n		<!-- end PROJECT HEAD -->\n		<div class="portlet-body">\n			<div class="row">\n				<div data-ng-show="faxRoom" data-ng-class="{\'col-md-7 col-sm-7\': faxRoom}">\n					<div class="scroller" id="faxMessages" style="height: 500px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n						<ul class="chats">\n							<li data-ng-class="{\'in\': faxMessage.status == \'RECEIVED\', \'out\': (faxMessage.status == \'SENT\' || faxMessage.status == \'SENDING\' || faxMessage.status == \'FAILED\' || faxMessage.status == \'NOT SENT\')}" data-ng-repeat="faxMessage in faxRoom.FaxMessages | orderBy:\'createdAt\'">\n							<img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && faxMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<span class="bold">{{\'APPLICATION_FROM\' | translate}}: </span>\n								<span>{{faxMessage.From.fullname}} </span>\n								<span> &#60;{{faxMessage.From.phone}}&#62; </span>\n								<br>\n								<span class="bold">{{\'APPLICATION_TO\' | translate}}: </span>\n								<span>{{faxMessage.To.fullname}} </span>\n								<span> &#60;{{faxMessage.To.phone}}&#62; </span>\n								<br>\n								<span class="todo-tasklist-date">\n									<i class="fa fa-calendar"></i>\n									<time is="relative-time" datetime="{{faxMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<span data-ng-show="faxMessage.status == \'FAILED\' || faxMessage.status == \'SENDING\'" class="badge badge-default" data-ng-class="{\'badge-error\': faxMessage.status == \'FAILED\', \'badge-warning\': faxMessage.status == \'SENDING\'}"> {{faxMessage.status | uppercase}} </span>\n								<br>\n								<br>\n								<span class="body">\n									<div class="wrapper" ng-controller="FaxInboxRoomCtrl" style="max-height:600px; overflow:auto;">\n					          <ng-pdf pdf-url="/api/fax/messages/{{faxMessage.id}}/content" template-url="/assets/plugins/angular-pdf/example/partials/viewer.html" scale="0.5" page=1></ng-pdf>\n					        </div>\n								</span>\n								<br>\n							</div>\n						</li>\n						</ul>\n					</div>\n				</div>\n				<div data-ng-class="{\'col-md-5 col-sm-5\': faxRoom, \'col-md-12 col-sm-12\': !faxRoom}">\n					<form name="forms.compose" data-ng-submit="forms.compose.$valid && sendFax()" class="form-horizontal" novalidate>\n						<!-- TASK HEAD -->\n						<div class="form">\n							<div class="form-group">\n								<div class="col-md-12 col-sm-12">\n									<div class="todo-taskbody-user">\n										<img class="todo-userpic pull-left" data-ng-src="api/users/avatar/{{getCurrentUser().userpic ? getCurrentUser().userpic : \'unknown_avatar\'}}" width="50px" height="50px">\n										<span class="todo-username pull-left">{{ getCurrentUser().fullname }}</span>\n									</div>\n								</div>\n							</div>\n							<!-- END TASK HEAD -->\n\n							<!-- FAX FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_FROM\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_FROM\' | translate}}...">{{$select.selected.name}} - {{$select.selected.phone}}</ui-select-match>\n												<ui-select-choices repeat="faxAccount in faxAccounts | filter: $select.search">\n													<div ng-bind-html="faxAccount.name | highlight: $select.search"></div>\n													<small ng-bind-html="faxAccount.phone | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n\n							<!-- FAX TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_TO\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_TO\' | translate}}...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n\n							<!-- TASK DESC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n								</div>\n							</div>\n							<!-- END TASK DESC -->\n\n							<!-- START ATTACH -->\n							<div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div>\n							<!-- END ATTACH -->\n\n						</div>\n					</form>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n<!-- END TODO CONTENT -->\n'),a.put("app/fax/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="/fax/queues/lis">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="faxQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="fax_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n								<th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate}}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedFaxQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxQueues.checked" checklist-value="queue.id"></td>\n					      <td>{{queue.name}}</td>\n								<td>{{queue.description}}</td>\n								<td>{{queue.strategy | uppercase}}</td>\n								<td>{{queue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/queues/view/{{queue.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name, queue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxQueues.length">\n								<td colspan="6" class="text-center">\n									<i>No available queues</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body" style="width: 50%; margin: 0 auto;">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-paper-plane"></i>\n					<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.queues.view.settings\')}">\n							<a data-ng-href="/fax/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.fax.queues.view.agents\')}">\n							<a data-ng-href="/fax/queues/view/{{queue.id}}/agents">\n							<i class="icon-people"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateFaxQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-paper-plane"></i>\n				<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n							<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END TIMEOUT -->\n\n						<!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STRATEGY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/fax/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/fax/timeline/list"> {{\'APPLICATION_TIMELINE\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				{{\'APPLICATION_TIMELINE\' | translate}}\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-paper-plane font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">{{\'APPLICATION_AT\' | translate}} {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/fax/inbox/room/{{event.FaxRoomId}}">{{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_FAX\' | translate}}</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.FaxRoom.subject ? event.FaxRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/integration/list/list.html",'\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-game-controller"></i>\n					<a href="/integrations/list">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered" data-ng-init="initList()">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-eye font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n				  <span class="btn green-jungle btn-file">\n            <span> <i class="icon-plus"></i> New App </span>\n            <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n          </span>\n          <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedIntegrations" filename="integrations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedIntegrations" st-safe-src="integrations" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<select class="form-control input-small select2me" data-ng-model="integrationsByPage">\n												<option value="10">10</option>\n												<option value="25">25</option>\n												<option value="50">50</option>\n												<option value="{{integrations.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n											</select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th>\n						    <th st-sort="fullname">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="name">{{ \'APPLICATION_FILENAME\' | translate }}</th>\n								<th st-sort="name">{{ \'APPLICATION_VERSION\' | translate }}</th>\n						    <th st-sort="name">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="integration in displayedIntegrations">\n								<td>{{integration.id}}</td>\n								<td>{{integration.name}}</td>\n								<td>{{integration.filename}}</td>\n								<td>{{integration.version}}</td>\n					      <td>{{integration.description}}</td>\n								<td>\n									<span class="btn default btn-xs blue-stripe btn-file">\n				            <span> {{ \'APPLICATION_UPDATE\' | translate }} </span>\n				            <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n				          </span>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(integration.name, integration.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="integrations.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No integrations available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="id" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="filename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FILENAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n						    </td>\n								<td>\n						    </td>\n								<td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="integrationsByPage" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/interval/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-clock"></i>\n					<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-clock font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTERVALS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="intervals.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_INTERVAL\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/intervals/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getIntervals([\'name\'])" csv-header="[\'Name\']" field-separator=";" filename="intervals.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedIntervals" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="3">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.intervalsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="intervalByPage in intervalsByPage | filter: $select.search">\n													<div ng-bind-html="intervalByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(interval, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="interval in displayedIntervals">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="intervals.checked" checklist-value="interval.id"></td>\n								<td>{{interval.name}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(interval.name,interval.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedIntervals.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_INTERVALS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="3" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.intervalsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getInterval()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-clock"></i>\n					<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n					<i data-ng-show="interval" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="interval">\n					<a href="#">{{interval.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/interval.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{interval.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.intervals.view.settings\')}">\n							<a data-ng-href="/intervals/view/{{interval.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.intervals.view.subintervals\') || $state.is(\'main.intervals.view.subinterval\') || $state.is(\'main.intervals.view.subintervals.settings\')}">\n							<a data-ng-href="/intervals/view/{{interval.id}}/subintervals">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_SUBINTERVALS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERVAL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateInterval()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="interval.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/interval/view/view.subinterval.html",'\n<div class="row" data-ng-init="initSubInterval()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.subinterval.name.$valid)">\n            <form name="forms.subinterval" novalidate>\n\n              <!-- START NAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$invalid}">\n                <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="subinterval.name" required/>\n                <span data-ng-show="(forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END NAME -->\n\n							<!-- START TIME -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                <div class="input-group input-large">\n									<fieldset class="pull-left" ng-disabled="splittedInterval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="splittedInterval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n									<fieldset ng-disabled="splittedInterval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="splittedInterval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n									<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="splittedInterval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                </div>\n              </div>\n              <!-- END TIME -->\n\n              <!-- START WEEKDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.wd_from" theme="bootstrap" name="wd_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.wd_to" theme="bootstrap" name="wd_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END WEEKDAY -->\n\n              <!-- START MONTHDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.md_from" theme="bootstrap" name="md_from">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.md_to" theme="bootstrap" name="md_to">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTHDAY -->\n\n              <!-- START MONTH -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.m_from" theme="bootstrap" name="m_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.m_to" theme="bootstrap" name="m_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTH -->\n\n\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n            </form>\n          </wz-step>\n\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.subintervalSettings.html",'\n<div class="row" data-ng-init="getSubInterval()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_SUBINTERVAL_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{subinterval.name}}\n					</div>\n          <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.subinterval.name.$valid)">\n            <form name="forms.subinterval" novalidate>\n\n              <!-- START NAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$invalid}">\n                <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="subinterval.name" required/>\n                <span data-ng-show="(forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END NAME -->\n\n              <!-- START TIME -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                <div class="input-group input-large">\n									<fieldset class="pull-left" ng-disabled="splittedInterval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="splittedInterval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n									<fieldset ng-disabled="splittedInterval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="splittedInterval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n									<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="splittedInterval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                </div>\n              </div>\n              <!-- END TIME -->\n\n              <!-- START WEEKDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.wd_from" theme="bootstrap" name="wd_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.wd_to" theme="bootstrap" name="wd_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END WEEKDAY -->\n\n              <!-- START MONTHDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.md_from" theme="bootstrap" name="md_from">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.md_to" theme="bootstrap" name="md_to">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTHDAY -->\n\n              <!-- START MONTH -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.m_from" theme="bootstrap" name="m_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.m_to" theme="bootstrap" name="m_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTH -->\n\n\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n            </form>\n          </wz-step>\n\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.subintervals.html",'<div ui-view class="profile-content">\n<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SUBINTERVALS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/intervals/view/{{interval.id}}/subinterval" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="subIntervals">\n					    <tr data-ng-repeat="subinterval in subIntervals">\n								<td>{{subinterval.name}}</td>\n								<td>{{subinterval.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/subintervals/settings/{{subinterval.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(subinterval.name+\' interval\',subinterval.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="subIntervals.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_SUBINTERVALS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/interval/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-clock"></i>\n				<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/intervals/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-clock font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INTERVAL\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.interval.$valid)">\n			    <form name="forms.interval" novalidate>\n\n            <!-- START NAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$invalid}">\n              <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n              <span data-ng-show="(forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END NAME -->\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/login/login.html",'<!-- BEGIN LOGO -->\n<div class="logo">\n	<a href="index.html">\n	<img src="assets/images/logo-big.png" alt=""/>\n	</a>\n</div>\n<!-- END LOGO -->\n<!-- BEGIN LOGIN -->\n<div class="content">\n	<!-- BEGIN LOGIN FORM -->\n	<form class="login-form" name="loginForm" data-ng-show="!flagLogin1" data-ng-submit="login(loginForm)" novalidate>\n		<h3 class="form-title">Sign In</h3>\n		<div class="alert alert-danger" data-ng-class="{\'display-hide\': !loginSubmitted || !errorLogin}">\n			<button class="close" data-close="alert"></button>\n			<span>{{ errorLog ? errorLog : \'Enter any username and password.\'}}</span>\n		</div>\n		<div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.name.$invalid}">\n			<label class="control-label">Username</label>\n      <div class="input-icon">\n        <i class="fa fa-user"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="name" ng-model="userLogin.name" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.name.$invalid" class="help-block">Username is required.</span>\n		</div>\n		<div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.password.$invalid}">\n			<label class="control-label">Password</label>\n      <div class="input-icon">\n        <i class="fa fa-lock"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="userLogin.password" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.password.$invalid" class="help-block">Password is required.</span>\n		</div>\n		<div class="form-actions">\n			<button type="submit" class="btn btn-success uppercase">Login</button>\n      <label class="rememberme check">\n        <input type="checkbox"> Remember me\n      </label>\n			<!-- <label class="rememberme check">\n			<input type="checkbox" name="remember" value="1"/>Remember </label> -->\n			<!-- <a href="javascript:;" id="forget-password" class="forget-password">Forgot Password?</a> -->\n		</div>\n		<div class="login-options">\n			<h4>Follow Us on</h4>\n			<ul class="social-icons">\n				<li>\n					<a class="social-icon-color facebook" data-original-title="facebook" href="https://www.facebook.com/xenialab"></a>\n				</li>\n				<li>\n					<a class="social-icon-color twitter" data-original-title="Twitter" href="https://twitter.com/xenialab"></a>\n				</li>\n				<li>\n					<a class="social-icon-color googleplus" data-original-title="Goole Plus" href="#"></a>\n				</li>\n				<li>\n					<a class="social-icon-color linkedin" data-original-title="Linkedin" href="#"></a>\n				</li>\n			</ul>\n		</div>\n	</form>\n</div>\n<div class="copyright">\n	 2016 Â© xCALLY MOTION.\n</div>\n<!-- END LOGIN -->\n'),a.put("app/mail/account/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="#">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailAccounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/accounts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAccounts([\'name\', \'description\', {MailServerIn:\'username\'}])" csv-header="[\'Name\', \'Description\', \'Email Address\']" field-separator=";" filename="mail_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n				  <thead>\n						<tr>\n							<th colspan="6">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.mailAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="mailAccountByPage in mailAccountsByPage | filter: $select.search">\n												<div ng-bind-html="mailAccountByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n					  <tr>\n							<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAccount, checked)" checklist-model checklist-value="id"></th>\n					    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n							<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n							<th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="description"> IMAP</th>\n							<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n					  </tr>\n				  </thead>\n				  <tbody>\n				    <tr data-ng-repeat="mailAccount in displayedMailAccounts">\n							<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAccounts.checked" checklist-value="mailAccount.id"></td>\n				      <td>{{mailAccount.name}}</td>\n							<td>{{mailAccount.description}}</td>\n							<td><a ng-href="mailto:{{mailAccount.MailServerIn.username}}">{{mailAccount.MailServerIn.username}}</a></td>\n							<td>\n								<span class="label label-sm" data-ng-class="mailAccount.MailServerIn.state === \'CONNECTED\' ? \'label-success\' : \'label-danger\'">\n									{{ mailAccount.MailServerIn.state | uppercase }}\n								</span>\n							</td>\n				      <td>\n				        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{mailAccount.id}}/settings">\n									{{ \'APPLICATION_PROFILE\' | translate }}\n				        </a>\n				        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAccount.name, mailAccount.id)">\n									{{ \'APPLICATION_DELETE\' | translate }}\n				        </a>\n				      </td>\n				    </tr>\n						<tr data-ng-hide="displayedMailAccounts.length">\n							<td colspan="6" class="text-center">\n							<i>{{ \'MESSAGE_NO_AVAILABLE_ACCOUNTS\' | translate }}</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td/>\n					    <td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td>\n							<td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td>\n							<!-- <td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="address" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td> -->\n					    <td/>\n							<td/>\n					  </tr>\n						<tr>\n							<td colspan="6" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.mailAccountsByPage.value" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n				  </tfoot>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/mail/account/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/mail/accounts/view/{{account.id}}/actions/wizard" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n								<th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n						    <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n								<th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="mailApplications">\n					    <tr data-ng-repeat="application in mailApplications">\n								<!-- <td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td> -->\n								<td align="center">\n									<span>\n										<i data-ng-class="application.User ? \'icon-user\' : \'icon-docs\'"></i>\n									</span>\n								</td>\n								<td align="center">{{application.timeout}}</td>\n								<td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n								<td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{account.id}}/actions/view/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="mailApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/account/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.settings" ng-submit="updateItem()" novalidate>\n					<!-- START APP -->\n					<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n							<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n							<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n								<div ng-bind-html="app.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END APP -->\n\n					<!-- START HOST -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n						<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END HOST -->\n\n					<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n						<!-- START QUEUE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n							<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n									<div ng-bind-html="queue.name | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END QUEUE -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n						<!-- START AGENT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n								<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n									<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END AGENT -->\n					</div>\n\n					<!-- START INTERVAL_TYPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n							<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n								{{ intType.name | translate }}\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END INTERVAL_TYPE -->\n\n					<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n						<!-- START TIME -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n							<div class="input-group input-large">\n								<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n									<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n								</fieldset>\n								<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n								<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n								<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n							</div>\n						</div>\n						<!-- END TIME -->\n\n						<!-- START ALWAYS -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n							<div class="input-group input-large">\n								<label class="control-label pointer-cursor">\n									<input\n										bs-switch\n										data-ng-model="application.alwaysTime"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n									<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n								</label>\n							</div>\n						</div>\n						<!-- END ALWAYS -->\n\n						<!-- START WEEKDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END WEEKDAY -->\n\n						<!-- START MONTHDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTHDAY -->\n\n						<!-- START MONTH -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTH -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n						<!-- START INTERVALS -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n									{{ interval.name}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVALS -->\n\n					</div>\n					<button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n				</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n						<form name="forms.action" novalidate>\n							<!-- START APP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n									<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n										<div ng-bind-html="app.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APP -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n								<span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n								<!-- START QUEUE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n											<div ng-bind-html="queue.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n								<!-- START AGENT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n									<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n										<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n											<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END AGENT -->\n							</div>\n\n							<!-- START INTERVAL_TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n										{{ intType.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVAL_TYPE -->\n\n							<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n											<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n										</fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n										<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START ALWAYS -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n									<div class="input-group input-large">\n										<label class="control-label pointer-cursor">\n											<input\n												bs-switch\n												data-ng-model="application.alwaysTime"\n												type="checkbox"\n												switch-active="{{ isActive }}"\n												switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n												switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n												switch-on-color="{{ onColor }}"\n												switch-off-color="{{ offColor }}"\n												switch-animate="{{ animate }}"\n												switch-size="{{ size }}"\n												switch-label="{{ label }}"\n												switch-icon="{{ icon }}"\n												switch-radio-off="{{ radioOff }}"\n												switch-label-width="{{ labelWidth }}"\n												switch-handle-width="{{ handleWidth }}">\n											<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n										</label>\n									</div>\n								</div>\n								<!-- END ALWAYS -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n											{{ interval.name}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n\n							<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n						<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="account"></i>\n				</li>\n				<li data-ng-show="account">\n					<a href="#">{{ account.description || account.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/account.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ account.description || account.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.email}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li ng-class="{active: $state.is(\'main.mail.accounts.view.settings\')}">\n							<a href="/mail/accounts/view/{{account.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li ng-class="{active: $state.includes(\'main.mail.accounts.view.actions\')}">\n							<a href="/mail/accounts/view/{{account.id}}/actions/list">\n							<i class="icon-directions"></i>\n							{{\'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">IMAP</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">SMTP</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formInfo" data-ng-submit="forms.formInfo.$valid && updateItemMailAccount()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formInfo.name.$touched || forms.formInfo.$submitted) && forms.formInfo.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="(forms.formInfo.name.$touched || forms.formInfo.$submitted) && forms.formInfo.name.$invalid && forms.formInfo.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START EMAIL -->\n							<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.formInfo.address.$touched || forms.formInfo.$submitted) && forms.formInfo.address.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="address" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="account.address" required/>\n								<span data-ng-show="(forms.formInfo.infoEmail.$touched || forms.formInfo.$submitted) && forms.formInfo.address.$invalid && forms.formInfo.address.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div> -->\n							<!-- END EMAIL -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.formIn" data-ng-submit="forms.formIn.$valid && updateItemMailServerIn()" novalidate>\n							<!-- START PROTOCOL -->\n							<!-- <div class="form-group">\n								<label class="control-label">IMAP/POP3</label>\n								<button type="button" name="protocol" class="btn btn-default form-control" data-ng-model="account.MailServerIn.protocol" bs-checkbox>{{account.MailServerIn.protocol ? \'IMAP\' : \'POP3\'}}</button>\n							</div> -->\n							<!-- END PROTOCOL -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.host" required/>\n								<span data-ng-show="(forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid && forms.formIn.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.username" name="username" required/>\n								<span data-ng-show="(forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid && forms.formIn.username.$error.required"  class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.password" required/>\n								<span data-ng-show="(forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid && forms.formIn.password.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.port" required/>\n								<span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.number" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START MAILBOX -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n								<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.mailbox"/>\n							</div>\n							<!-- END MAILBOX -->\n\n							<!-- START SEARCH FILTER -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n								<ui-select data-ng-model="account.MailServerIn.filter" name="filter" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n										<div ng-bind-html="filter | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<!-- <input type="text" name="filter" placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}" class="form-control" data-ng-model="forms.formIn.form.filter"/> -->\n							</div>\n							<!-- START SEARCH FILTER -->\n\n							<!-- START DELETE -->\n							<div class="form-group" data-ng-show="account.MailServerIn.protocol">\n								<label class="control-label">{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}</label><br>\n								<!-- <button type="button" name="delete"  class="btn btn-default form-control" data-ng-model="account.MailServerIn.delete" btn-checkbox> {{account.MailServerIn.delete ? $translate.instant(\'APPLICATION_YES\') : $translate.instant(\'APPLICATION_NO\') | uppercase}} </button> -->\n								<input\n									bs-switch\n									ng-model="account.MailServerIn.delete"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END DELETE -->\n\n							<!-- START SSL -->\n							<div class="form-group">\n								<label class="control-label">SSL</label><br>\n								<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="account.MailServerIn.ssl" btn-checkbox> {{account.MailServerIn.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n								<input\n									bs-switch\n									ng-model="account.MailServerIn.ssl"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END SSL -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_3">\n						<form name="forms.formOut" data-ng-submit="forms.formOut.$valid && updateItemMailServerOut()" novalidate>\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.host" required/>\n								<span data-ng-show="(forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid && forms.formOut.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.username" required/>\n								<span data-ng-show="(forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid && forms.formOut.username.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.password" required/>\n								<span data-ng-show="(forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid && forms.formOut.password.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.port.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.port" required/>\n								<span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.number" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START SSL -->\n							<div class="form-group">\n								<label class="control-label">SSL</label><br>\n								<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="account.MailServerOut.ssl" btn-checkbox> {{account.MailServerOut.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n								<input\n									bs-switch\n									ng-model="account.MailServerOut.ssl"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END SSL -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
-a.put("app/mail/account/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="info.name" required/>\n									<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="info.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<!-- START EMAIL -->\n								<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid}">\n									<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="email" name="address" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="info.address" required/>\n									<span data-ng-show="(forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid && forms.info.address.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div> -->\n								<!-- END EMAIL -->\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="IMAP" canexit="formValidation(forms.in.$valid)">\n							<form name="forms.in" novalidate>\n								<!-- START PROTOCOL -->\n								<!-- <div class="form-group">\n									<label class="control-label">IMAP/POP3</label>\n									<button type="button" name="protocol" class="btn btn-default form-control" data-ng-model="in.protocol" bs-checkbox>{{in.protocol ? \'IMAP\' : \'POP3\'}}</button>\n								</div> -->\n								<!-- END PROTOCOL -->\n\n								<!-- START HOST -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid}">\n									<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="in.host" required/>\n									<span data-ng-show="(forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid && forms.in.host.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END HOST -->\n\n								<!-- START USERNAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid}">\n									<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="in.username" name="username" required/>\n									<span data-ng-show="(forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid && forms.in.username.$error.required"  class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END USERNAME -->\n\n								<!-- START PASSWORD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="in.password" required/>\n									<span data-ng-show="(forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid && forms.in.password.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PASSWORD -->\n\n								<!-- START PORT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="in.port" required/>\n									<span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n									<span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.number" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PORT -->\n\n								<!-- START MAILBOX -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n									<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="in.mailbox"/>\n								</div>\n								<!-- END MAILBOX -->\n\n								<!-- START SEARCH FILTER -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n									<ui-select data-ng-model="in.filter" name="filter" theme="bootstrap">\n				            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n				            <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n				              <div data-ng-bind="filter | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<!-- <input type="text" name="filter" placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}" class="form-control" data-ng-model="in.filter"/> -->\n								</div>\n								<!-- START SEARCH FILTER -->\n\n								<!-- START DELETE -->\n								<div class="form-group" data-ng-show="in.protocol">\n									<label class="control-label">{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}</label><br>\n									<!-- <button type="button" name="delete"  class="btn btn-default form-control" data-ng-model="in.delete" btn-checkbox> {{in.delete ? $translate.instant(\'APPLICATION_YES\') : $translate.instant(\'APPLICATION_NO\') | uppercase}} </button> -->\n									<input\n										bs-switch\n										ng-model="in.delete"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n								</div>\n								<!-- END DELETE -->\n\n								<!-- START SSL -->\n								<div class="form-group">\n									<label class="control-label">SSL</label><br>\n									<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="in.ssl" btn-checkbox> {{in.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n									<input\n										bs-switch\n										ng-model="in.ssl"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n								</div>\n								<!-- END SSL -->\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n							</form>\n						</wz-step>\n						<wz-step title="SMTP" canexit="formValidation(forms.out.$valid)">\n							<form name="forms.out" novalidate>\n\n								<!-- START HOST -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid}">\n									<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="out.host" required/>\n									<span data-ng-show="(forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid && forms.out.host.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END HOST -->\n\n								<!-- START USERNAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid}">\n									<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="out.username" required/>\n									<span data-ng-show="(forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid && forms.out.username.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END USERNAME -->\n\n								<!-- START PASSWORD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="out.password" required/>\n									<span data-ng-show="(forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid && forms.out.password.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PASSWORD -->\n\n								<!-- START PORT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.port.$touched || forms.out.$submitted) && forms.out.port.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="out.port" required/>\n									<span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n									<span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.number" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PORT -->\n\n								<!-- START SSL -->\n								<div class="form-group">\n									<label class="control-label">SSL</label><br>\n									<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="out.ssl" btn-checkbox> {{out.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n									<input\n										bs-switch\n										ng-model="out.ssl"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n								</div>\n								<!-- END SSL -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n								<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n							</form>\n						</wz-step>\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-settings"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailAutomations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="mail_automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.mailAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="mailAutomationByPage in mailAutomationsByPage | filter: $select.search">\n													<div ng-bind-html="mailAutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAutomation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="mailAutomation in displayedMailAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAutomations.checked" checklist-value="mailAutomation.id"></td>\n					      <td>{{mailAutomation.name}}</td>\n								<td>{{mailAutomation.description}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(mailAutomation.id, mailAutomation.status)",\n								    bs-switch\n								    ng-model="mailAutomation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/mail/automations/view/{{mailAutomation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAutomation.name, mailAutomation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>No available automations</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.mailAutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/mail/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{automation.description}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.automations.view.settings\')}">\n							<a href="/mail/automations/view/{{automation.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'or\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<div class="tab-pane" id="tab_1_3">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'and\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n											<span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_4">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewAction()">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="action in automation.BusinessActions">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n													<div data-ng-bind="action.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3" data-ng-switch="action.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-4">\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeAction(action.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessActions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
-a.put("app/mail/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/mail/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid)">\n						<form name="forms.automation" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n										<span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n										<input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n										<span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<hr>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'or\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-user"></i>\n									<span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.or">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'or\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.or.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'and\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-people"></i>\n									<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.and">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'and\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.and.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'actions\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-magic-wand"></i>\n									<span class="caption-subject">Perform these actions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.actions">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n														<div data-ng-bind="action.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n												<input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4">\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.actions.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add action</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n								</div>\n							</div>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/inbox/compose/compose.html",'<form class="inbox-compose form-horizontal" id="fileupload" enctype="multipart/form-data" data-ng-init="getMessage()">\n	<pre>\n		{{mailAccounts | json}}\n	</pre>\n	<div class="inbox-compose-btn">\n		<button data-ng-click="sendMailMessage()" class="btn blue"><i class="fa fa-check"></i>{{\'APPLICATION_SEND\' | translate}}</button>\n		<button class="btn inbox-discard-btn" data-ng-click="discard()">{{\'APPLICATION_DISCARD\' | translate}}</button>\n		<button class="btn" data-ng-click="saveMessageAsDraft()">{{\'APPLICATION_SAVE_AS_DRAFT\' | translate}}</button>\n		<span class="message-info"><i>{{form.message}}</i></span>\n	</div>\n	<div class="inbox-form-group">\n		<label class="control-label">{{\'APPLICATION_FROM\' | translate}}: </label>\n		<div class="controls">\n			<ui-select data-ng-model="form.body.from" theme="bootstrap">\n        <ui-select-match placeholder="Select an account">{{$select.selected.name}} <{{$select.selected.address}}></ui-select-match>\n        <ui-select-choices repeat="account in mailAccounts | filter: $select.search">\n          <div ng-bind-html="account.name | highlight: $select.search"></div>\n          <small ng-bind-html="account.address | highlight: $select.search"></small>\n        </ui-select-choices>\n      </ui-select>\n		</div>\n	</div>\n	<div class="inbox-form-group mail-to">\n		<label class="control-label">{{\'APPLICATION_TO\' | translate}}: </label>\n		<div class="controls controls-to">\n			<input type="text" class="form-control" name="to" data-ng-model="form.body.to.address">\n			<span class="inbox-cc-bcc">\n			<span class="inbox-cc" data-ng-show="!flagCC" data-ng-click="switchFlagCC()">\n			Cc </span>\n			<span class="inbox-bcc" data-ng-show="!flagBCC" data-ng-click="switchFlagBCC()">\n			{{\'APPLICATION_BCC\' | translate}} </span>\n			</span>\n		</div>\n	</div>\n	<div class="inbox-form-group input-cc" data-ng-class="{\'display-hide\': !flagCC}">\n		<a href="javascript:;" class="close" data-ng-click="switchFlagCC()">\n		</a>\n		<label class="control-label">Cc:</label>\n		<div class="controls controls-cc">\n			<input type="text" name="cc" class="form-control" data-ng-model="form.body.cc.address">\n		</div>\n	</div>\n	<div class="inbox-form-group input-bcc" data-ng-class="{\'display-hide\': !flagBCC}">\n		<a href="javascript:;" class="close" data-ng-click="switchFlagBCC()">\n		</a>\n		<label class="control-label">{{\'APPLICATION_BCC\' | translate}}:</label>\n		<div class="controls controls-bcc">\n			<input type="text" name="bcc" class="form-control" data-ng-model="form.body.bcc.address">\n		</div>\n	</div>\n	<div class="inbox-form-group">\n		<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}: </label>\n		<div class="controls">\n			<input type="text" class="form-control" name="subject" data-ng-model="form.subject">\n		</div>\n	</div>\n	<div class="inbox-form-group">\n		<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html"></div>\n	</div>\n	<div class="inbox-compose-btn">\n		<button data-ng-click="sendMailMessage()" class="btn blue"><i class="fa fa-check"></i>{{\'APPLICATION_SEND\' | translate}}</button>\n		<button class="btn" data-ng-click="discard()">{{\'APPLICATION_DISCARD\' | translate}}</button>\n		<button class="btn" data-ng-click="saveMessageAsDraft()">{{\'APPLICATION_DRAFT\' | translate}}</button>\n	</div>\n</form>\n'),a.put("app/mail/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-note"></i>\n					<a href="/mail/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n	<div class="col-md-12" ui-view>\n	</div>\n</div>\n'),a.put("app/mail/inbox/incoming/incoming.html",'<div class="row inbox">\n	<div class="col-md-12">\n		<div class="inbox-header">\n			<h1 class="pull-left">Inbox</h1>\n			<form class="form-inline pull-right" action="#">\n				<!-- <div class="input-group input-medium">\n					<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search">\n					<span class="input-group-btn">\n					<button type="submit" class="btn green"><i class="fa fa-search"></i></button>\n					</span>\n				</div> -->\n			</form>\n		</div>\n		<div class="inbox-content">\n			<table class="table table-striped table-advance table-hover" st-table="displayedMailRooms" st-pipe="initList">\n				<thead>\n					<tr>\n						<th colspan="9">\n							<input type="checkbox" ng-change="check(null, checked)" checklist-model checklist-value="id">\n							<div class="btn-group">\n								<a data-ng-href="/mail/inbox/compose" class="btn btn-sm blue">\n									<i class="icon-plus"></i> {{\'APPLICATION_NEW_MESSAGE\' | translate}}\n								</a>\n							</div>\n							<div class="btn-group" data-ng-show="mailRooms.checked.length">\n								<a href="#" class="btn btn-sm red" data-ng-click="deleteItems()">\n									<i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}}\n								</a>\n							</div>\n							<div class="input-group input-medium pull-right">\n								<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n								<span class="input-group-addon">\n									<i class="fa fa-search"></i>\n								</span>\n							</div>\n						</th>\n						<!-- <th class="pagination-control" colspan="7"> -->\n							<!-- <span class="pagination-info">\n							1-30 of 789 </span>\n							<a class="btn btn-sm blue">\n							<i class="fa fa-angle-left"></i>\n							</a>\n							<a class="btn btn-sm blue">\n							<i class="fa fa-angle-right"></i>\n							</a> -->\n						<!-- </th> -->\n					</tr>\n				</thead>\n				<tbody>\n					<tr data-messageid="1" data-ng-repeat="mailRoom in displayedMailRooms" class="animate-repeat">\n						<td class="inbox-small-cells">\n							<input type="checkbox" checklist-model="mailRooms.checked" checklist-value="mailRoom.id">\n						</td>\n						<td class="inbox-small-cells" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							#{{mailRoom.id}}\n						</td>\n						<td class="view-message hidden-xs" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n						 {{mailRoom.subject}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							{{mailRoom.from}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							{{mailRoom.MailAccount.description ? mailRoom.MailAccount.description : mailRoom.MailAccount.name || \'APPLICATION_UNKNOWN\' | translate | uppercase}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							<span class="badge badge-success badge-roundless" data-ng-show="mailRoom.User.fullname"> {{mailRoom.User.fullname}} </span>\n							<span class="badge badge-default badge-roundless" data-ng-hide="mailRoom.User.fullname"> UNASSIGNED </span>\n						</td>\n						<td class="view-message" data-ng-switch="mailRoom.status" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							<span class="badge badge-default" data-ng-class="{\n							\'badge-danger\': mailRoom.status == \'NEW\',\n							\'badge-warning\': mailRoom.status == \'OPEN\',\n							\'badge-info\': mailRoom.status == \'PENDING\',\n							\'badge-success\': mailRoom.status == \'CLOSED\'}"> {{mailRoom.status | uppercase}} </span>\n						</td>\n						<td class="view-message inbox-small-cells">\n							<i data-ng-show="mailRoom.attachment" class="fa fa-paperclip"></i>\n						</td>\n						<td class="view-message pull-right">\n							<time is="relative-time" datetime="{{mailRoom.updatedAt}}">\n								April 1, 2014\n							</time>\n						</td>\n					</tr>\n					<tr data-ng-hide="displayedMailRooms.length">\n						<td colspan="9" style="text-align:center;">\n							<i>{{ \'MESSAGE_NO_AVAILABLE_CONVERSATIONS\' | translate }}</i>\n						</td>\n					</tr>\n				</tbody>\n				<tfoot>\n					<tr>\n						<td colspan="9" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.mailRoomsByPage.value" st-displayed-pages="7"></div>\n						</td>\n					</tr>\n				</tfoot>\n			</table>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n	<div class="portlet light">\n		<!-- PROJECT HEAD -->\n		<div class="portlet-title">\n			<div class="caption" data-ng-show="mailRoom">\n				<i class="icon-bar-chart font-green-sharp hide"></i>\n				<span class="badge badge-default" data-ng-class="{\'badge-error\': mailRoom.status == \'NEW\',\n				\'badge-warning\': mailRoom.status == \'OPEN\',\n				\'badge-info\': mailRoom.status == \'PENDING\',\n				\'badge-success\': mailRoom.status == \'CLOSED\'}"> {{mailRoom.status | uppercase}} </span> -\n				<span class="caption-subject font-green-sharp bold uppercase">{{mailRoom.subject}}</span>\n			</div>\n			<div class="actions" data-ng-show="mailRoom">\n				<div class="btn-group" data-ng-show="Auth.isAdmin()">\n					<a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li data-ng-repeat="agent in agents">\n							<a href="#" data-ng-click="assignAgent(agent.id)">\n							{{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n				<div class="btn-group">\n					<a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_SUBMIT\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'PENDING\')">\n							{{ \'STATUS_NEW\' | translate | uppercase }} <span class="badge badge-danger">{{ \'STATUS_NEW\' | translate | uppercase | limitTo : 1 }} </span>\n							</a>\n						</li>\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'CLOSED\')">\n							{{ \'STATUS_CLOSED\' | translate | uppercase }} <span class="badge badge-success">{{ \'STATUS_CLOSED\' | translate | uppercase | limitTo : 1 }} </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n			</div>\n		</div>\n		<!-- end PROJECT HEAD -->\n		<div class="portlet-body">\n			<div class="row">\n				<div data-ng-show="mailRoom" data-ng-class="{\'col-md-7 col-sm-7\': mailRoom}">\n					<div class="scroller" id="mailMessages" style="height: 500px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n						<ul class="chats">\n							<li data-ng-class="{\'in\': mailMessage.status == \'RECEIVED\', \'out\': mailMessage.status == \'SENT\' || mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\'}" data-ng-repeat="mailMessage in mailRoom.MailMessages | orderBy:\'createdAt\'">\n							<img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && mailMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<span class="bold">From: </span>\n								<!-- <span>{{mailMessage.From.fullname}} </span> -->\n								<span>{{mailMessage.from}}</span>\n								<br>\n								<span class="bold">To: </span>\n								<span>{{mailMessage.to}} </span>\n								<br>\n								<span data-ng-show="mailMessage.cc" class="bold">Cc: </span>\n								<span data-ng-show="mailMessage.cc">{{mailMessage.cc}} </span>\n								<br data-ng-show="mailMessage.cc">\n								<span class="todo-tasklist-date">\n									<i class="fa fa-calendar"></i>\n									<time is="relative-time" datetime="{{mailMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<!-- <p data-ng-class="{\'text-danger\': mailMessage.status === \'FAILED\'}">{{mailMessage.status}}</p> -->\n								<br><br>\n								<span class="body" data-ng-bind-html="mailMessage.html || mailMessage.text" style="white-space: pre-wrap;">\n								</span>\n								<br>\n								<div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\n									<strong>{{mailAttachment.fileName}}</strong>\n									<span>\n									{{mailAttachment.length}}B </span>\n									<a target="_self" download="{{mailAttachment.fileName}}" href="api/mail/attachments/{{mailAttachment.id}}">\n										{{ \'APPLICATION_DOWNLOAD\' | translate }}\n									</a>\n								</div>\n							</div>\n						</li>\n						</ul>\n					</div>\n				</div>\n				<div data-ng-class="{\'col-md-5 col-sm-5\': mailRoom, \'col-md-12 col-sm-12\': !mailRoom}">\n					<form name="forms.compose" data-ng-submit="forms.compose.$valid && sendMail()" class="form-horizontal" novalidate>\n						<!-- START HEAD -->\n						<div class="form">\n							<div class="form-group">\n								<div class="col-md-12 col-sm-12">\n									<div class="todo-taskbody-user">\n										<img class="todo-userpic pull-left" data-ng-src="api/users/avatar/{{getCurrentUser().userpic ? getCurrentUser().userpic : \'unknown_avatar\'}}" width="50px" height="50px">\n										<span class="todo-username pull-left">{{ getCurrentUser().fullname }}</span>\n									</div>\n								</div>\n							</div>\n\n							<!-- START FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">From:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n												<ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n												<!-- <ui-select-match placeholder="From...">{{$select.selected.name}} - {{$select.selected.address}}</ui-select-match> -->\n												<ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n													<div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n													<small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END FROM -->\n\n							<!-- FAX TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">To:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n												<ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END TO -->\n\n							<!-- START CC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Cc:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n												<ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="cc in form.cc">\n													{{cc}}\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END CC -->\n\n							<!-- START SUBJECT -->\n							<div data-ng-hide="mailRoom" class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Subject:</label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="Subject..." rows="8" data-ng-model="form.subject">\n											<span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END SUJBECT -->\n\n							<!-- START HTML -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.text.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n										<span data-ng-show="forms.compose.text.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n								</div>\n							</div>\n							<!-- END HTML -->\n\n							<!-- START ATTACH -->\n							<div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div>\n							<!-- END ATTACH -->\n\n						</div>\n					</form>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n<!-- END TODO CONTENT -->\n'),
-a.put("app/mail/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="/square/projects">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedMailQueues">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailQueues.checked" checklist-value="queue.id"></td>\n					      <td>{{queue.name}}</td>\n								<td>{{queue.description}}</td>\n								<td>{{queue.strategy | uppercase}}</td>\n								<td>{{queue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/queues/view/{{queue.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name, queue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailQueues.length">\n								<td colspan="6" class="text-center">\n									<i>No available queues</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="teams.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n					</p>\n				</div>\n				<div  style="width: 50%; margin: 0 auto;">\n					<div class="col-md-9" id="multi-select-team" data-ng-show="teams.length"></div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.queues.view.settings\')}">\n							<a data-ng-href="/mail/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.mail.queues.view.agents\')}">\n							<a data-ng-href="/mail/queues/view/{{queue.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateMailQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">Agent Timeout</label>\n						<input type="number" name="timeout" placeholder="Timeout" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n							<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END TIMEOUT -->\n\n						<!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STRATEGY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{ \'APPLICATION_CONFIRM\' | translate }}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/mail/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n						<th st-sort="agentcalledAt" st-sort-default="reverse">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentringnoanswerAt">{{ \'APPLICATION_UNASWER_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': agent.lastevent === \'called\',\n								\'icon-user-following font-green\': agent.lastevent === \'agent\',\n								\'icon-user-unfollow font-red\': agent.lastevent === \'timeout\',\n								\'icon-user-unfollow font-blue\': agent.lastevent === \'answered_elsewhere\'}"></i>\n							</span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.mailqueuename}}</td>\n						<td>{{agent.fullname}}</td>\n						<td>{{agent.subject}}</td>\n						<td>{{agent.from}}</td>\n						<td>{{agent.accountname}}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectedAt}}" data-ng-show="agent.agentconnectedAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentringnoanswerAt}}" data-ng-show="agent.agentringnoanswerAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n						</td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initMails()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedMails" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n											<div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n						<th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n						<th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n						<th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="session in displayedMails">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n								\'icon-user-following font-green\': session.fullname,\n								\'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n							</span>\n						</td>\n						<td>{{session.uniqueid}}</td>\n						<td>{{session.mailqueuename}}</td>\n						<td>{{session.fullname}}</td>\n						<td>{{session.subject}}</td>\n						<td>{{session.from}}</td>\n						<td>{{session.accountname}}</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailleaveAt}}" data-ng-show="session.mailleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailunmanagedAt}}" data-ng-show="session.mailunmanagedAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedMails.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No sessions available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n						</td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/mail/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n										<li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_SESSIONS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'sessions\'></tree>\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/mail/statistics/statistics.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/agent">{{ \'APPLICATION_MAILS\' | translate }}</a>\n				</li>\n				<li>\n					<a href="#">{{agent.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/statistics.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{agent.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{agent.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.statistics.summary\')}">\n							<a data-ng-href="/mail/statistics/summary">\n							<i class="icon-bar-chart"></i>\n							{{ \'APPLICATION_SUMMARY\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.summary.html",'<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n					<div class="col-md-6">\n						<div class="portlet sale-summary">\n							<div class="portlet-body">\n								<ul class="list-unstyled">\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_INBOX\' | translate }} <i class="fa fa-img-up"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'INBOX\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_SENT\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'SENT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_OUTGOING\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'NOT SENT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_DRAFT\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'DRAFT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_TRASH\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'TRASH\' }).length }} </span>\n									</li>\n								</ul>\n							</div>\n						</div>\n					</div>\n					<div class="col-md-6">\n						<canvas class="chart chart-pie" data="[\n						(mailMessages | filter:{ directory:\'INBOX\' }).length,\n						(mailMessages | filter:{ directory:\'SENT\' }).length,\n						(mailMessages | filter:{ directory:\'NOT SENT\' }).length,\n						(mailMessages | filter:{ directory:\'DRAFT\' }).length,\n						(mailMessages | filter:{ directory:\'TRASH\' }).length]" labels="[\n						$translate.instant(\'APPLICATION_INBOX\'),\n						$translate.instant(\'APPLICATION_SENT\'),\n						$translate.instant(\'APPLICATION_OUTGOING\'),\n						$translate.instant(\'APPLICATION_DRAFT\'),\n						$translate.instant(\'APPLICATION_TRASH\')]" legend="true"></canvas>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-pencil font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_OTHER_INFO\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n					<div class="col-md-6">\n						<div class="portlet sale-summary">\n							<div class="portlet-body">\n								<ul class="list-unstyled">\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_READ\' | translate }} <i class="fa fa-img-up"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ read:\'true\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_UNREAD\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ read:\'false\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_FAVORITE\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ favorite:\'true\' }).length }} </span>\n									</li>\n								</ul>\n							</div>\n						</div>\n					</div>\n					<div class="col-md-6">\n						<canvas class="chart chart-pie" data="[\n						(mailMessages | filter:{ read:\'true\' }).length,\n						(mailMessages | filter:{ read:\'false\' }).length]" labels="[\n						$translate.instant(\'APPLICATION_READ\'),\n						$translate.instant(\'APPLICATION_UNREAD\')]" legend="true"></canvas>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n'),a.put("app/mail/template/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="/square/projects">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-docs"></i>\n						<a href="#">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailTemplates.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEMPLATE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/templates/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailTemplates([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_templates.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailTemplates" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.templatesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in templatesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(template, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<!-- <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th> -->\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="template in displayedMailTemplates">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailTemplates.checked" checklist-value="template.id"></td>\n					      <td>{{template.name}}</td>\n								<td>{{template.description}}</td>\n								<!-- <td>{{template.strategy | uppercase}}</td>\n								<td>{{template.timeout}}</td> -->\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/templates/view/{{template.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(template.name, template.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailTemplates.length">\n								<td colspan="6" class="text-center">\n									<i>No available templates</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<!-- <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/> -->\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.templatesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/template/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="teams.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n					</p>\n				</div>\n				<div  style="width: 50%; margin: 0 auto;">\n					<div class="col-md-9" id="multi-select-team" data-ng-show="teams.length"></div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/template/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initItem()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/mail/templates/list">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n					<i data-ng-show="item" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="item">\n					<a href="#">{{item.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/template.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{item.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.templates.view.settings\')}">\n							<a data-ng-href="/mail/templates/view/{{item.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/template/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.template" data-ng-submit="forms.template.$valid && updateItem()" class="form-horizontal" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.name.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." rows="8" data-ng-model="item.name">\n									<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.description.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="item.description">\n									<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START FROM -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.from.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">From:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<ui-select data-ng-model="item.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n										<ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n											<div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n											<small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="forms.template.from.$invalid && forms.template.$submitted" class="help-block help-block-error">\n					          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					        </span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END FROM -->\n\n					<!-- FAX TO -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.to.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">To:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<ui-select tagging tagging-label="" multiple required data-ng-model="item.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n										<ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n										<ui-select-choices repeat="to in item.to | filter:$select.search">\n											{{to}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="forms.template.to.$invalid && forms.template.$submitted" class="help-block help-block-error">\n					          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					        </span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END TO -->\n\n					<!-- START CC -->\n					<div class="form-group">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">Cc:</label>\n								</div>\n								<div class="col-md-11">\n									<ui-select tagging tagging-label="" multiple data-ng-model="item.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n										<ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n										<ui-select-choices repeat="cc in item.cc">\n											{{cc}}\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END CC -->\n\n					<!-- START SUBJECT -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.subject.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="item.subject">\n									<span data-ng-show="forms.template.subject.$invalid && forms.template.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END SUJBECT -->\n\n					<!-- START HTML -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.text.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="item.html" name="html"></div>\n							<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n								<span data-ng-show="forms.template.text.$invalid && forms.template.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n						</div>\n					</div>\n					<!-- END HTML -->\n\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/template/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-docs"></i>\n				<a href="/mail/templates/list">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n					<form name="forms.template" data-ng-submit="forms.template.$valid && saveTemplate()" class="form-horizontal" novalidate>\n						<!-- START HEAD -->\n						<div class="form">\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.name.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." rows="8" data-ng-model="form.name">\n											<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.description.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="form.description">\n											<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.from.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">From:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n												<ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n												<!-- <ui-select-match placeholder="From...">{{$select.selected.name}} - {{$select.selected.address}}</ui-select-match> -->\n												<ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n													<div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n													<small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.template.from.$invalid && forms.template.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END FROM -->\n\n							<!-- FAX TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.to.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">To:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n												<ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.template.to.$invalid && forms.template.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END TO -->\n\n							<!-- START CC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Cc:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n												<ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="cc in form.cc">\n													{{cc}}\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END CC -->\n\n							<!-- START SUBJECT -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.subject.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="form.subject">\n											<span data-ng-show="forms.template.subject.$invalid && forms.template.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END SUJBECT -->\n\n							<!-- START HTML -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.text.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n										<span data-ng-show="forms.template.text.$invalid && forms.template.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n								</div>\n							</div>\n							<!-- END HTML -->\n\n							<!-- START ATTACH -->\n							<!-- <div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div> -->\n							<!-- END ATTACH -->\n						</div>\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n					</form>\n			  </wz-step>\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{ \'APPLICATION_CONFIRM\' | translate }}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
-a.put("app/mail/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/mail/timeline/list"> Timeline</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				Timeline\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-envelope font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/main/main.html",'<!-- BEGIN HEADER -->\n<div data-ng-include="\'components/header/header.html\'" data-ng-controller="HeaderController" class="page-header navbar navbar-fixed-top">\n</div>\n<!-- END HEADER -->\n\n<div class="clearfix">\n</div>\n<!-- BEGIN CONTAINER -->\n<div class="page-container" data-ng-init="initMain()">\n\n  <!-- BEGIN SIDEBAR -->\n  <div data-ng-include="\'components/sidebar/sidebar.html\'" data-ng-controller="SidebarController" class="page-sidebar-wrapper">\n  </div>\n  <!-- END SIDEBAR -->\n\n  <!-- BEGIN CONTENT -->\n  <div class="page-content-wrapper">\n    <div class="page-content">\n\n      <!-- BEGIN PAGE CONTENT -->\n      <!-- <toaster-container></toaster-container> -->\n      <div ui-view class=""></div>\n      <!-- END PAGE CONTENT  -->\n\n    </div>\n  </div>\n  <!-- END CONTENT -->\n\n  <!-- BEGIN QUICK SIDEBAR -->\n  <a href="javascript:;" class="page-quick-sidebar-toggler"><i class="icon-close"></i></a>\n  <div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper">\n  </div>\n  <!-- END QUICK SIDEBAR -->\n\n</div>\n<!-- END CONTAINER -->\n\n<!-- BEGIN FOOTER -->\n<div data-ng-include="\'components/footer/footer.html\'" data-ng-controller="FooterController" class="page-footer">\n</div>\n<!-- END FOOTER -->\n\n<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->\n<!-- BEGIN CORE PLUGINS -->\n<!--[if lt IE 9]>\n<script src="../../assets/global/plugins/respond.min.js"></script>\n<script src="../../assets/global/plugins/excanvas.min.js"></script>\n<![endif]-->\n\n<!-- END JAVASCRIPTS -->\n'),a.put("app/main/template.queryBuilderView.html",'\n		<div class="alert alert-warning alert-group">\n				<div class="row">\n						<ui-select data-ng-model="group.boolean" theme="bootstrap" class="col-md-2" data-ng-if="group.type == \'CONDITION\'">\n							<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n							<ui-select-choices repeat="bool.name as bool in booleans| filter: $select.search">\n								<div ng-bind-html="bool.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<button ng-click="addCondition(group.type)" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_\'+group.type | translate}}</button>\n						<button ng-click="addGroup(group.type)" data-ng-if="group.type == \'CONDITION\' && group.main" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_GROUP\' | translate}}</button>\n						<button ng-click="removeGroup()" data-ng-if="group.type == \'CONDITION\' && !group.main" class="btn btn-danger col-md-2 left-margin" ><span class="glyphicon glyphicon-minus-sign"></span> {{\'APPLICATION_REMOVE_GROUP\' | translate}}</button>\n				</div>\n				<div class="group-conditions">\n					<!-- <pre>\n						{{group | json}}\n					</pre> -->\n						<div ng-repeat="rule in group.rules | orderBy:\'index\'" class="condition">\n								<div ng-switch="rule.hasOwnProperty(\'group\')">\n										<div ng-switch-when="true">\n												<query-builder group="rule.group" fields="fields" operators="operators" properties="properties"></query-builder>\n										</div>\n										<div ng-switch-default="ng-switch-default">\n												<div class="row">\n															<ui-select data-ng-model="rule.field" theme="bootstrap" class="col-md-2">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="field in fields | filter: $select.search">\n																	<div ng-bind-html="field.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n															<ui-select data-ng-model="rule.operator" theme="bootstrap" class="col-md-2 left-margin" data-ng-if="group.type == \'CONDITION\' && rule.field">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="operator.value as operator in operators[rule.field.operators]| filter: $select.search">\n																	<div ng-bind-html="operator.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n															<div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'input\'">\n																<input type="text" ng-model="rule.data" class="form-control"/>\n															</div>\n															<div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'number\'">\n																<input type="number" ng-model="rule.data" class="form-control"/>\n															</div>\n															<ui-select ng-if="rule.field && rule.field.propertyField==\'select\'" data-ng-model="rule.data" class="col-md-2 left-margin" theme="bootstrap">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="property.value as property in properties[rule.field.value]| filter: $select.search">\n																	<div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n															<button ng-click="removeCondition($index)" class="btn btn-danger remove-condition col-md-1 left-margin"><span class="glyphicon glyphicon-minus-sign"></span></button>\n												</div>\n										</div>\n								</div>\n						</div>\n				</div>\n		</div>\n'),a.put("app/market/market.html",'<div class="row" data-ng-init="getProject()">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/market">Market Place</a>\n          </li>\n        </ul>\n			</div>\n		</div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n    <!-- Our Integration -->\n    <div class="headline">\n      <h3>Our Integrations</h3>\n    </div>\n    <div class="row thumbnails">\n      <div class="col-md-3">\n        <div class="our-integrations">\n          <h3> Zendesk <small> Xenialab s.r.l</small></h3>\n          <img src="https://d3kjp0zrek7zit.cloudfront.net/uploads/product/image/574/large_detail_1406764757.png" alt="Zendesk" class="img-responsive"/>\n          <div class="integration-info">\n            <p>\n               Allows your customer care to manage professional Asterisk call center solutions...\n            </p>\n            <div class="pull-right">\n                <a href="#" class="btn btn-xs green-meadow">\n									Install 1.0.0 <i class="fa fa-download"></i>\n                </a>\n                <a href="#" class="btn btn-xs grey-cascade">\n									More <i class="fa fa-link"></i>\n                </a>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class="col-md-3">\n        <div class="our-integrations">\n          <h3> SalesForce <small> Xenialab s.r.l</small></h3>\n          <img src="http://501partners.com/wp-content/uploads/SF-300x300.png" alt="Salesforce" class="img-responsive"/>\n          <div class="integration-info">\n            <p>\n               xCALLY provides a new seamless CTI integration with Salesforce, CRM leader solution....\n            </p>\n            <div class="pull-right">\n                <a href="#" class="btn btn-xs green-meadow">\n									Install 1.0.1 <i class="fa fa-download"></i>\n                </a>\n                <a href="#" class="btn btn-xs grey-cascade">\n									More <i class="fa fa-link"></i>\n                </a>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class="col-md-3">\n        <div class="our-integrations">\n          <h3> Desk.com <small> Xenialab s.r.l</small></h3>\n          <img src="http://a470.phobos.apple.com/us/r1000/088/Purple/v4/d5/5a/f3/d55af305-cbb5-fc52-dd09-5b69f979b551/mzl.fiyydcmj.png" alt="desk.com" class="img-responsive"/>\n          <div class="integration-info">\n            <p>\n               The new xCALLY â Desk Integration ensures a proper Case will be displayed on the....\n            </p>\n            <div class="pull-right">\n                <a href="#" class="btn btn-xs green-meadow">\n									Install 1.1.4 <i class="fa fa-download"></i>\n                </a>\n                <a href="#" class="btn btn-xs grey-cascade">\n									More <i class="fa fa-link"></i>\n                </a>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <!--/thumbnails-->\n    <!-- //End Meer Our Team -->\n  </div>\n</div>\n'),a.put("app/motionbar/motionbar.chat.html",'<div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper"></div>\n'),a.put("app/sound/list/list.html",'<div class="page-bar">\n  <ul class="page-breadcrumb">\n    <li>\n      <i class="icon-rocket"></i>\n      <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n      <i class="fa fa-angle-right"></i>\n    </li>\n    <li>\n      <i class="icon-music-tone-alt"></i>\n      <a href="#">{{ \'APPLICATION_SOUNDS\' | translate }}</a>\n    </li>\n  </ul>\n  <div class="page-toolbar">\n  </div>\n</div>\n<!-- END PAGE HEADER-->\n<!-- BEGIN PAGE CONTENT-->\n<!-- Audio Portlets -->\n<div class="headline">\n  <h3><i class="icon-music-tone-alt sounds-title-icon"></i> {{ \'APPLICATION_SOUNDS\' | translate }}</h3>\n</div>\n<div class="portlet light bg-inverse">\n  <div class="portlet-title collapsible" ng-click="isCollapsed = !isCollapsed">\n    <div class="caption">\n      <i class="icon-puzzle font-red-flamingo"></i>\n      <span class="caption-subject bold font-red-flamingo uppercase">\n      {{\'APPLICATION_FILE_UPLOAD\' | translate}} </span>\n    </div>\n    <div class="tools">\n      <a href="" ng-class="{\'collapse\': !isCollapsed, \'expand\' : isCollapsed}">\n      </a>\n      <a href="" class="fullscreen">\n      </a>\n    </div>\n  </div>\n  <div class="portlet-body" ng-slide-down="!isCollapsed">\n    <div class="row" nv-file-drop="" uploader="uploader" filters="queueLimit, customFilter">\n    	<div class="col-md-4">\n    		<div class="portlet light bordered">\n    			<div class="portlet-title">\n    				<div class="caption font-green-sharp">\n    					<i class="icon-settings font-green-sharp"></i>\n    					<span class="caption-subject bold uppercase">{{\'APPLICATION_SELECT_FILES\' | translate}}</span>\n    					<span class="caption-helper hide"></span>\n    				</div>\n    				<div class="actions">\n    				</div>\n    			</div>\n    			<div class="portlet-body">\n    				<div ng-show="uploader.isHTML5">\n    					<div class="file-drop-zone margin-bottom-20" nv-file-over="" uploader="uploader" over-class="file-drop-zone-over">\n    						Base drop zone\n    					</div>\n    				</div>\n    				<span class="btn default btn-file">\n    				<span class="fileinput-new">\n    				{{\'APPLICATION_FILE_UPLOAD\' | translate}}</span>\n    				<input type="file" nv-file-select="" uploader="uploader" />\n    				</span>\n    				<span class="btn default btn-file">\n    				<span class="fileinput-new">\n    				{{\'APPLICATION_MULTI_FILE_UPLOAD\' | translate}}</span>\n    				<input type="file" nv-file-select="" uploader="uploader" multiple  /><br/>\n          </span>\n          <p>\n            </br>\n            {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>wav, mp3, gsm, ogg</b>.\n          </p>\n          <p>\n            {{ \'MESSAGE_MAXIMUM_SOUND_UPLOAD_SIZE\' | translate }} <b>15 Mb</b>.\n          </p>\n    			</div>\n    		</div>\n    	</div>\n    	<div class="col-md-8">\n    		<div class="portlet light bordered">\n    			<div class="portlet-title">\n    				<div class="caption font-green-sharp">\n    					<i class="icon-settings font-green-sharp"></i>\n    					<span class="caption-subject bold uppercase">{{\'APPLICATION_UPLOAD_QUEUE\' | translate}}</span>\n    					<span class="caption-helper">{{\'APPLICATION_QUEUE_LENGTH\' | translate}}: {{ uploader.queue.length }}</span>\n    				</div>\n    				<div class="actions">\n    				</div>\n    			</div>\n    			<div class="portlet-body">\n    				<div class="table-scrollable table-scrollable-borderless">\n    					<table class="table table-hover table-light">\n    						<thead>\n    							<tr class="uppercase">\n    								<th width="50%">{{\'APPLICATION_NAME\' | translate}}</th>\n    								<th ng-show="uploader.isHTML5">{{\'APPLICATION_SIZE\' | translate}}</th>\n    								<th ng-show="uploader.isHTML5">{{\'APPLICATION_PROGRESS\' | translate}}</th>\n    								<th>{{\'APPLICATION_STATUS\' | translate}}</th>\n    								<th>{{\'APPLICATION_MESSAGE\' | translate}}</th>\n    								<th>{{\'APPLICATION_ACTIONS\' | translate}}</th>\n    							</tr>\n    						</thead>\n    						<tbody>\n    							<tr ng-repeat="item in uploader.queue">\n    								<td><strong>{{ item.file.name }}</strong></td>\n    								<td ng-show="uploader.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>\n    								<td ng-show="uploader.isHTML5">\n    									<div class="progress progress-sm" style="margin-bottom: 0;">\n    										<div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': item.progress + \'%\' }"></div>\n    									</div>\n    								</td>\n    								<td class="text-center">\n    									<span ng-show="item.isSuccess" class="text-success"><i class="glyphicon glyphicon-ok"></i></span>\n    									<span ng-show="item.isCancel" class="text-info"><i class="glyphicon glyphicon-ban-circle"></i></span>\n    									<span ng-show="item.isError" class="text-danger"><i class="glyphicon glyphicon-remove"></i></span>\n    									<span ng-show="item.isUploading" class="text-info"><i class="glyphicon glyphicon-upload"></i></span>\n    								</td>\n    								<td class="text-center">\n    									<span ng-show="item.responseMessage" class="text-danger">{{item.responseMessage}}</span>\n    								</td>\n    								<td nowrap>\n    									<button type="button" class="btn btn-success btn-xs" ng-click="item.upload()" ng-disabled="item.isReady || item.isUploading || item.isSuccess">\n    									<span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD\' | translate}}\n    									</button>\n    									<button type="button" class="btn btn-warning btn-xs" ng-click="item.cancel()" ng-disabled="!item.isUploading">\n    									<span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL\' | translate}}\n    									</button>\n    									<button type="button" class="btn btn-danger btn-xs" ng-click="item.remove()">\n    									<span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE\' | translate}}\n    									</button>\n    								</td>\n    							</tr>\n    						</tbody>\n    					</table>\n    				</div>\n    				<div>\n    					<p>{{\'APPLICATION_UPLOAD_QUEUE_PROGRESS\' | translate}}:</p>\n    					<div class="progress progress-sm" style="">\n    						<div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': uploader.progress + \'%\' }"></div>\n    					</div>\n    				</div>\n    				<button type="button" class="btn btn-success btn-s" ng-click="uploader.uploadAll()" ng-disabled="!uploader.getNotUploadedItems().length">\n    				<span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD_ALL\' | translate}}\n    				</button>\n    				<button type="button" class="btn btn-warning btn-s" ng-click="uploader.cancelAll()" ng-disabled="!uploader.isUploading">\n    				<span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL_ALL\' | translate}}\n    				</button>\n    				<button type="button" class="btn btn-danger btn-s" ng-click="uploader.clearQueue()" ng-disabled="!uploader.queue.length">\n    				<span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE_ALL\' | translate}}\n    				</button>\n    			</div>\n    		</div>\n    	</div>\n    </div>\n  </div>\n</div>\n<div class="row thumbnails" data-ng-init="initList()">\n  <div class="row" ng-show="sounds.length == 0">\n    <div class="col-md-12 page-404">\n      <div class="details">\n        <h3>{{ \'MESSAGE_NO_SOUNDS\' | translate }}</h3>\n        <p>\n          <a href="/">\n          {{ \'MESSAGE_RETURN_HOME\' | translate }} </a>\n          {{ \'MESSAGE_OR_UPLOAD_SOUND_FILE\' | translate }}\n        </p>\n      </div>\n    </div>\n  </div>\n  <div class="audio-portlet-wrapper animate-repeat" ng-repeat="sound in sounds">\n    <div class="audio-portlet">\n      <div class="audio-portlet-title"><a href="#" editable-text="sound.display_name" onbeforesave="updateAudio(sound.id,{display_name : $data})">{{ sound.display_name || "Empty" }}</a></div>\n      <img src="../assets/images/note_placeholder.png" alt="" class="img-responsive"/>\n      <div class="file-info">\n        <div class="audio-tag-wrapper">\n          <audio controls ng-src="{{getSecureSrc(audioSources[sound.id])}}" preload="none">\n            {{ \'MESSAGE_AUDIO_NOT_SUPPORTED\' | translate }}\n          </audio>\n        </div>\n        <p id="description_div">\n          <a href="#" editable-text="sound.description" onbeforesave="updateAudio(sound.id,{description : $data})">{{ sound.description || "Empty" }}</a>\n        </p>\n        <p class="float-right">\n            <button class="btn btn-xs green-meadow" tooltip-html-unsafe="<ul class=\'list-unstyled\'><li><b>Format : </b>{{sound.original_format}}</li><li><b>Duration : </b>{{sound.original_duration | date: \'mm:ss\'}}</li><li><b>Channels : </b>{{sound.original_channelCount}}</li><li><b>Bitrate : </b>{{sound.original_bitRate/1024}} kbs</li><li><b>Sample Rate : </b>{{sound.original_sampleRate/1000}} KHz</li></ul>"><i class="icon-list"></i></button>\n            <a class="btn btn-xs blue-hoki" href="{{getSecureDownloadSrc(audioSources[sound.id])}}" download="{{sound.name+\'.\'+sound.original_format}}" target="_self" tooltip="Download"><i class="icon-cloud-download"></i></a>\n            <button class="btn btn-xs red-sunglo" ng-click="delete(sound.display_name, sound.id)" tooltip="Delete"><i class="icon-close" ></i></button>\n        </p>\n      </div>\n    </div>\n  </div>\n</div>\n<!-- End Audio Portlets -->\n'),a.put("app/sound/sound.html","<!-- BEGIN PAGE CONTENT-->\n<div ui-view></div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/square/odbc/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ODBCS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Odbcs.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ODBC\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/square/odbcs/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getOdbcs([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_odbcs.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedOdbcs" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.odbcsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="odbcByPage in odbcsByPage | filter: $select.search">\n													<div ng-bind-html="odbcByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(odbc, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="odbc in displayedOdbcs" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="odbc.defaultEntry" type="checkbox" checklist-model="Odbcs.checked" checklist-value="odbc.id"></td>\n								<td>{{odbc.name}}</td>\n					      <td>{{odbc.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/square/odbcs/view/{{odbc.id}}/settings" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(odbc.name,odbc.id)" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedOdbcs.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ODBCS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.odbcsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getOdbc()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n					<i data-ng-show="odbc" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="odbc">\n					<a href="#">{{odbc.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/odbc.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{odbc.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.square.odbcs.view.settings\')}">\n							<a data-ng-href="/square/odbcs/view/{{odbc.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_ODBC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateOdbc()" novalidate>\n\n							<!-- START NAME -->\n				      <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n				        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n				        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="odbc.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n				        </span>\n				      </div>\n				      <!-- END NAME -->\n\n							<!-- START DSN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="odbc.dsn" required/>\n								<span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DSN -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="odbc.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/square/odbc/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/square/odbcs/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_ODBC\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.odbc.$valid)">\n			    <form name="forms.odbc" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DSN -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="item.dsn" required/>\n							<span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END DSN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
-a.put("app/square/project/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n        <li>\n          <i class="fa fa-slack"></i>\n          <a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n        </li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_PROJECTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Projects.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROJECT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/square/projects/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getProjects([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_projects.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedProjects" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.projectsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="projectByPage in projectsByPage | filter: $select.search">\n													<div ng-bind-html="projectByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="project in displayedProjects" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="project.defaultEntry" type="checkbox" checklist-model="Projects.checked" checklist-value="project.id"></td>\n								<td>{{project.name}}</td>\n					      <td>{{project.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/square/projects/view/{{project.id}}" data-ng-class="{\'disabled\': project.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(project.name,project.id)" data-ng-class="{\'disabled\': project.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedProjects.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.projectsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="fa fa-superscript"></i>\n						<a href="/square/projects">{{ \'APPLICATION_CALLYSQUARE\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="fa fa-slack"></i>\n						<a href="/square/projects">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n          <li>\n						<a ng-href="/square/projects/view/{{squareProject.id}}">{{squareProject.name}}</a>\n          </li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n		<div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/square/project/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/square/projects/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_PROJECT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.project.$valid)">\n			    <form name="forms.project" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/team/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-shield"></i>\n						<a href="#">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-shield font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEAMS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="teams.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEAM\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/teams/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTeams([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="teams.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTeams" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.teamsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="teamByPage in teamsByPage | filter: $select.search">\n													<div ng-bind-html="teamByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="team in displayedTeams" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="teams.checked" checklist-value="team.id"></td>\n					      <td>{{team.name}}</td>\n								<td>{{team.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/teams/view/{{team.id}}/settings" data-ng-class="{\'disabled\': team.defaultEntry}">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(team.name, team.id)" data-ng-class="{\'disabled\': team.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n              <tr data-ng-hide="displayedTeams.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No teams available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.teamsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/team/view/view.agents.html",'<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n			<!-- GENERAL TAB -->\n				<!-- BEGIN PORTLET-->\n					<!-- BEGIN FORM-->\n					<form action="index.html" class="form-horizontal form-row-seperated">\n						<div class="form-body">\n							<div class="form-group last">\n								<div class="col-md-9" id="multi-select-team">\n								</div>\n							</div>\n						</div>\n					</form>\n					<!-- END FORM-->\n				<!-- END PORTLET-->\n			<!-- END GENERAL TAB -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/team/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-shield"></i>\n					<a href="/teams/list">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{team.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/team.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{team.name}}\n					</div>\n\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.teams.view.settings\')}">\n							<a data-ng-href="/teams/view/{{team.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.teams.view.agents\')}">\n							<a data-ng-href="/teams/view/{{team.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/team/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n			</div>\n\n			<div class="portlet-body">\n				<!-- PERSONAL INFO TAB -->\n				<div>\n\n					<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="team.name" required/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="team.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</form>\n				</div>\n				<!-- END PERSONAL INFO TAB -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/team/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-shield"></i>\n						<a href="/teams/list">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n          <li>\n						<i class="icon-user-following"></i>\n						<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div id="team" class="row" data-ng-init="getAgents()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEAM\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_TEAM_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n						<form name="forms.info" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trigger/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bulb"></i>\n						<a href="#">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Triggers.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRIGGER\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/triggers/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTriggers([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="triggers.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTriggers" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.TriggersByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="TriggerByPage in TriggersByPage | filter: $select.search">\n													<div ng-bind-html="TriggerByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Trigger, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="Trigger in displayedTriggers">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Triggers.checked" checklist-value="Trigger.id"></td>\n					      <td>{{Trigger.name}}</td>\n								<td>{{Trigger.description}}</td>\n								<td>{{Trigger.channel | capitalize}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(Trigger.id, Trigger.status)",\n								    bs-switch\n								    ng-model="Trigger.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/triggers/view/{{Trigger.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Trigger.name, Trigger.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTriggers.length">\n								<td colspan="6" class="text-center">\n									<i>No available triggers</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.TriggersByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trigger/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView();getProperties();">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bulb"></i>\n					<a href="/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="trigger"></i>\n				</li>\n				<li data-ng-show="trigger">\n					<a href="#">{{ trigger.description || trigger.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/trigger.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ trigger.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ trigger.description }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.triggers.view.settings\')}">\n							<a href="/triggers/view/{{trigger.id}}/settings">\n							<i class="icon-bulb"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/trigger/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<!-- <pre>\n					{{conditionsData.query | json}}\n				</pre>\n				<pre>\n					{{actionsData.query | json}}\n				</pre> -->\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTrigger()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trigger.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trigger.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- <pre>\n						{{conditionsFilter | json}}\n					</pre> -->\n\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$triggers.operators"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[trigger.channel]"></query-builder>\n							</div>\n						</div>\n\n						<input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateTrigger()"/>\n					</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/trigger/wizard/wizard.html",'\n<div class="row" data-ng-init="getProperties()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bulb"></i>\n					<a href="/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n						<form name="forms.general" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name"/ required>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n					</wz-step>\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}">\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<div class="form-group"  >\n									<label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n										<ui-select-choices repeat="channel in $triggers.channels | filter: $select.search">\n											<div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$triggers.operators"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-link"></i>\n					<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-link font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRUNKS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="trunks.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRUNK\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/trunks/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTrunks([\'name\', \'host\', \'context\', \'description\'])" csv-header="[\'Name\', \'Host\', \'Context\', \'Description\']" field-separator=";" filename="trunks.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTrunks" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.trunksByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="trunkByPage in trunksByPage | filter: $select.search">\n													<div ng-bind-html="trunkByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(trunk, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="host">{{ \'APPLICATION_HOST\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="trunk in displayedTrunks" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="trunks.checked" checklist-value="trunk.id"></td>\n								<td>{{trunk.name}}</td>\n                <td>{{trunk.host}}</td>\n								<td>{{trunk.context}}</td>\n					      <td>{{trunk.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/trunks/view/{{trunk.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(trunk.name,trunk.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTrunks.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="host" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_HOST\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.trunksByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrunk()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-link"></i>\n					<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n					<i data-ng-show="trunk" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="trunk">\n					<a href="#">{{trunk.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/trunk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{trunk.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.trunks.view.settings\')}">\n							<a data-ng-href="/trunks/view/{{trunk.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_TRUNK\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTrunk()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trunk.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<div class="row">\n								<div class="col-md-6">\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="trunk.host" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_SECRET\' | translate}}</label>\n								<input type="password" name="secret" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="trunk.secret">\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SECRET -->\n\n							<!-- START CONFIRM SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rsecret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONFIRM_SECRET\' | translate}}</label>\n								<input type="password" name="rsecret" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="trunk.rsecret" nx-equal="trunk.secret"/>\n								<span data-ng-show="forms.general.$submitted && (forms.general.rsecret.$invalid || forms.general.rsecret.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONFIRM SECRET -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START CALLERID -->\n							<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLERID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="callerid" placeholder="{{\'APPLICATION_CALLERID\' | translate}}" class="form-control" data-ng-model="trunk.callerid" required/>\n								<span data-ng-show="(forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div> -->\n							<!-- END CALLERID -->\n\n							<!-- START TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.type" name="type" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'user\',\'peer\',\'friend\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TYPE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TYPE -->\n\n							<!-- START DTMFMODE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DTMFMODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.dtmfmode" name="dtmfmode" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'rfc2833\', \'info\', \'shortinfo\', \'inband\',\'auto\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DTMFMODE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DTMFMODE -->\n\n						</div>\n						<div class="col-md-6">\n\n							<!-- START DEFAULT USER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT_USER\' | translate}}" class="form-control" data-ng-model="trunk.defaultuser" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n								</span>\n								<span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DEFAULT USER -->\n\n							<!-- START NAT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.nat" name="nat" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_NAT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAT -->\n\n							<!-- START QUALIFY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUALIFY\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.qualify" name="qualify" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_QUALIFY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUALIFY -->\n\n							<!-- START ALLOW -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ALLOW_CODEC\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.allow" name="allow" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'g723\',\'gsm\',\'ulaw\',\'alaw\',\'g726\',\'g722\',\'g729\',\'ilbc\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_ALLOW_CODEC\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ALLOW -->\n\n							<!-- START INSECURE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INSECURE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.insecure" name="insecure" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'port\',\'invite\',\'very\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_INSECURE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INSECURE -->\n\n							<!-- START CALLLIMIT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.call-limit.$touched || forms.general.$submitted) && forms.general.call-limit.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLLIMIT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" min="0" name="call-limit" placeholder="{{\'APPLICATION_CALLLIMIT\' | translate}}" class="form-control" data-ng-model="trunk[\'call-limit\']"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_CALLLIMIT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.call-limit.$touched || forms.general.$submitted) && forms.general.call-limit.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLLIMIT -->\n\n						</div>\n					</div>\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trunk.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateTrunk()" novalidate>\n							<div class="row">\n								<div class="col-md-6">\n							<!-- START LIMITONPEERS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.limitonpeers.$touched || forms.advanced.$submitted) && forms.advanced.limitonpeers.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LIMITONPEERS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.limitonpeers" name="limitonpeers" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_LIMITONPEERS\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.limitonpeers.$touched || forms.advanced.$submitted) && forms.advanced.limitonpeers.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LIMITONPEERS -->\n\n							<!-- START REGISTRY -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n								<input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="trunk.registry"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n								</span>\n							</div>\n							<!-- END REGISTRY -->\n\n							<!-- START DIRECTMEDIA -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DIRECTMEDIA\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.directmedia" name="directmedia" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\', \'no\', \'nonat\', \'update\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DIRECTMEDIA\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DIRECTMEDIA -->\n\n							<!-- START CALLCOUNTER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLCOUNTER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.callcounter" name="callcounter" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_CALLCOUNTER\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLCOUNTER -->\n\n							<!-- START FROMDOMAIN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromdomain.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FROMDOMAIN\' | translate}}</label>\n								<input type="text" name="fromdomain" placeholder="{{\'APPLICATION_FROMDOMAIN\' | translate}}" class="form-control" data-ng-model="trunk.fromdomain" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_FROMDOMAIN\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromdomain.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FROMDOMAIN -->\n\n							<!-- START FROMUSER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromuser.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FROMUSER\' | translate}}</label>\n								<input type="text" name="fromuser" placeholder="{{\'APPLICATION_FROMUSER\' | translate}}" class="form-control" data-ng-model="trunk.fromuser" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_FROMUSER\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromuser.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FROMUSER -->\n\n						</div>\n						<div class="col-md-6">\n\n							<!-- START OUTBOUNDPROXY -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.outboundproxy.$invalid}">\n								<label class="control-label">{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}</label>\n								<input type="text" name="outboundproxy" placeholder="{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}" class="form-control" data-ng-model="trunk.outboundproxy" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_OUTBOUNDPROXY\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.outboundproxy.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END OUTBOUNDPROXY -->\n\n							<!-- START USEREQPHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USEREQPHONE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.usereqphone" name="usereqphone" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_USEREQPHONE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USEREQPHONE -->\n\n							<!-- START TRUSTRPID -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUSTRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.trustrpid" name="trustrpid" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TRUSTRPID\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRUSTRPID -->\n\n							<!-- START SENDRPID -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_SENDRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.sendrpid" name="sendrpid" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_SENDRPID\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SENDRPID -->\n\n							<!-- START ENCRYPTION -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENCRYPTION\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.encryption" name="encryption" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_ENCRYPTION\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ENCRYPTION -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}</label>\n								<input type="number" min="0" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="trunk.port"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_PORT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START TRANSPORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRANSPORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.transport" name="transport" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'udp\',\'wss\',\'ws\',\'tcp\',\'tls\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TRANSPORT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRANSPORT -->\n\n						</div>\n					</div>\n					<!-- START OTHER FIELDS-->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_OTHER_FIELDS\' | translate}}</label>\n						<textarea type="text" name="otherFields" placeholder="{{\'APPLICATION_OTHER_FIELDS\' | translate}}" class="form-control" data-ng-model="trunk.otherFields"></textarea>\n						<span class="help-block">\n							{{ \'DESCRIPTION_TRUNK_OTHER_FIELDS\' | translate }}\n						</span>\n					</div>\n					<!-- END OTHER FIELDS -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
-a.put("app/trunk/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard()">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-link"></i>\n				<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-link font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_TRUNK\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.name.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START ROLE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.role.$touched || forms.general.$submitted) && forms.general.role.$invalid}">\n							<label class="control-label">{{\'APPLICATION_USAGE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.role" name="role" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.value}}</ui-select-match>\n								<ui-select-choices repeat="type.key as type in types | filter: $select.search">\n									<div ng-bind-html="type.value | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_ROLE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.general.role.$touched || forms.general.$submitted) && forms.general.role.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ROLE -->\n\n						<!-- START HOST -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END HOST -->\n\n						<!-- START PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n							<label class="control-label">{{\'APPLICATION_SECRET\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.secret" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PASSWORD -->\n\n						<!-- START CONFIRM PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CONFIRM_SECRET\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.secret" required/>\n							<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CONFIRM PASSWORD -->\n\n						<!-- START DEFAULT USER -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n							<label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT\' | translate}} {{\'APPLICATION_USER\' | translate}}" class="form-control" data-ng-model="item.defaultuser" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END DEFAULT USER -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<button class="btn green-haze" type="submit" ng-click="next(true)">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_ADVANCED\' | translate}}" canexit="exitValidation(forms.advanced.$valid)">\n					<form name="forms.advanced" novalidate>\n\n						<!-- START REGISTRY -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n							<input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="item.registry"/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n							</span>\n						</div>\n						<!-- END REGISTRY -->\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/update/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-cloud-download"></i>\n					<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-cloud-download font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_UPDATES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<!-- <div class="btn-update" data-ng-show="updates.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-update">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_UPDATE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/updates/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div> -->\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getUpdates([\'name\', \'fullname\', \'email\'])" csv-header="[\'Username\', \'Fullname\', \'Email\']" field-separator=";" filename="updates.csv">\n						<i class="icon-reload"></i>\n					</a>\n				</div>\n			</div>\n			<div class="portlet-body" data-ng-init="initList()">\n				<!-- BEGIN TABLE -->\n					<table st-table="displayedUpdates" st-safe-src="updates" class="table table-striped table-bordered table-hover">\n						<div class="table-responsive">\n						  <thead>\n								<tr>\n									<th st-sort="message">{{ \'APPLICATION_MESSAGE\' | translate }}</th>\n									<th>{{ \'APPLICATION_DATE\' | translate }}</th>\n									<th class="small-cells"></th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="update in displayedUpdates">\n									<td>\n										{{update.message | truncate: 30 : \'...\': true}}\n									</td>\n									<td>\n										<time is="relative-time" datetime="{{update.date}}">\n											April 1, 2014\n										</time>\n									</td>\n									<td>\n						        <a class="btn default btn-xs blue-stripe" data-ng-href="/agents/view/{{agent.id}}/account">\n											{{ \'APPLICATION_PROFILE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="displayedUpdates.length">\n									<td colspan="9" style="text-align:center;">\n										<i>No agents available</i>\n									</td>\n								</tr>\n						  </tbody>\n						  <tfoot>\n								<tr>\n									<td colspan="1">\n										<div class="input-icon right">\n											<i class="fa fa-search"></i>\n											<input st-search="message" placeholder="{{ \'APPLICATION_MESSAGE\' | translate | lowercase}}" class="form-control" type="search"/>\n										</div>\n									<td colspan="9"></td>\n							  </tr>\n						    <tr>\n						      <td colspan="10" class="text-center">\n										<div class="pagination" st-pagination st-items-by-page="conf.updatesByPage.value" st-displayed-pages="7"></div>\n						      </td>\n						    </tr>\n						  </tfoot>\n						</div>\n					</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/update/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin() || update.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && update.id === Auth.getCurrentUser().id}">\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane" data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="update.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="update.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="update.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START INTERNAL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="update.internal" required disabled/>\n								<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERNAL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin()" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											{{ \'APPLICATION_REMOVE\' | translate }}\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											{{ \'APPLICATION_CONFIRM\' | translate }}\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin() || update.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && update.id === Auth.getCurrentUser().id}" id="tab_1_3">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.reNewPwd" nx-equal="update.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/update/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-people"></i>\n					<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{update.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{update.userpic ? update.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- START SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{update.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{update.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.updates.view.account\')}">\n							<a data-ng-href="/updates/view/{{update.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/update/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-people"></i>\n				<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/updates/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" ng-init="getFirstFreeInternal();">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_UPDATE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/updates/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/updates/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n						<!-- START INTERNAL -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<div class="input-group">\n							<input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/updates/validate/internal"/>\n							<span class="input-group-addon">\n								<input type="checkbox" data-ng-model="item.internalEnabled">\n							</span>\n							</div>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERNAL -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n					<form name="forms.voice" novalidate>\n\n						<!-- START ACCOUNTCODE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_ACCOUNTCODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="accountcode" placeholder="{{\'APPLICATION_ACCOUNTCODE\' | translate}}" class="form-control" data-ng-model="item.accountcode" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ACCOUNTCODE -->\n\n						<!-- START TRANSPORT -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n							<ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n						    	{{transport}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n							</span>\n						</div>\n						<!-- END TRANSPORT -->\n\n						<!-- START HOST -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END HOST -->\n\n						<!-- START NAT -->\n						<!-- <div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_NAT\' | translate}}</label>\n							<ui-select multiple ng-model="item.nat" name="nat" theme="bootstrap" ng-disabled="disabled">\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$item}}</ui-select-match>\n								<ui-select-choices repeat="nat in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n									{{nat}}\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n							</span>\n						</div> -->\n\n						<!-- END NAT -->\n\n						<!-- START TYPE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$invalid}">\n							<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$select.selected}}</ui-select-match>\n								<ui-select-choices repeat="type in [\'friend\', \'user\', \'peer\'] | filter: $select.search">\n									<div ng-bind-html="type | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END TYPE -->\n\n						<!-- START CODEC -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n							<ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n						    	{{allow}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n							</span>\n						</div>\n						<!-- END CODEC -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
-a.put("app/user/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-eye font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_USERS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="users.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_USER\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/users/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getUsers([\'name\', \'fullname\', \'email\'])" csv-header="[\'Username\', \'Fullname\', \'Email\']" field-separator=";" filename="users.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table id="table" st-table="displayedUsers" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.usersByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="userByPage in usersByPage | filter: $select.search">\n													<div ng-bind-html="userByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(user, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="name">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n						    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="role">{{ \'APPLICATION_ROLE\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="user in displayedUsers" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="users.checked" checklist-value="user.id"></td>\n								<td>{{user.fullname}}</td>\n					      <td>{{user.name}}</td>\n					      <td><a ng-href="mailto:{{user.email}}">{{user.email}}</a></td>\n								<td>{{user.role}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/users/view/{{user.id}}/account">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(user.fullname, user.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedUsers.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No users available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="role" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_ROLE\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.usersByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/user/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-ng-show="Auth.isAdmin() || user.id === getCurrentUser().id" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="user.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="user.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="user.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											<span> {{ \'APPLICATION_REMOVE\' | translate }} </span>\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											<span> {{ \'APPLICATION_CONFIRM\' | translate }} </span>\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" id="tab_1_3" data-ng-show="Auth.isAdmin() || user.id === getCurrentUser().id">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.reNewPwd" nx-equal="user.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n						<!-- <form action="#">\n							<div class="form-group">\n								<label class="control-label">Current Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="form-group">\n								<label class="control-label">New Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="form-group">\n								<label class="control-label">Re-type New Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="margin-top-10">\n								<a href="#" class="btn green-haze">Change Password </a>\n								<a href="#" class="btn default">Cancel </a>\n							</div>\n						</form> -->\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/user/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{user.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{user.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{user.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.users.view.account\')}">\n							<a data-ng-href="/users/view/{{user.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/user/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-eye"></i>\n				<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/users/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_USER\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/users/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/users/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/variable/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_VARIABLE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.variable" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.variable.name.$touched || forms.variable.$submitted) && forms.variable.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.variable.name.$touched || forms.variable.$submitted) && forms.variable.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.variable.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/variable/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/variables/list">{{ \'APPLICATION_VARIABLES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VARIABLES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Variables.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_VARIABLE\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVariables([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="variables.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedVariables" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.variablesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="variableByPage in variablesByPage | filter: $select.search">\n													<div ng-bind-html="variableByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(variable, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="variable in displayedVariables" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="variable.defaultEntry" type="checkbox" checklist-model="Variables.checked" checklist-value="variable.id"></td>\n								<td>{{variable.name}}</td>\n					      <td>{{variable.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/variables/view/{{variable.id}}/settings" data-ng-class="{\'disabled\': variable.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(variable.name,variable.id)" data-ng-class="{\'disabled\': variable.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVariables.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_VARIABLES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.variablesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/variable/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVariable()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/variables/list">{{ \'APPLICATION_VARIABLES\' | translate }}</a>\n					<i data-ng-show="variable" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="variable">\n					<a href="#">{{variable.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/variable.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{variable.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.variables.view.settings\')}">\n							<a data-ng-href="/variables/view/{{variable.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/variable/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VARIABLE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVariable()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="variable.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="variable.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/context/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONTEXTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="voiceContexts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTEXT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/contexts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVoiceContexts([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="voice_contexts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedContexts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.contextsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="contextByPage in contextsByPage | filter: $select.search">\n													<div ng-bind-html="contextByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(context, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="context in displayedVoiceContexts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="context.defaultEntry" type="checkbox" checklist-model="voiceContexts.checked" checklist-value="context.id"></td>\n								<td>{{context.name}}</td>\n					      <td>{{context.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/contexts/view/{{context.id}}/settings" data-ng-class="{\'disabled\': context.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(context.name,context.id)" data-ng-class="{\'disabled\': context.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVoiceContexts.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_CONTEXTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.contextsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/context/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getContext()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n					<i data-ng-show="context" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="context">\n					<a href="#">{{context.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/context.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{context.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.contexts.view.settings\')}">\n							<a data-ng-href="/voice/contexts/view/{{context.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/context/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONTEXT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceContext()" novalidate>\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="context.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/context/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/voice/contexts/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_CONTEXT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.context.$valid)">\n			    <form name="forms.context" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.context.name.$touched || forms.context.$submitted) && forms.context.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.context.name.$touched || forms.context.$submitted) && forms.context.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/moh/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-music-tone"></i>\n					<a href="/voice/mohs/list">{{ \'APPLICATION_MOHS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-music-tone font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_MOHS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mohs.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_MOH_CLASS\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/mohs/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMohs([\'name\', \'directory\', \'sort\', \'description\'])" csv-header="[\'Name\', \'Directory\', \'Sort\', \'Description\']" field-separator=";" filename="musiconholds_classes.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMohs" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.mohsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="mohByPage in mohsByPage | filter: $select.search">\n													<div ng-bind-html="mohByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(moh, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                <th st-sort="directory">{{ \'APPLICATION_PATH\' | translate }}</th>\n                <th st-sort="sort">{{ \'APPLICATION_SORT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="moh in displayedMohs" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mohs.checked" checklist-value="moh.id" data-ng-hide="moh.defaultEntry"></td>\n								<td>{{moh.name}}</td>\n                <td>{{moh.directory}}</td>\n								<td>{{moh.sort | capitalize}}</td>\n					      <td>{{moh.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-class="{\'disabled\': moh.defaultEntry}" data-ng-href="/voice/mohs/view/{{moh.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-class="{\'disabled\': moh.defaultEntry}" data-ng-click="deleteItem(moh.name,moh.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMohs.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_MOHS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="directory" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PATH\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="sort" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SORT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.mohsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.addFiles.html",'\n<div class="row" data-ng-init="getSounds()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_MOH\' | translate }} {{ \'APPLICATION_ADD_FILES\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="soundList.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n					</p>\n				</div>\n            <form name="forms.general" data-ng-submit="(item.sounds.length > 0) && addMohs()" data-ng-show="soundList.length" novalidate>\n\n              <!-- START SOUNDS -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0}">\n                <label class="control-label">{{\'APPLICATION_SOUNDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <ui-select multiple data-ng-model="item.sounds" theme="bootstrap" name="sounds" required>\n                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n                  <ui-select-choices repeat="sound.id as sound in soundList | filter: $select.search">\n                    {{sound.display_name}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="(forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END OPTIONS -->\n\n							<input type="submit" class="btn green-haze" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.audios.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getAudioFiles()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AUDIOS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="audioFiles">\n						<a class="btn green-jungle " href="/voice/mohs/view/{{moh.id}}/add" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_ADD_FILES\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="audioFiles">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_FOLDER_DOES_NOT_EXIST\' | translate }}\n					</p>\n				</div>\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover" data-ng-show="audioFiles">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th width="30%">{{ \'APPLICATION_PREVIEW\' | translate }}</th>\n								<th width="10%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="audioFiles">\n					    <tr data-ng-repeat="audiofile in audioFiles">\n								<td>{{audiofile}}</td>\n								<td>\n									<audio controls ng-src="{{getSecureSrc(audioSources[audiofile])}}" preload="none">\n				            Your browser does not support the audio tag.\n				          </audio></td>\n					      <td>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(audiofile,audiofile)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="audioFiles.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AUDIOFILES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/moh/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMoh()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-music-tone"></i>\n					<a href="/voice/mohs/list">{{ \'APPLICATION_MOH_CLASS\' | translate }}</a>\n					<i data-ng-show="moh" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="moh">\n					<a href="#">{{moh.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/moh.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{moh.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.mohs.view.settings\')}">\n							<a data-ng-href="/voice/mohs/view/{{moh.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.mohs.view.audios\') || $state.is(\'main.voice.mohs.view.add\')}">\n							<a data-ng-href="/voice/mohs/view/{{moh.id}}/audios">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_AUDIOS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_MOH_CLASS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceMoh()" novalidate>\n\n	            <!-- START PATH -->\n	            <div class="form-group" >\n	              <label class="control-label">{{\'APPLICATION_PATH\' | translate}}</label>\n	              <input type="text" name="path" class="form-control" data-ng-model="moh.directory" disabled/>\n	            </div>\n	            <!-- END PATH -->\n\n	            <!-- START SORT -->\n	            <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n	              <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n	              <ui-select data-ng-model="moh.sort" theme="bootstrap" name="sort" required>\n	                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n	                <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n	                  {{$translate.instant(sort.name)}}\n	                </ui-select-choices>\n	              </ui-select>\n	              <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n	                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n	              </span>\n	            </div>\n	            <!-- END SORT -->\n\n	            <!-- START DESCRIPTION -->\n				      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n				        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n				        <textarea type="text" name="description" class="form-control" data-ng-model="moh.description"/></textarea>\n								<span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n				        </span>\n				      </div>\n				      <!-- END DESCRIPTION -->\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
-a.put("app/voice/moh/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard();getContexts();">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-music-tone"></i>\n				<a href="/voice/mohs/list">{{ \'APPLICATION_MOHS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-music-tone font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_MOH_CLASS\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.name.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n            <!-- START SORT -->\n            <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n              <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <ui-select data-ng-model="item.sort" theme="bootstrap" name="sort" required>\n                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n                  {{$translate.instant(sort.name)}}\n                </ui-select-choices>\n              </ui-select>\n              <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div> -->\n            <!-- END SORT -->\n\n            <!-- START DESCRIPTION -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n			        <textarea type="text" name="description" class="form-control" data-ng-model="item.description"/></textarea>\n							<span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/queue/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="queues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getQueues([\'name\', \'description\', \'strategy\', \'context\'])" csv-header="[\'Name\', \'Description\', \'Strategy\', \'Context\']" field-separator=";" filename="queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.voiceQueuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="voiceQueueByPage in voiceQueuesByPage | filter: $select.search">\n													<div ng-bind-html="voiceQueueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="name"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="queues.checked" checklist-value="queue.name"></td>\n								<td>{{queue.name}}</td>\n					      <td>{{queue.description}}</td>\n					      <td>{{queue.strategy}}</td>\n								<td>{{queue.context}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/queues/view/{{queue.name}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name,queue.name)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedQueues.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div class="pagination" st-pagination st-items-by-page="conf.voiceQueuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="note note-warning" data-ng-hide="teams.length">\n				<h4 class="block">Warning!</h4>\n				<p>\n					 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n				</p>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.queues.view.settings\')}">\n							<a data-ng-href="/voice/queues/view/{{queue.name}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.queues.view.agents\')}">\n							<a data-ng-href="/voice/queues/view/{{queue.name}}/agents">\n							<i class="icon-people"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_QUEUE_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();getMohs();getSounds();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceQueue()" novalidate>\n							<div class="row">\n								<div class="col-md-6">\n							<!-- START STRATEGY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n								<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n									<ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n										<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n				      <!-- END STRATEGY -->\n\n							<!-- START MOH -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MOH\' | translate}}</label>\n								<ui-select data-ng-model="queue.musiconhold" name="musiconhold" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="musiconhold.name as musiconhold in voiceMohs | filter: $select.search">\n										<div ng-bind-html="musiconhold.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_VOICE_MOH\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MOH -->\n\n							<!-- START TIMEOUT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" min="0" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="queue.timeout" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_TIMEOUT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TIMEOUT -->\n\n							<!-- START MAXLEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXLEN\' | translate}}</label>\n								<input type="number" min="0" name="maxlen" placeholder="{{\'APPLICATION_MAXLEN\' | translate}}" class="form-control" data-ng-model="queue.maxlen" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MAXLEN\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAXLEN -->\n\n							<!-- START RETRY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RETRY\' | translate}}</label>\n								<input type="number" min="0" name="retry" placeholder="{{\'APPLICATION_RETRY\' | translate}}" class="form-control" data-ng-model="queue.retry" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RETRY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RETRY -->\n\n						</div>\n						<div class="col-md-6">\n							<!-- START WRAPUPTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WRAPUPTIME\' | translate}}</label>\n								<input type="number" min="0" name="wrapuptime" placeholder="{{\'APPLICATION_WRAPUPTIME\' | translate}}" class="form-control" data-ng-model="queue.wrapuptime" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_WRAPUPTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END WRAPUPTIME -->\n\n							<!-- START WEIGHT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WEIGHT\' | translate}}</label>\n								<input type="number" min="0" name="weight" placeholder="{{\'APPLICATION_WEIGHT\' | translate}}" class="form-control" data-ng-model="queue.weight" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_WEIGHT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END WEIGHT -->\n\n							<!-- START JOINEMPTY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$invalid}">\n								<label class="control-label">{{\'APPLICATION_JOINEMPTY\' | translate}}</label>\n								<ui-select multiple data-ng-model="queue.joinempty" name="joinempty" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_JOINEMPTY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END JOINEMPTY -->\n\n							<!-- START LEAVEWHENEMPTY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LEAVEWHENEMPTY\' | translate}}</label>\n								<ui-select multiple data-ng-model="queue.leavewhenempty" name="leavewhenempty" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_LEAVEWHENEMPTY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LEAVEWHENEMPTY -->\n\n							<!-- START ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.announce" name="announce" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in sounds | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE -->\n						</div>\n					</div>\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"></textarea>\n					</div>\n					<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.announce" data-ng-submit="forms.announce.$valid && updateVoiceQueue()" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n							<!-- START PERIODIC_ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="queue.periodic_announce" name="periodic_announce" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in periodicAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PERIODIC_ANNOUNCE -->\n						</div>\n					</div>\n							<div class="row">\n								<div class="col-md-6">\n							<p><h3>{{\'APPLICATION_SETTINGS\' | translate}}</h3></p>\n							<!-- START ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="announce_frequency" placeholder="{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.announce_frequency" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_FREQUENCY -->\n\n							<!-- START MIN_ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="min_announce_frequency" placeholder="{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.min_announce_frequency" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MIN_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MIN_ANNOUNCE_FREQUENCY -->\n\n							<!-- START PERIODIC_ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="periodic_announce_frequency" placeholder="{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.periodic_announce_frequency"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PERIODIC_ANNOUNCE_FREQUENCY -->\n\n							<!-- START RANDOM_PERIODIC_ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RANDOM_PERIODIC_ANNOUNCE\' | translate}}</label>\n								<ui-select data-ng-model="queue.random_periodic_announce" name="random_periodic_announce" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RANDOM_PERIODIC_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RANDOM_PERIODIC_ANNOUNCE -->\n\n							<!-- START ANNOUNCE_HOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_HOLDTIME\' | translate}}</label>\n								<ui-select data-ng-model="queue.announce_holdtime" name="announce_holdtime" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'once\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n									</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_HOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_HOLDTIME -->\n\n							<!-- START ANNOUNCE_POSITION -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION\' | translate}}</label>\n								<ui-select data-ng-model="queue.announce_position" name="announce_position" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'limit\',\'more\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_POSITION -->\n\n							<!-- START ANNOUNCE_POSITION_LIMIT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}</label>\n								<input type="number" min="0" name="announce_position_limit" placeholder="{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}" class="form-control" data-ng-model="queue.announce_position_limit"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION_LIMIT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_POSITION_LIMIT -->\n\n							<!-- START REPORTHOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REPORTHOLDTIME\' | translate}}</label>\n								<ui-select data-ng-model="queue.reportholdtime" name="reportholdtime" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_REPORTHOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END REPORTHOLDTIME -->\n\n						</div>\n							<div class="col-md-6">\n								<p><h3>{{\'APPLICATION_SOUNDS\' | translate}}</h3></p>\n								<!-- START QUEUE_REPORTHOLD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE_REPORTHOLD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="queue.queue_reporthold" name="queue_reporthold" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n										<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n											<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_QUEUE_REPORTHOLD\' | translate }}\n									</span>\n									<span data-ng-show="(forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE_REPORTHOLD -->\n\n								<!-- START QUEUE_YOUARENEXT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE_YOUARENEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="queue.queue_youarenext" name="queue_youarenext" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n										<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n											<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_QUEUE_YOUARENEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE_YOUARENEXT -->\n\n							<!-- START QUEUE_THEREARE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_THEREARE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_thereare" name="queue_thereare" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_THEREARE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_THEREARE -->\n\n							<!-- START QUEUE_CALLSWAITING -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_CALLSWAITING\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_callswaiting" name="queue_callswaiting" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_CALLSWAITING\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_CALLSWAITING -->\n\n							<!-- START QUEUE_HOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_HOLDTIME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_holdtime" name="queue_holdtime" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_HOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_HOLDTIME -->\n\n							<!-- START QUEUE_MINUTES -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_MINUTES\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_minutes" name="queue_minutes" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MINUTES\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_MINUTES -->\n\n							<!-- START QUEUE_MINUTE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_MINUTE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_minute" name="queue_minute" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MINUTE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_MINUTE -->\n\n							<!-- START QUEUE_SECONDS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_SECONDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_seconds" name="queue_seconds" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_SECONDS\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_SECONDS -->\n\n							<!-- START QUEUE_THANKYOU -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_THANKYOU\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_thankyou" name="QUEUE_THANKYOU" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_THANKYOU\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_THANKYOU -->\n\n						</div>\n					</div>\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<div class="tab-pane" id="tab_1_3">\n						<form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateVoiceQueue()" novalidate>\n\n							<div class="row">\n								<div class="col-md-6">\n\n							<!-- START AUTOPAUSE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTOPAUSE\' | translate}}</label>\n								<ui-select data-ng-model="queue.autopause" name="autopause" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'all\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_AUTOPAUSE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END AUTOPAUSE -->\n\n							<!-- START RINGINUSE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RINGINUSE\' | translate}}</label>\n								<ui-select data-ng-model="queue.ringinuse" name="ringinuse" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RINGINUSE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RINGINUSE -->\n\n							<!-- START MEMBER_DELAY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MEMBER_DELAY\' | translate}}</label>\n								<input type="number" min="0" name="memberdelay" placeholder="{{\'APPLICATION_MEMBER_DELAY\' | translate}}" class="form-control" data-ng-model="queue.memberdelay" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MEMBER_DELAY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MEMBER_DELAY -->\n						</div>\n							<div class="col-md-6">\n\n							<!-- START TIMEOUTRESTART -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUTRESTART\' | translate}}</label>\n								<ui-select data-ng-model="queue.timeoutrestart" name="timeoutrestart" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_TIMEOUTRESTART\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TIMEOUTRESTART -->\n\n							<!-- START MONITOR_FORMAT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MONITOR_FORMAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.monitor_format" name="monitor_format" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="monFormat.value as monFormat in monitorFormats | filter: $select.search">\n										<div ng-bind-html="monFormat.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MONITOR_FORMAT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MONITOR_FORMAT -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}</label>\n								<ui-select data-ng-model="queue.context" name="context" theme="bootstrap">\n									<ui-select-match allow-clear placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n						</div>\n					</div>\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
-a.put("app/voice/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-layers"></i>\n				<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/voice/queues/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.queue.$valid)">\n			    <form name="forms.queue" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.queue.name.$touched || forms.queue.$submitted) && forms.queue.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.queue.name.$touched || forms.queue.$submitted) && forms.queue.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.queue.strategy.$touched || forms.queue.$submitted) && forms.queue.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n							</span>\n							<span data-ng-show="(forms.queue.strategy.$touched || forms.queue.$submitted) && forms.queue.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n			      <!-- END STRATEGY -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n	 <div ng-show="selected">Selection from a modal: {{ selected }}</div>\n		<!-- BEGIN TABLE -->\n			<table st-table="displayedGroups" st-safe-src="groups" class="table table-striped table-bordered table-hover">\n				<div class="table-responsive">\n				  <thead>\n						<tr>\n							<th colspan="10">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n												<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<!-- <div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div> -->\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="memebername" colspan="3">{{ \'APPLICATION_AGENT\' | translate }}</th>\n					    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_LOGIN\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_PAUSE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_INCOMING_CALL\' | translate }}</th>\n							<th>{{ \'APPLICATION_SERVED\' | translate }}</th>\n							<th colspan="2"></th>\n					  </tr>\n				  </thead>\n					<tbody>\n				    <tr data-ng-repeat-start="group in displayedGroups">\n							<td rowspan="{{group.queues.length}}" align="center" style="vertical-align:middle">{{group.membername}}</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								{{queue.queue}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								 <span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n							<td rowspan="{{group.queues.length}}" align="center" style="vertical-align:middle">\n								<span data-ng-show="group.queues.length > 1" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, group.queues)"> </span>\n								<span class="icon-plus font-green" style="cursor:pointer;" ng-click="add(null, group.queues)"> </span>\n								<span data-ng-show="group.queues.length > 1" class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, group.queues)"></span>\n							</td>\n				    </tr>\n						<tr data-ng-repeat="queue in group.queues" data-ng-if="$middle">\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{queue.queue}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-repeat="queue in group.queues" data-ng-if="group.queues.length > 1 && $last" data-ng-repeat-end>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\': \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{queue.queue}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-hide="displayedGroups.length">\n							<td colspan="9" style="text-align:center;">\n								<i>No agents available</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td colspan="1">\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n							<td colspan="9"></td>\n					  </tr>\n				    <tr>\n				      <td colspan="10" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n				      </td>\n				    </tr>\n				  </tfoot>\n				</div>\n			</table>\n		<!-- END TABLE -->\n	</div>\n\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/agent/pause.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_PAUSE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item" data-ng-hide="data.length">\n				 {{ \'APPLICATION_QUEUE\' | translate }}: <b class="pull-right">{{ selected.queue }}</b>\n			</li>\n      <li class="list-group-item">\n				 {{ \'APPLICATION_AGENT\' | translate }}: <b class="pull-right">{{ selected.membername }}</b>\n			</li>\n      <li class="list-group-item">\n        <div class="btn-group">\n          <ui-select ng-model="selected.item" theme="bootstrap" ng-disabled="disabled" class="btn input-xlarge pull-left">\n            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="item in items | filter: $select.search">\n              <div ng-bind-html="item | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <button class="btn btn-success pull-right" type="button" ng-click="ok(true)" style="margin-top: 7px;">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n        </div>\n			</li>\n		</ul>\n	</div>\n  <button data-ng-show="(data | isArray) ? (data | where: {paused: true}).length : data.paused " class="btn btn-danger btn-block" type="button" ng-click="ok(false, data.queue)">Exit</button>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/agent/queue.modal.add.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info" data-ng-show="selected.queue">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="queues.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.queue" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n                <div ng-bind-html="queue.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n    <!-- End List group -->\n  </div>\n  <div class="note note-warning" data-ng-hide="selected.queue">\n    <h4 class="block">Warning!</h4>\n    <p>\n       {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n    </p>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()" data-ng-show="selected.queue">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/agent/queue.modal.remove.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item" data-ng-hide="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/areport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="11">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n						<th st-sort="agentcalledAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentcompleteAt">{{ \'APPLICATION_COMPLETED_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n						<th st-sort="holdtime">{{ \'APPLICATION_HOLDTIME\' | translate }}</th>\n				    <th st-sort="talktime">{{ \'APPLICATION_TALKTIME\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td><span data-ng-class="{\'icon-call-in font-yellow\': agent.lastevent === \'called\',\n							\'icon-phone font-blue\': agent.lastevent === \'connect\',\n							\'icon-call-end font-green\': agent.lastevent === \'complete\',\n							\'icon-call-end font-red\': agent.lastevent === \'answered_elsewhere\'}"></span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.queue}}</td>\n						<td>{{agent.destcalleridname ? agent.destcalleridname + \' [\' + agent.membername + \']\' : agent.membername }}</td>\n						<td>{{agent.calleridname ? agent.calleridname + \' [\' + agent.calleridnum + \']\' : agent.calleridnum }}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectAt}}" data-ng-show="agent.agentconnectAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcompleteAt}}" data-ng-show="agent.agentcompleteAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n						<td>{{agent.holdtime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n			      <td>{{agent.talktime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="11" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/qreport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedQueues" st-safe-src="queues" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="10">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n											<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n						<th st-sort="queuecallerjoinAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="queuecallerleaveAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="queuecallerabandonAt">{{ \'APPLICATION_ABANDONED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="queue in displayedQueues">\n						<td><span data-ng-class="{\'icon-call-in font-yellow\': queue.queuecallerjoinAt && !queue.queuecallerleaveAt,\n							\'icon-phone font-blue\': queue.queuecallerjoinAt && queue.queuecallerleaveAt,\n							\'icon-call-end font-red\': queue.queuecallerjoinAt && queue.queuecallerleaveAt && queue.queuecallerabandonAt}"></span>\n						</td>\n						<td>{{queue.uniqueid}}</td>\n						<td>{{queue.queue}}</td>\n						<td>{{queue.connectedlinename ? queue.connectedlinename + \' [\' + queue.connectedlinenum + \']\' : queue.connectedlinenum }}</td>\n						<td>{{queue.calleridname ? queue.calleridname + \' [\' + queue.calleridnum + \']\' : queue.calleridnum }}</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerleaveAt}}" data-ng-show="queue.queuecallerleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerabandonAt}}" data-ng-show="queue.queuecallerabandonAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedQueues.length">\n						<td colspan="10" style="text-align:center;">\n							<i>No queues available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="connectedlinename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="6"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="10" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/realtime/view/queue/pause.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_PAUSE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n				 {{ \'APPLICATION_QUEUE\' | translate }}: <b class="pull-right">{{ selected.queue }}</b>\n			</li>\n      <li class="list-group-item" data-ng-hide="data.length">\n				 {{ \'APPLICATION_AGENT\' | translate }}: <b class="pull-right">{{ selected.membername }}</b>\n			</li>\n      <li class="list-group-item">\n        <div class="btn-group">\n          <ui-select ng-model="selected.item" theme="bootstrap" ng-disabled="disabled" class="btn input-xlarge pull-left">\n            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="item in items | filter: $select.search">\n              <div ng-bind-html="item | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <button class="btn btn-success pull-right" type="button" ng-click="ok(true)" style="margin-top: 7px;">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n        </div>\n			</li>\n		</ul>\n	</div>\n  <button data-ng-show="(data | isArray) ? (data | where: {paused: true}).length : data.paused " class="btn btn-danger btn-block" type="button" ng-click="ok(false, data.queue)">Exit</button>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.add.modal.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="queues.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.queue" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n                <div ng-bind-html="queue.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" ui-btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" ui-btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n	</div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n	<div class="col-md-12">\n	 <div ng-show="selected">Selection from a modal: {{ selected }}</div>\n		<!-- BEGIN TABLE -->\n			<table st-table="displayedGroups" st-safe-src="groups" class="table table-striped table-bordered table-hover">\n				<div class="table-responsive">\n				  <thead>\n						<tr>\n							<th colspan="10">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n												<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<!-- <div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div> -->\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="memebername" colspan="3">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n					    <th st-sort="agent">{{ \'APPLICATION_AGENT\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_LOGIN\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_PAUSE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_INCOMING_CALL\' | translate }}</th>\n							<th>{{ \'APPLICATION_SERVED\' | translate }}</th>\n							<th colspan="2"></th>\n					  </tr>\n				  </thead>\n					<tbody>\n				    <tr data-ng-repeat-start="group in displayedGroups">\n							<td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">{{group.queue}}</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								{{agent.membername}}\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								 <span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								{{agent.callstaken}}\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n							<td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">\n								<span data-ng-show="group.agents.length > 1" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, group.agents)"> </span>\n								<span class="icon-plus font-green" style="cursor:pointer;" data-ng-click="add(null, group.agents)"> </span>\n								<span data-ng-show="group.agents.length > 1" class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, group.agents)"></span>\n							</td>\n				    </tr>\n						<tr data-ng-repeat="agent in group.agents" data-ng-if="$middle">\n							<td align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{agent.membername}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td align="center">\n								{{agent.callstaken}}\n							</td>\n							<td align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-repeat="agent in group.agents" data-ng-if="group.agents.length > 1 && $last" data-ng-repeat-end>\n							<td align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\': \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{agent.membername}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td align="center">\n								{{agent.callstaken}}\n							</td>\n							<td align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-hide="displayedGroups.length">\n							<td colspan="9" style="text-align:center;">\n								<i>No agents available</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td colspan="1">\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n							<td colspan="9"></td>\n					  </tr>\n				    <tr>\n				      <td colspan="10" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n				      </td>\n				    </tr>\n				  </tfoot>\n				</div>\n			</table>\n		<!-- END TABLE -->\n	</div>\n\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/queue/queue.modal.add.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info" data-ng-show="selected.queue">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="agents.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.agent" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_AGENT\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="{name: agent.name, id: agent.id} as agent in agents | filter: $select.search">\n                <div ng-bind-html="agent.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n    <!-- End List group -->\n  </div>\n  <div class="note note-warning" data-ng-hide="selected.queue">\n    <h4 class="block">Warning!</h4>\n    <p>\n       {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n    </p>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()" data-ng-show="selected.queue">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.modal.remove.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row" data-ng-hide="data.length">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.remove.modal.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-hide="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/voice/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n		            </ul>\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul>\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/inbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-in"></i>\n					<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/routes/inbound/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="routes_inbound.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_DID\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.exten,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DID\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/inbound/view/view.application.html",'\n<div class="row" data-ng-init="initApplication(); getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START APP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n					            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n					            <ui-select-choices repeat="app.value as app in $application.applications| filter: $select.search">\n					              <div ng-bind-html="app.name | highlight: $select.search"></div>\n					            </ui-select-choices>\n					          </ui-select>\n										<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APP -->\n\n									<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n										<!-- START QUEUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n											<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n													<div ng-bind-html="queue.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END QUEUE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n												<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n													{{$translate.instant(queueOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n									</div>\n									<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n													{{$translate.instant(audioOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n									</div>\n									<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n										<!-- START INTERFACE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n											<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END INTERFACE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n											<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n									</div>\n									<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n										<!-- START PROJECT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n											<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n													<div ng-bind-html="project.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PROJECT -->\n\n										<!-- START URL -->\n										<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<div class="input-group">\n												<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n												<span class="input-group-addon">\n													<input type="checkbox" data-ng-model="application.urlEnabled">\n												</span>\n											</div>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n											</span>\n										</div> -->\n										<!-- END URL -->\n\n									</div>\n									<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n										<!-- START CONTEXT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n											<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n													<div ng-bind-html="context.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CONTEXT -->\n\n										<!-- START EXTENSION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n											<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END EXTENSION -->\n\n										<!-- START PRIORITY -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n											<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PRIORITY -->\n									</div>\n									<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n										<!-- START HANGUPCAUSE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n													{{$translate.instant(hangupCause.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END HANGUPCAUSE -->\n									</div>\n									<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n										<!-- START VARIABLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n											<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARIABLE -->\n\n										<!-- START VARVALUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n											<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARVALUE -->\n									</div>\n									<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n										<!-- START CUSTOMAPP -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n											<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CUSTOMAPP -->\n\n										<!-- START APPDATA -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n											<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n											<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END APPDATA -->\n									</div>\n									<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n										<!-- START VOICEMAIL -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n											<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VOICEMAIL -->\n									</div>\n									<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								</form>\n								</wz-step>\n									<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n										<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START INTERVAL_TYPE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n										<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n												{{$translate.instant(intType.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERVAL_TYPE -->\n									<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n											<!-- START TIME -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n												<div class="input-group input-large">\n													<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n													<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n												</div>\n											</div>\n											<!-- END TIME -->\n\n											<!-- START WEEKDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END WEEKDAY -->\n\n											<!-- START MONTHDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTHDAY -->\n\n											<!-- START MONTH -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n								<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/inbound/view/view.applicationSettings.html",'\n<div class="row" data-ng-init="initApplication();getIntervals();getApplication();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n									<!-- START QUEUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n										<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n												<div ng-bind-html="queue.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END QUEUE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n											<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n												{{$translate.instant(queueOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n								</div>\n								<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n												{{$translate.instant(audioOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n								</div>\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n									<!-- START INTERFACE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n										<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERFACE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n										<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n								</div>\n								<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n									<!-- START PROJECT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n										<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n												<div ng-bind-html="project.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PROJECT -->\n\n									<!-- START URL -->\n									<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<div class="input-group">\n											<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n											<span class="input-group-addon">\n												<input type="checkbox" data-ng-model="application.urlEnabled">\n											</span>\n										</div>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n										</span>\n									</div> -->\n									<!-- END URL -->\n\n								</div>\n								<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n									<!-- START CONTEXT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n										<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n												<div ng-bind-html="context.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CONTEXT -->\n\n									<!-- START EXTENSION -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n										<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END EXTENSION -->\n\n									<!-- START PRIORITY -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n										<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PRIORITY -->\n								</div>\n								<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n									<!-- START HANGUPCAUSE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n										<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n												{{$translate.instant(hangupCause.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END HANGUPCAUSE -->\n								</div>\n								<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n									<!-- START VARIABLE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n										<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARIABLE -->\n\n									<!-- START VARVALUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n										<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARVALUE -->\n								</div>\n								<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n									<!-- START CUSTOMAPP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n										<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CUSTOMAPP -->\n\n									<!-- START APPDATA -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n										<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n										<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APPDATA -->\n								</div>\n								<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n									<!-- START VOICEMAIL -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n										<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VOICEMAIL -->\n								</div>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n											</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/inbound/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/inbound/view/{{route.id}}/application" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th width="20%"></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app+\' application\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/inbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-in"></i>\n					<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/inboundroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.inbound.view.settings\')}">\n							<a data-ng-href="/voice/routes/inbound/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.inbound.view.applications\') || $state.is(\'main.voice.routes.inbound.view.application\') || $state.is(\'main.voice.routes.inbound.view.applications.settings\')}">\n							<a data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/inbound/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/inbound/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-call-in"></i>\n				<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-call-in font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/route/internal/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-reload"></i>\n					<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/routes/internal/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="internalRoutes.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_DID\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/internal/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.exten,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DID\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/internal/view/view.application.html",'\n<div class="row" data-ng-init="initApplication(); getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START APP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n					            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n					            <ui-select-choices repeat="app.value as app in $application.applications| filter: $select.search">\n					              <div ng-bind-html="app.name | highlight: $select.search"></div>\n					            </ui-select-choices>\n					          </ui-select>\n										<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APP -->\n\n									<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n										<!-- START QUEUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n											<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n													<div ng-bind-html="queue.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END QUEUE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n												<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n													{{$translate.instant(queueOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n									</div>\n									<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n													{{$translate.instant(audioOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n									</div>\n									<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n										<!-- START INTERFACE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n											<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END INTERFACE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n											<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n									</div>\n									<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n										<!-- START PROJECT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n											<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n													<div ng-bind-html="project.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PROJECT -->\n\n										<!-- START URL -->\n										<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<div class="input-group">\n												<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n												<span class="input-group-addon">\n													<input type="checkbox" data-ng-model="application.urlEnabled">\n												</span>\n											</div>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n											</span>\n										</div> -->\n										<!-- END URL -->\n\n									</div>\n									<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n										<!-- START CONTEXT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n											<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n													<div ng-bind-html="context.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CONTEXT -->\n\n										<!-- START EXTENSION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n											<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END EXTENSION -->\n\n										<!-- START PRIORITY -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n											<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PRIORITY -->\n									</div>\n									<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n										<!-- START HANGUPCAUSE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n													{{$translate.instant(hangupCause.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END HANGUPCAUSE -->\n									</div>\n									<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n										<!-- START VARIABLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n											<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARIABLE -->\n\n										<!-- START VARVALUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n											<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARVALUE -->\n									</div>\n									<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n										<!-- START CUSTOMAPP -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n											<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CUSTOMAPP -->\n\n										<!-- START APPDATA -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n											<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n											<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END APPDATA -->\n									</div>\n									<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n										<!-- START VOICEMAIL -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n											<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VOICEMAIL -->\n									</div>\n									<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								</form>\n								</wz-step>\n									<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n										<form name="forms.interval" novalidate>\n											<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n											<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n											<!-- START INTERVAL_TYPE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n										<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n												{{$translate.instant(intType.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERVAL_TYPE -->\n									<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n											<!-- START TIME -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n												<div class="input-group input-large">\n													<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n													<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n												</div>\n											</div>\n											<!-- END TIME -->\n\n											<!-- START WEEKDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END WEEKDAY -->\n\n											<!-- START MONTHDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTHDAY -->\n\n											<!-- START MONTH -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/internal/view/view.applicationSettings.html",'\n<div class="row" data-ng-init="initApplication();getIntervals();getApplication();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n									<!-- START QUEUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n										<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n												<div ng-bind-html="queue.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END QUEUE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n											<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n												{{$translate.instant(queueOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n								</div>\n								<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n												{{$translate.instant(audioOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n								</div>\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n									<!-- START INTERFACE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n										<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERFACE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n										<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n								</div>\n								<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n									<!-- START PROJECT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n										<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n												<div ng-bind-html="project.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PROJECT -->\n\n									<!-- START URL -->\n									<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<div class="input-group">\n											<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n											<span class="input-group-addon">\n												<input type="checkbox" data-ng-model="application.urlEnabled">\n											</span>\n										</div>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n										</span>\n									</div> -->\n									<!-- END URL -->\n\n								</div>\n								<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n									<!-- START CONTEXT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n										<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n												<div ng-bind-html="context.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CONTEXT -->\n\n									<!-- START EXTENSION -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n										<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END EXTENSION -->\n\n									<!-- START PRIORITY -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n										<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PRIORITY -->\n								</div>\n								<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n									<!-- START HANGUPCAUSE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n										<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n												{{$translate.instant(hangupCause.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END HANGUPCAUSE -->\n								</div>\n								<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n									<!-- START VARIABLE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n										<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARIABLE -->\n\n									<!-- START VARVALUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n										<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARVALUE -->\n								</div>\n								<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n									<!-- START CUSTOMAPP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n										<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CUSTOMAPP -->\n\n									<!-- START APPDATA -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n										<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n										<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APPDATA -->\n								</div>\n								<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n									<!-- START VOICEMAIL -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n										<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VOICEMAIL -->\n								</div>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n										</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/internal/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/internal/view/{{route.id}}/application" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app+\' application\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/internal/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-reload"></i>\n					<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/internalroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.internal.view.settings\')}">\n							<a data-ng-href="/voice/routes/internal/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.internal.view.applications\') || $state.is(\'main.voice.routes.internal.view.application\') || $state.is(\'main.voice.routes.internal.view.applications.settings\')}">\n							<a data-ng-href="/voice/routes/internal/view/{{route.id}}/applications">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/internal/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERNAL\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/internal/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-reload"></i>\n				<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-reload font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/route/outbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-out"></i>\n					<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/voice/routes/outbound/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="routes_outobund.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_PATTERN\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/outbound/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.name,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="id" class="form-control" type="search"/>\n									</div>\n						    </td>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PATTERN\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-out"></i>\n					<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/outboundroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.outbound.view.settings\')}">\n							<a data-ng-href="/voice/routes/outbound/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.outbound.view.routes\') || $state.is(\'main.voice.routes.outbound.view.route\') || $state.is(\'main.voice.routes.outbound.view.routes.settings\')}">\n							<a data-ng-href="/voice/routes/outbound/view/{{route.id}}/routes">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.route.html",'<div class="row" data-ng-init="initApplication();getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_ROUTE\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="profile-usertitle-name">\n					{{(main.app | capitalize) || \'Application\'}}\n				</div>\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START APP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="app.value as app in applications | filter: $select.search">\n											<div ng-bind-html="app.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APP -->\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n								<!-- START TRUNK -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n									<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.TrunkId" name="trunk" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="trunk.id as trunk in items | filter: $select.search">\n											<div ng-bind-html="trunk.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END TRUNK -->\n\n								<!-- START CONTEXT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n									<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.context" name="context" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n											<div ng-bind-html="context.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CONTEXT -->\n\n								<!-- START CALLERID -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n									<input type="text" name="callerID" placeholder="{{ \'APPLICATION_CALLERID\' | translate }}" class="form-control" data-ng-model="application.callerID">\n									<span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CALLERID -->\n\n									<!-- START CUTDIGITS -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n									<input type="number" class="form-control" name="cutdigits" data-ng-model="application.cutdigits">\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n								</div>\n								<!-- END CUTDIGITS -->\n							</div>\n							<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n								<!-- START CUSTOMAPP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n									<span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CUSTOMAPP -->\n\n								<!-- START APPDATA -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n									<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n									<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APPDATA -->\n							</div>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n										</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/route/outbound/view/view.routeSettings.html",'\n<div class="row" data-ng-init="initApplication();getApplication();getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.info.$valid)">\n						<form name="forms.info" novalidate>\n							<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n\n							<!-- START TRUNK -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in items | filter: $select.search">\n										<div ng-bind-html="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRUNK -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START CALLERID -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n								<input type="text" name="callerID" placeholder="{{ \'APPLICATION_CALLERID\' | translate }}" class="form-control" data-ng-model="application.callerID">\n								<span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLERID -->\n\n								<!-- START CUTDIGITS -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n								<input type="number" class="form-control" name="cutdigits" data-ng-model="application.cutdigits">\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n							</div>\n							<!-- END CUTDIGITS -->\n						</div>\n						<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n							<!-- START CUSTOMAPP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n								<span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CUSTOMAPP -->\n\n							<!-- START APPDATA -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n								<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n								<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APPDATA -->\n						</div>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n					</wz-step>\n						<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n							<form name="forms.interval" novalidate>\n								<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						<!-- START INTERVAL_TYPE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n								<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n									{{$translate.instant(intType.name)}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVAL_TYPE -->\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n										<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{$translate.instant(weekDay.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{$translate.instant(weekDay.name)}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{$translate.instant(month.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{$translate.instant(month.name)}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.routes.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/outbound/view/{{route.id}}/route" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n								<th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.context}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/outbound/view/{{route.id}}/routes/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(\'Route\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/outbound/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_OUTBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_PATTERN\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/outbound/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-call-out"></i>\n				<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-call-out font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_PATTERN\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/voicemail/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope-letter"></i>\n					<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-envelope-letter font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="voicemails.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_VOICEMAIL\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/voicemails/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVoicemails([\'mailbox\', \'fullname\', \'email\'])" csv-header="[\'Mailbox\', \'Fullname\', \'Email\']" field-separator=";" filename="voicemails.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedVoicemails" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.voicemailsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="voicemailByPage in voicemailsByPage | filter: $select.search">\n													<div ng-bind-html="voicemailByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(voicemail, checked)" checklist-model checklist-value="uniqueid"></th>\n						    <th st-sort="mailbox">{{ \'APPLICATION_MAILBOX\' | translate }}</th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="voicemail in displayedVoicemails" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="voicemails.checked" checklist-value="voicemail.uniqueid"></td>\n								<td>{{voicemail.mailbox}}</td>\n                <td>{{voicemail.fullname}}</td>\n					      <td>{{voicemail.email}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(voicemail.mailbox,voicemail.uniqueid)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVoicemails.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="mailbox" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_MAILBOX\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FULLNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.voicemailsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/voicemail/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVoicemail()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope-letter"></i>\n					<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n					<i data-ng-show="voicemail" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="voicemail">\n					<a href="#">{{voicemail.mailbox}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/voicemail.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{voicemail.mailbox}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.voicemails.view.settings\')}">\n							<a data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n            <li data-ng-class="{active: $state.is(\'main.voice.voicemails.view.messages\')}">\n              <a data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/messages">\n              <i class="icon-speech"></i>\n              {{ \'APPLICATION_MESSAGES\' | translate}} </a>\n            </li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/voice/voicemail/view/view.messages.html",'<div class="row" data-ng-init="getMessages()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_MESSAGES\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_CALLERID\' | translate }}</th>\n						    <th>{{ \'APPLICATION_DATE\' | translate }}</th>\n								<th>{{ \'APPLICATION_DURATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_RECORDING\' | translate }}</th>\n								<th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="voicemailMessages">\n					    <tr data-ng-repeat="message in voicemailMessages">\n								<td>{{message.callerid}}</td>\n								<td>{{returnMessageDate(message.stamp)}}</td>\n								<td>{{returnDuration(message.duration) | date: \'mm:ss\'}}</td>\n								<td>\n									<audio controls ng-src="{{encodeRecording(message.recording)}}" preload="none">\n			            Your browser does not support the audio tag.\n			          </audio>\n							</td>\n					      <td>\n									<a class="btn default btn-xs green-stripe" href="/api/voice/voicemails/messages/{{message.id}}/download" target="_self">\n										{{ \'APPLICATION_DOWNLOAD\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(\'message\',message.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="voicemailMessages.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No messages available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/voicemail/view/view.settings.html",'<div class="row" data-ng-init="getContexts()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VOICEMAIL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<!-- <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li> -->\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceVoicemail()" novalidate>\n\n							<!-- START MAILBOX -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="voicemail.mailbox" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAILBOX -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}</label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.password" />\n								<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START CONFIRM PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}</label>\n								<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.rpassword" nx-equal="voicemail.password"/>\n								<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONFIRM PASSWORD -->\n\n							<!-- START FULLNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="voicemail.fullname" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FULLNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="voicemail.email" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="voicemail.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<!-- <div class="tab-pane" id="tab_1_2">\n						<form name="forms.advanced" data-ng-submit="updateVoiceVoicemail()" novalidate>\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div> -->\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/voicemail/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard();getContexts();">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope-letter"></i>\n				<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-envelope-letter font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_VOICEMAIL\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START MAILBOX -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="item.mailbox" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END MAILBOX -->\n\n						<!-- START PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n							<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PASSWORD -->\n\n						<!-- START CONFIRM PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n							<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CONFIRM PASSWORD -->\n\n            <!-- START FULLNAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n              <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END FULLNAME -->\n\n            <!-- START EMAIL -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n              <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EMAIL -->\n\n            <!-- START CONTEXT -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <ui-select data-ng-model="item.context" name="context" theme="bootstrap" required>\n                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                  <div ng-bind-html="context.name | highlight: $select.search"></div>\n                </ui-select-choices>\n              </ui-select>\n              <span class="help-block">\n                {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n              </span>\n              <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END CONTEXT -->\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/yourdashboard/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_DASHBOARD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.dashboard" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.dashboard.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/yourdashboard/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-screen-desktop"></i>\n					<a href="/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="dashboards.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_DASHBOARD\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getDashboards([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="dashboards.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedDashboards" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.dashboardsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="dashboardByPage in dashboardsByPage | filter: $select.search">\n													<div ng-bind-html="dashboardByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(dashboard, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="dashboard in displayedDashboards" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="dashboard.defaultEntry" type="checkbox" checklist-model="dashboards.checked" checklist-value="dashboard.id"></td>\n								<td>{{dashboard.name}}</td>\n					      <td>{{dashboard.description}}</td>\n					      <td>\n									<a class="btn default btn-xs green-stripe" data-ng-href="/yourdashboards/show/{{dashboard.id}}">\n										{{ \'APPLICATION_VIEW\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/yourdashboards/view/{{dashboard.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(dashboard.name,dashboard.id)" data-ng-class="{\'disabled\': dashboard.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedDashboards.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_DASHBOARDS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.dashboardsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/yourdashboard/show/show.html",'<div class="col-md-12" ng-init="getDashboard()">\n  <adf-dashboard\n          name="{{dashboard.name}}"\n          collapsible="{{dashboard.collapsible}}"\n          maximizable="{{dashboard.maximizable}}"\n          enableconfirmdelete="{{dashboard.enableconfirmdelete}}"\n          structure="{{dashboard.structure}}"\n          editable="{{dashboard.editable}}"\n          adf-model="dashboard.model"/>\n</div>\n'),a.put("app/yourdashboard/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getDashboard()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-screen-desktop"></i>\n					<a href="/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n					<i data-ng-show="dashboard" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="dashboard">\n					<a href="#">{{dashboard.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/dashboard.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{dashboard.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.yourdashboards.view.settings\')}">\n							<a data-ng-href="/yourdashboards/view/{{dashboard.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/yourdashboard/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_DASHBOARD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateDashboard()" novalidate>\n\n							<!-- START VISIBLE TO ADMIN -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_ADMIN\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.admin"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO ADMIN -->\n\n							<!-- START VISIBLE TO USER -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_USER\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.user"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO USER -->\n\n							<!-- START VISIBLE TO AGENT -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_AGENT\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.agent"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO AGENT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="dashboard.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-handbag"></i>\n					<a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-handbag font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ZENDESK\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/zendesk/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'token\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Token\', \'Password\']" field-separator=";" filename="zendesk_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedZdAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n													<div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="account in displayedZdAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n					      <td>{{account.name}}</td>\n					      <td>{{account.username}}</td>\n								<td>{{account.remoteUri}}</td>\n								<td>{{account.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/account">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n									<a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n										{{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedZdAccounts.length">\n								<td colspan="7" style="text-align:center;">\n									<i>No account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="7" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
-a.put("app/zendesk/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n              <!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'password\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'token\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createConfiguration()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n							<form name="formsConfiguration.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n									<span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- SUBJECT TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-9">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-3 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n            <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n              <div class="col-md-3">\n                <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                  </ui-select-choices>\n                </ui-select>\n              </div>\n              <div class="col-md-6" data-ng-if="subjectItem.type==\'string\'">\n                <div class="form-group">\n                  <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateSubjectText(subjectItem)">\n                </div>\n              </div>\n              <div class="col-md-6" data-ng-if="subjectItem.type==\'variable\'">\n                <div class="form-group">\n                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateSubjectText(subjectItem)">\n                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <div class="col-md-3">\n                <div class="form-group">\n                  <button class="btn btn-icon-only red" data-ng-click="removeItemFromSubject(subjectItem)"><i class="fa fa-times"></i></button>\n                </div>\n              </div>\n            </div>\n					</div>\n					<!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n							<!-- <pre>\n								{{descriptionItem|json}}\n							</pre> -->\n              <div class="col-md-2">\n                <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n                  <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n                  </ui-select-choices>\n                </ui-select>\n              </div>\n              <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n                <div class="form-group">\n                  <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateDescriptionText(descriptionItem)">\n                </div>\n              </div>\n							<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n								<input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateDescriptionText(descriptionItem)">\n							</div>\n							<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n								<ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n                  </ui-select-choices>\n                </ui-select>\n							</div>\n							<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n								<input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateDescriptionText(descriptionItem)">\n							</div>\n              <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n                <div class="form-group">\n                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateDescriptionText(descriptionItem)">\n                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <div class="col-md-1">\n                <div class="form-group">\n                  <button class="btn btn-icon-only red" data-ng-click="removeItemFromDescription(descriptionItem)"><i class="fa fa-times"></i></button>\n                </div>\n              </div>\n            </div>\n					</div>\n					<!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n					<div class="tab-pane active" id="tab_1_3">\n\n					</div>\n					<!-- END FIELDS TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.configurations.html",'<div ui-view class="profile-content">\n	<div class="row" data-ng-init="getConfigurations()">\n		<div class="col-md-12">\n			<div class="portlet light">\n				<div class="portlet-title  tabbable-line">\n					<div class="caption caption-md">\n						<i class="icon-globe theme-font hide"></i>\n						<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n					</div>\n					<div class="actions">\n						<div class="btn-group">\n							<a class="btn green-jungle " href="/zendesk/view/{{account.id}}/configuration" data-toggle="dropdown">\n								<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n							</a>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<!-- START TABLE -->\n					<table class="table table-striped table-bordered table-hover">\n						  <thead>\n							  <tr>\n							    <th>{{\'APPLICATION_NAME\' | translate}}</th>\n									<th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n									<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="configuration in configurations">\n									<td>{{configuration.name}}</td>\n									<td>{{configuration.description}}</td>\n						      <td>\n										<a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n											{{ \'APPLICATION_SETTINGS\' | translate}}\n						        </a>\n						        <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n											{{ \'APPLICATION_DELETE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="configurations.length">\n									<td colspan="5" style="text-align:center;">\n										<i>No configuration available</i>\n									</td>\n								</tr>\n						  </tbody>\n					</table>\n					<!-- END TABLE -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n          <i class="icon-handbag"></i>\n          <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{account.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/zendesk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{account.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.remoteUri}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.zendesk.view.account\')}">\n							<a ng-href="/zendesk/view/{{account.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.zendesk.view.configurations\') || $state.is(\'main.zendesk.view.configuration\')}">\n							<a ng-href="/zendesk/view/{{account.id}}/configurations">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/zendesk/accounts/validate/username"/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/zendesk/accounts/validate/remoteUri"/>\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'password\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'token\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("components/footer/footer.html",'<!-- BEGIN FOOTER -->\n<div class="page-footer">\n  <div class="page-footer-inner">\n     2015 &copy; xCALLY MOTION by Xenialab srl.\n  </div>\n  <div class="scroll-to-top">\n    <i class="icon-arrow-up"></i>\n  </div>\n</div>\n<!-- END FOOTER -->\n'),a.put("components/header/header.html",'<!-- BEGIN HEADER INNER -->\n<div class="page-header-inner" data-ng-init="initHeader()">\n  <!-- BEGIN LOGO -->\n  <div class="page-logo">\n    <a href="/">\n    <img src="assets/images/logo.png" alt="logo" class="logo-default"/>\n    </a>\n    <div class="menu-toggler sidebar-toggler">\n      <!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->\n    </div>\n  </div>\n  <!-- END LOGO -->\n  <!-- BEGIN HEADER SEARCH BOX -->\n  <!-- DOC: Apply "search-form-expanded" right after the "search-form" class to have half expanded search box -->\n  <form class="search-form hide" action="extra_search.html" method="GET">\n    <div class="input-group">\n      <input type="text" class="form-control" placeholder="Search..." name="query">\n      <span class="input-group-btn">\n      <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n      </span>\n    </div>\n  </form>\n  <!-- END HEADER SEARCH BOX -->\n  <!-- BEGIN RESPONSIVE MENU TOGGLER -->\n  <a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse">\n  </a>\n  <!-- END RESPONSIVE MENU TOGGLER -->\n  <!-- BEGIN TOP NAVIGATION MENU -->\n  <div class="top-menu">\n    <ul class="nav navbar-nav pull-right">\n      <!-- BEGIN LANGUAGE BAR -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-language">\n        <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n        <img ng-src="assets/images/flags/{{ language }}.png">\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a href="#" ng-click="changeLanguage(\'it\')">\n            <img alt="" src="assets/images/flags/it.png"> Italian </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'en_EN\')">\n            <img alt="" src="assets/images/flags/en_EN.png"> English </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END LANGUAGE BAR -->\n      <!-- BEGIN USER LOGIN DROPDOWN -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-user">\n        <a href="#" class="dropdown-toggle" dropdown-menu-hover data-toggle="dropdown" data-close-others="true">\n        <img class="img-circle" data-ng-src="api/users/avatar/{{getCurrentUser().userpic || \'unknown_avatar\'}}" alt="...">\n        <span class="username username-hide-on-mobile">\n          {{ getCurrentUser().fullname }} </span>\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a ng-href=" {{isAdmin() ? \'/users/view/\'+getCurrentUser().id+\'/account\' : \'/agents/view/\'+getCurrentUser().id+\'/account\'}}">\n            <i class="icon-key"></i>Change password</a>\n          </li>\n          <!-- <li>\n            <a href="#">\n            <i class="icon-calendar"></i> My Calendar </a>\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-envelope-open"></i> My Inbox <span class="badge badge-danger">\n            3 </span>\n            </a>\n          </li> -->\n          <!-- <li>\n            <a href="#/todo">\n            <i class="icon-rocket"></i> My Tasks <span class="badge badge-success">\n            7 </span>\n            </a>\n          </li> -->\n          <!-- <li class="divider">\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-lock"></i> Lock Screen </a>\n          </li> -->\n          <li data-ng-click="logout()">\n            <a href="#">\n            <i class="icon-logout"></i> Log Out </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END USER LOGIN DROPDOWN -->\n      <!-- BEGIN QUICK SIDEBAR TOGGLER -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-quick-sidebar-toggler" data-ng-click="toggleQuickSidebar()">\n        <a href="#" class="dropdown-toggle">\n        <i class="icon-logout"></i>\n        </a>\n      </li>\n      <!-- END QUICK SIDEBAR TOGGLER -->\n    </ul>\n  </div>\n  <!-- END TOP NAVIGATION MENU -->\n</div>\n<!-- END HEADER INNER -->\n'),
-a.put("components/modal/delete.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("components/quickSidebar/modal/add.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n\n<div class="modal-body">\n  <div class="portlet box blue">\n		<div class="portlet-title">\n			<div class="caption">\n				<i class="icon-people"></i>{{\'APPLICATION_SELECTED_AGENTS\' | translate}}\n			</div>\n		</div>\n		<div class="portlet-body">\n			<ul>\n				<li data-ng-repeat="item in items">\n					 {{item.fullname}}\n				</li>\n\n        <li data-ng-repeat="item in selected.items">\n					 {{item.fullname}}\n				</li>\n			</ul>\n		</div>\n	</div>\n\n  <ui-select multiple name="items" ng-model="selected.items" theme="bootstrap">\n    <ui-select-match placeholder="{{\'APPLICATION_SELECTED_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n    <ui-select-choices repeat="{id: agent.id, fullname: agent.fullname} as agent in agents.rows | filter: $select.search">\n      {{agent.fullname}}\n    </ui-select-choices>\n  </ui-select>\n</div>\n\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="selected.items.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("components/quickSidebar/modal/close.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text | translate"></p>\n  <!-- <div ng-if="modal.html" ng-bind-html="modal.html"></div> -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-danger" type="button" ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n  <!-- <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button> -->\n</div>\n'),a.put("components/quickSidebar/quickSidebar.html",'<div class="page-quick-sidebar">\n  <div class="nav-justified">\n    <ul class="nav nav-tabs nav-justified">\n      <li data-ng-class="{active:currentTab==0}" data-ng-click="goToTab(0)">\n        <a href="#">\n          <!-- <i class="icon-people"></i> <span class="badge badge-danger">2</span> -->\n          <i class="icon-people"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==1}" data-ng-click="goToTab(1)">\n        <a href="#">\n          <!-- <i class="icon-eye"></i> <span class="badge badge-success">7</span> -->\n        <i class="icon-eye"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==2}" data-ng-click="goToTab(2)">\n        <a href="#">\n          <!-- <i class="icon-globe"></i> <span class="badge badge-success">7</span> -->\n        <i class="icon-globe"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==3}" data-ng-click="goToTab(3)">\n        <a href="#">\n          <!-- <i class="icon-bubbles"></i> <span class="badge badge-success">7</span> -->\n        <i class="icon-bubbles"></i>\n        </a>\n      </li>\n    </ul>\n    <div class="tab-content">\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==0 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n							<input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_AGENT\' | translate}}..." ng-model="searchAgent">\n							<span class="input-group-btn">\n							<i class="icon-magnifier"></i>\n							</span>\n						</div>\n          </div>\n          <ul class="media-list list-items" data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="agent in agents.rows | orderBy:\'-online\' | filter:searchAgent as resultsAgent" data-ng-if="agent.id !== currentUser.id">\n              <div class="media-status">\n                <!-- <span class="badge badge-success">8</span> -->\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" alt="{{agent.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(agent.id)">\n                <h4 class="media-heading"><span class="item-status">{{agent.fullname | characters:15 :true}} {{agent.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="agent.online ? \'badge-success\' : \'badge-danger\'"></span></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{agent.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="agents.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsAgent.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==1 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchUser">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="user in users.rows | orderBy:\'-online\' | filter:searchUser as resultsUser" data-ng-if="user.id !== currentUser.id">\n              <div class="media-status">\n                <!-- <span class="badge badge-success">3</span> -->\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(user.id)">\n                <h4 class="media-heading">{{user.fullname | characters:15 :true}} {{user.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="user.online ? \'badge-success\' : \'badge-danger\'"></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{user.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="users.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsUser.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==2 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchChatRoomsExternals">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | filter:{type:\'external\'} | filter:searchChatRoomsExternals as resultsChatRoomsExternals">\n              <div class="media-status">\n                <!-- <span class="badge badge-success">3</span> -->\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.email}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.createdAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsExternals.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==3 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchChatRoomsGroups">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | filter:chatRoomsGroupsGreaterThan(2) | filter:searchChatRoomsGroups as resultsChatRoomsGroups">\n              <div class="media-status">\n                <!-- <span class="badge badge-success">3</span> -->\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.name}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.updatedAt}}">April 1, 2014</time>\n                </div>\n                <div class="media-heading-small">\n                  <div data-ng-repeat="user in chatRoom.Users | map: \'fullname\'" class="inline">\n                    {{ $last ? user : user + \', \'}}\n                  </div>\n                </div>\n              </div>\n            </li>\n            <!-- <li class="media animate-repeat" ng-if="chatRooms.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHAT_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li> -->\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsGroups.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat page-quick-sidebar-content-item-shown" ng-class="{active:messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_MESSAGE\' | translate}}..." ng-model="searchMessage">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n        </div>\n        <div class="page-quick-sidebar-item">\n          <div class="page-quick-sidebar-chat-user" data-wrapper-class="page-quick-sidebar-list">\n            <div class="page-quick-sidebar-nav">\n                <a href="#" class="page-quick-sidebar-back-to-list" data-ng-click="goBack()"><i class="icon-arrow-left"></i>Back</a>\n            </div>\n            <div id="page-quick-sidebar-chat-user-messages" class="page-quick-sidebar-chat-user-messages" data-ng-style="style2" ng-scrollbars>\n              <div class="post animate-repea" data-ng-repeat="chatMessage in chatRoom.ChatMessages | filter:searchMessage as resultsMessage" data-ng-class="chatMessage.UserId === currentUser.id ? \'in\' : \'out\'">\n                <img class="avatar" alt="" ng-src="api/users/avatar/unknown_avatar"/>\n                <div class="message">\n                  <span class="arrow"></span>\n                  <a href="#" class="name">{{chatMessage.User.fullname || chatMessage.ChatVisitor .fullname}}</a> -\n                  <span class="datetime">\n                    <time is="relative-time" datetime="{{chatMessage.createdAt}}">\n                      April 1, 2014\n                    </time>\n                  </span>\n                  <ng-emoticons class="body" emoticons-data="chatMessage.body" emoticons-options="options"/>\n                  <!-- <div class="body" ng-bind-html="chatMessage.body"></div>\n                  <!-- <div ng-bind-html="chatMessage.body | emoticons:{\'linkTarget\':\'_blank\',\'newLine\':true}" class="ng-emoticons"></div> --> -->\n                </div>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="resultsMessage.length == 0">\n                <h5 class="media-heading"><i>{{\'MESSAGE_NO_MESSAGES_FOUND\' | translate | lowercase}}</i></h5>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="chatRoom.status === \'close\'">\n                <h5 class="media-heading"><i>{{\'MESSAGE_CHAT_CLOSED\' | translate | lowercase}}</i></h5>\n              </div>\n\n            </div>\n            <div class="page-quick-sidebar-chat-user-form">\n              <textarea rows="3" class="form-control" style="border:none;resize: none;" placeholder="Type a message here..." ng-enter="sendMessage()" data-ng-model="message.body" data-ng-disabled="chatRoom.status === \'close\'"></textarea>\n              <div class="btn-group" style="width:100%;background-color:white">\n                <button type="button" class="btn btn-default" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="addAgent(chatRoom.id)"><i class="icon-plus font-blue"></i></button>\n                <button type="button" class="btn btn-default pull-right" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="closeChatRoom(chatRoom.id)" data-ng-show="chatRoom.type === \'external\'"><i class="icon-close font-red"></i></button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("components/sidebar/sidebar.html",'<div id="page-sidebar" class="page-sidebar navbar-collapse collapse">\n  <!-- BEGIN SIDEBAR MENU -->\n  <!-- DOC: Apply "page-sidebar-menu-light" class right after "page-sidebar-menu" to enable light sidebar menu style(without borders) -->\n  <!-- DOC: Apply "page-sidebar-menu-hover-submenu" class right after "page-sidebar-menu" to enable hoverable(hover vs accordion) sub menu mode -->\n  <!-- DOC: Apply "page-sidebar-menu-closed" class right after "page-sidebar-menu" to collapse("page-sidebar-closed" class must be applied to the body element) the sidebar sub menu mode -->\n  <!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->\n  <!-- DOC: Set data-keep-expand="true" to keep the submenues expanded -->\n  <!-- DOC: Set data-auto-speed="200" to adjust the sub menu slide up/down speed -->\n  <ul class="page-sidebar-menu" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200" data-ng-class="{\'page-sidebar-menu-closed\': settings.layout.pageSidebarClosed}">\n    <!-- DOC: To remove the search box from the sidebar you just need to completely remove the below "sidebar-search-wrapper" LI element -->\n    <li class="sidebar-search-wrapper">\n      <!-- BEGIN RESPONSIVE QUICK SEARCH FORM -->\n      <!-- DOC: Apply "sidebar-search-bordered" class the below search form to have bordered search box -->\n      <!-- DOC: Apply "sidebar-search-bordered sidebar-search-solid" class the below search form to have bordered & solid search box -->\n      <form class="sidebar-search sidebar-search-bordered" action="extra_search.html" method="POST">\n        <a href="javascript:;" class="remove">\n        <i class="icon-close"></i>\n        </a>\n        <!-- <div class="input-group">\n          <input type="text" class="form-control" placeholder="Search...">\n          <span class="input-group-btn">\n          <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n          </span>\n        </div> -->\n      </form>\n      <!-- END RESPONSIVE QUICK SEARCH FORM -->\n    </li>\n\n    <!-- START DASHBOARD CASE -->\n    <li class="start" data-ng-show="isAssociated(\'dashboard\')" data-ng-class="{active: $state.is(\'main.dashboard\')}">\n      <a href="/dashboard/voice">\n        <i class="icon-rocket"></i>\n        <span class="title">{{\'APPLICATION_DASHBOARD\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.dashboard\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END DASHBOARD CASE -->\n\n    <!-- START YOURDASHBOARD LIST CASE -->\n    <li data-ng-class="{active: $state.is(\'main.yourdashboards.show\')}" data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-screen-desktop"></i>\n        <span class="title" >{{\'APPLICATION_YOUR_DASHBOARDS\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.yourdashboards.show\') }"></span>\n      </a>\n      <ul class="sub-menu" data-ng-init="getSidebarDashboards()">\n        <li data-ng-class="{active: $stateParams.id == dashboard.id && $state.includes(\'main.yourdashboards.show\')}" data-ng-repeat="dashboard in dashboards" data-ng-show="dashboard[Auth.getRole()] && dashboard.visible">\n          <a href="/yourdashboards/show/{{dashboard.id}}" >\n          <i class="icon-screen-tablet"></i>\n          <span class="title" >{{dashboard.name}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <!-- END YOURDASHBOARD LIST CASE -->\n\n    <!-- START STAFF SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_STAFF\' | translate}}  </span> </h3>\n    </li>\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START USERS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'users\')" data-ng-class="{active: $state.includes(\'main.users\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.users\')}">\n      <a href="/users/list">\n        <i class="icon-eye"></i>\n        <span class="title" >{{\'APPLICATION_USERS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.users\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END USERS CASE -->\n\n    <!-- START AGENTS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'agents\')" data-ng-class="{active: $state.includes(\'main.agents\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.agents\')}">\n      <a href="/agents/list">\n        <i class="icon-people"></i>\n        <span class="title" >{{\'APPLICATION_AGENTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.agents\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AGENTS CASE -->\n\n    <!-- START TEAMS CASE -->\n    <li data-ng-show="isAssociated(\'teams\')" data-ng-class="{active: $state.includes(\'main.teams\')}">\n      <a href="/teams/list">\n        <i class="icon-shield"></i>\n        <span class="title" >{{\'APPLICATION_TEAMS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.teams\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END TEAMS CASE -->\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START CHANNELS SEPARATOR -->\n    <li class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CHANNELS\' | translate}}  </span> </h3>\n    </li>\n\n    <!-- START icon-link CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{ active: $state.includes(\'main.voice\') }">\n      <a href="javascript:;">\n        <i class="icon-earphones-alt"></i>\n        <span class="title">{{ \'APPLICATION_VOICE\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.voice.queues\')}">\n          <a href="/voice/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title">{{\'APPLICATION_QUEUES\' | translate}}</span>\n          </a>\n        </li>\n        <li>\n          <a href="javascript:;">\n          <i class="icon-directions"></i>\n          <span class="title"> {{ \'APPLICATION_ROUTES\' | translate}} </span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice.routes\') }"></span>\n          <ul class="sub-menu">\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.inbound\')}">\n              <a href="/voice/routes/inbound/list">\n              <i class="icon-call-in"></i>\n              <span class="title"> {{\'APPLICATION_INBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.outbound\')}">\n              <a href="/voice/routes/outbound/list">\n              <i class="icon-call-out"></i>\n              <span class="title"> {{\'APPLICATION_OUTBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.internal\')}">\n              <a href="/voice/routes/internal/list">\n              <i class="icon-reload"></i>\n              <span class="title"> {{\'APPLICATION_INTERNALS\' | translate}} </span>\n              </a>\n            </li>\n          </ul>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.contexts\')}">\n          <a href="/voice/contexts/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_CONTEXTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.voicemails\')}">\n          <a href="/voice/voicemails/list">\n          <i class="icon-envelope-letter"></i>\n          <span class="title"> {{\'APPLICATION_VOICEMAILS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.mohs\')}">\n          <a href="/voice/mohs/list">\n          <i class="icon-music-tone"></i>\n          <span class="title"> {{\'APPLICATION_MOH\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.voice.realtime\')}">\n          <a href="/voice/realtime/view/agents">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END icon-link CASE -->\n\n    <!-- START CHAT CASE -->\n    <li data-ng-show="isAssociated(\'chat\')" data-ng-class="{ active: $state.includes(\'main.chat\') }">\n      <a href="javascript:;">\n        <i class="icon-bubble"></i>\n        <span class="title">{{\'APPLICATION_CHAT\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.chat\') }"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.chat.websites\')}">\n          <a href="/chat/websites/list">\n          <i class="icon-globe"></i>\n          <span class="title"> {{\'APPLICATION_WEB_SITES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.chat.queues\')}">\n          <a href="/chat/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.chat.realtime\')}">\n          <a href="/chat/realtime/view/agents">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END CHAT CASE -->\n\n    <!-- START MAIL CASE -->\n    <li data-ng-class="{ active: $state.includes(\'main.mail\') }">\n      <a href="javascript:;">\n        <i class="icon-envelope"></i>\n        <span class="title">{{\'APPLICATION_MAIL\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.mail\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.accounts\') || $state.includes(\'main.mail.account\')}">\n          <a href="/mail/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{\'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.queues\') || $state.includes(\'main.mail.queue\')}">\n          <a href="/mail/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.mail.inbox\')}">\n          <a href="/mail/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{\'APPLICATION_INBOX\' | translate}} </span>\n          </a>\n        </li>\n        <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.statistics\')}">\n          <a href="/mail/statistics/summary">\n          <i class="icon-eyeglass"></i>\n          <span class="title"> {{\'APPLICATION_STATISTICS\' | translate}} </span>\n          </a>\n        </li> -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.templates\')}">\n          <a href="/mail/templates/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_TEMPLATES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.timeline\')}">\n          <a href="/mail/timeline/list">\n          <i class="icon-list"></i>\n          <span class="title"> {{\'APPLICATION_TIMELINE\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.realtime\')}">\n          <a href="/mail/realtime/view/agents">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END MAIL CASE -->\n\n    <!-- START FAX CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.fax\')}">\n    <!-- <li data-ng-show="license.fax" data-ng-class="{active: $state.includes(\'main.fax\')}"> -->\n      <a href="javascript:;">\n        <i class="icon-paper-plane"></i>\n        <span class="title"> {{ \'APPLICATION_FAX\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.fax\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.accounts\')}">\n          <a href="/fax/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{ \'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.queues\')}">\n          <a href="/fax/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{ \'APPLICATION_QUEUES\' | translate }} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.fax.inbox\')}">\n          <a href="/fax/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{ \'APPLICATION_INBOX\' | translate }} </span>\n          </a>\n        </li>\n        <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.statistics\')}">\n          <a href="/fax/statistics/summary">\n          <i class="icon-eyeglass"></i>\n          <span class="title"> {{ \'APPLICATION_STATISTICS\' | translate }} </span>\n          </a>\n        </li> -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.automations\')}">\n          <a href="/fax/automations/list">\n          <i class="icon-settings"></i>\n          <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.timeline\')}">\n          <a href="/fax/timeline/list">\n          <i class="icon-list"></i>\n          <span class="title"> {{\'APPLICATION_TIMELINE\' | translate}} </span>\n          </a>\n        </li>\n      </ul>\n    </li>\n    <!-- END FAX CASE -->\n    <!-- END CHANNELS SEPARATOR -->\n\n    <!-- START INTEGRATIONS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span translate> APPLICATION_INTEGRATIONS </span> </h3>\n    </li>\n    <!-- START INTEGRATION CASE -->\n    <!--\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.market\')}">\n      <a href="/market">\n        <i class="icon-handbag"></i>\n        <span class="title" translate>Market Place</span>\n        <span data-ng-show="$state.includes(\'main.market\')" class="selected"></span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.integrations.list\')}">\n      <a href="/integrations/list">\n        <i class="icon-game-controller"></i>\n        <span class="title" translate>Test Your App</span>\n        <span data-ng-show="$state.includes(\'main.integrations.list\')" class="selected"></span>\n      </a>\n    </li>\n    -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.zendesk\')}">\n      <a href="/zendesk/list">\n        <i class="icon-handbag"></i>\n        <span class="title" >{{\'APPLICATION_ZENDESK\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.zendesk\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END INTEGRATIONS SEPARATOR -->\n\n    <!-- START TOOLS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_TOOLS\' | translate}}  </span> </h3>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.triggers\')}">\n      <a href="/triggers/list">\n      <i class="icon-bulb"></i>\n      <span class="title"> {{\'APPLICATION_TRIGGERS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.automations\')}">\n      <a href="/automations/list">\n      <i class="icon-settings"></i>\n      <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.trunks\')}">\n      <a href="/trunks/list">\n      <i class="icon-link"></i>\n      <span class="title"> {{\'APPLICATION_TRUNKS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.intervals\')}">\n      <a href="/intervals/list">\n      <i class="icon-clock"></i>\n      <span class="title"> {{\'APPLICATION_INTERVALS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.variables\')}">\n      <a href="/variables/list">\n      <i class="fa fa-eye"></i>\n      <span class="title" >{{\'APPLICATION_VARIABLES\' | translate}}  </span>\n      </a>\n    </li>\n    <!-- START CALLYSQUARE CASE -->\n    <!-- <li data-ng-show="isAssociated(\'callysquare\')" data-ng-class="{active: $state.includes(\'main.square\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.square\')}">\n      <a href="javascript:;">\n        <i class="fa fa-superscript"></i>\n        <span class="title" >{{\'APPLICATION_CALLYSQUARE\' | translate}}</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.square.projects\')}">\n          <a href="/square/projects/list">\n          <i class="fa fa-slack"></i>\n          <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}}  </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.square.odbc\')}">\n          <a href="/square/odbcs/list">\n          <i class="fa fa-database"></i>\n          <span class="title" >{{\'APPLICATION_ODBC\' | translate}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.yourdashboards.list\') || $state.includes(\'main.yourdashboards.settings\')}">\n      <a href="/yourdashboards/list">\n      <i class="icon-grid"></i>\n      <span class="title"> {{\'APPLICATION_DASHBOARDS_MANAGER\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END CALLYSQUARE CASE -->\n\n    <!-- START AUTODIALER CASE -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-call-out"></i>\n        <span class="title">AutoDialer</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n      </ul>\n    </li> -->\n    <!-- END AUTODIALER CASE -->\n\n    <!-- START ANALYTICS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'analytics\')"> -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="#/analytics">\n        <i class="icon-graph"></i>\n        <span class="title" >{{\'APPLICATION_ANALYTICS\' | translate}}</span>\n      </a>\n    </li> -->\n    <!-- END ANALYTICS CASE -->\n\n    <!-- END TOOLS SEPARATOR -->\n\n    <!-- START AUDIO SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_AUDIO\' | translate}}  </span> </h3>\n    </li>\n    <!-- END AUDIO SEPARATOR -->\n\n    <!-- START AUDIO CASE -->\n    <!-- <li data-ng-show="isAssociated(\'audio\')" data-ng-class="{active: $state.is(\'main.sound\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.sounds\')}">\n      <a href="/sounds/list">\n        <i class="icon-music-tone-alt"></i>\n        <span class="title" >{{\'APPLICATION_SOUNDS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.sounds\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AUDIO CASE -->\n\n\n    <!-- START SETTINGS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_SETTINGS\' | translate}}  </span> </h3>\n    </li>\n    <!-- END SETTINGS SEPARATOR -->\n\n    <!-- START UPDATES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.updates\')}">\n      <a href="/updates/list">\n        <i class="icon-cloud-download"></i>\n        <span class="title" >{{\'APPLICATION_UPDATES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.updates\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END UPDATES CASE -->\n\n  </ul>\n  <!-- END SIDEBAR MENU -->\n</div>\n');
-}]);
\ No newline at end of file
diff --git a/public/app/d242789b.app.css b/public/app/d242789b.app.css
new file mode 100644
index 0000000..125eae9
--- /dev/null
+++ b/public/app/d242789b.app.css
@@ -0,0 +1 @@
+.badge,.btn-arrow-link,.btn-lg{vertical-align:middle}.chart-tooltip,.chart-tooltip .label,.chat-form,.dashboard-stat .more,.dashboard-stat2 .display:after,.dashboard-stat2 .progress-info,.dashboard-stat2 .progress-info .progress,.dashboard-stat:after,.dropdown-menu li>a,.feeds li .col1,.feeds li:after,.form .form-actions:after,.general-item-list>.item>.item-head:after,.portlet>.portlet-title:after,.social-icons:after,.tabbable:after,.table-toolbar:after,.tiles .tile .tile-object:after,.tiles:after{clear:both}.animate-enter{-webkit-transition:1s linear all;transition:1s linear all;opacity:0}.animate-enter.animate-enter-active{opacity:1}#faxMessages::-webkit-scrollbar-track{background-color:#fff!important}#faxMessages::-webkit-scrollbar{width:5px}.interval-to{min-height:34px;padding:9px 12px}.inbox{margin-bottom:20px}.inbox .inbox{margin-bottom:0}.inbox .tab-content{overflow:inherit}.inbox .inbox-loading{display:none;font-size:22px;font-weight:300}.inbox .inbox-nav{margin:0;padding:0;list-style:none}.inbox .inbox-nav li{position:relative}.inbox .inbox-nav li a{color:#4d82a3;display:block;font-size:15px;border-left:none;text-align:left!important;padding:8px 14px;margin-bottom:1px;background:#f4f9fd}.inbox .inbox-nav li.active a,.inbox .inbox-nav li.active:hover a{color:#fff;border-left:none;background:#169ef4!important;text-decoration:none}.inbox .inbox-nav li.active b{top:12px;right:-6px;width:6px;position:absolute;display:inline-block;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:6px solid #169ef4}.inbox .inbox-nav li:hover a{color:#4d82a3;background:#eef4f7!important;text-decoration:none}.inbox .inbox-nav li.compose-btn a{color:#fff;text-shadow:none;text-align:center;margin-bottom:18px;background:#35aa47}.inbox .pagination-control,.inbox th.text-right{text-align:right}.inbox .inbox-nav li.compose-btn i,.inbox .inbox-nav li.compose-btn:hover i{top:1px;color:#fff;font-size:15px;position:relative;background:0 0!important}.inbox .inbox-nav li.compose-btn a:hover{background-color:#1d943b!important}.inbox .inbox-header{overflow:hidden}.inbox .inbox-header h1{margin:0 0 10px;color:#666}.inbox tr label,.inbox ul.inbox-nav{margin-bottom:0}.inbox .pagination-control .pagination-info{display:inline-block;padding-right:10px;font-size:14px;line-height:14px}.inbox tr{color:#777;font-size:13px}.inbox tr label{display:inline-block}.inbox tr.unread td{font-weight:600}.audio-portlet .audio-portlet-title,h1,h2,h3,h4,h5,h6{font-family:"Open Sans",sans-serif;font-weight:300}.inbox td i.icon-paper-clip{top:2px;color:#d8e0e5;font-size:17px;position:relative}.inbox tr i.icon-star,.inbox tr i.icon-trash{cursor:pointer}.inbox tr i.icon-star{color:#eceef0}.inbox tr i.icon-star:hover,.inbox tr i.inbox-started{color:#fd7b12}.inbox .table td,.inbox .table th{border:none}.inbox .table th{background:#eef4f7;border-bottom:solid 5px #fff}.inbox .inbox-drafts,.inbox-view-info{border-top:solid 1px #eee;border-bottom:solid 1px #eee}.inbox th label.inbox-select-all{color:#828f97;font-size:13px;padding:1px 4px 0}.inbox ul.inbox-nav li{padding:0}.inbox ul.inbox-nav li span{color:#828f97;font-size:12px;margin-right:10px}.inbox ul.inbox-nav i{color:#fff;padding:1px 0;font-size:15px;cursor:pointer;background:#d0dde4!important}.inbox ul.inbox-nav i:hover{background:#169ef4!important}.inbox td.text-right{width:100px;text-align:right}.inbox td.inbox-small-cells,.small-cells{width:10px}.inbox .table-hover tbody tr:hover>td,.inbox .table-hover tbody tr:hover>th,.inbox .table-striped tbody>tr:nth-child(odd)>td,.inbox .table-striped tbody>tr:nth-child(odd)>th{background:#f8fbfd;cursor:pointer}.inbox .table-hover tbody tr:hover>td,.inbox .table-hover tbody tr:hover>th{background:#eef4f7}.inbox .inbox-drafts{padding:8px 0;text-align:center}.inbox-view-header{margin-bottom:20px}.inbox-view-header h1{color:#666;font-size:22px;line-height:24px;margin-bottom:0!important}.inbox-view-header h1 a{top:-2px;color:#fff;cursor:pointer;font-size:13px;padding:2px 7px;line-height:16px;position:relative;background:#b0bcc4;display:inline-block}.inbox-view-header h1 a:hover{background:#aab5bc;text-decoration:none}.inbox-view-header i.icon-print{color:#94a4ab;cursor:pointer;font-size:14px;display:inline-block;padding:6px 8px!important;background:#edf1f4!important}.inbox-view-header i.icon-print:hover{background:#e7ebef!important}.inbox-view-info{color:#666;padding:5px 0;margin-bottom:10px}.inbox-view-info strong{color:#666;margin:0 10px 0 5px}.inbox-view-info .inbox-info-btn{text-align:right}.inbox-view-info .inbox-info-btn ul{text-align:left}.inbox-view-info button{top:2px;color:#94a4ab;font-size:13px;margin-left:4px;padding:3px 10px;position:relative;background:#edf1f4}.inbox-view-info button:hover{color:#94a4ab;background:#e7ebef}.inbox-view{color:#666;padding:15px 0 0}.inbox-view a{color:#169ce9}.inbox-attached{line-height:16px}.inbox-attached a{margin:0 2px}.inbox-attached span,.inbox-compose-btn button i{margin-right:3px}.inbox-attached img{height:auto;max-width:250px;margin-bottom:5px}.inbox-attached strong{color:#555;display:block;font-size:13px}.inbox-attached .margin-bottom-25{margin-bottom:25px}.inbox-attached .margin-bottom-15{margin-bottom:15px}.inbox-compose{margin-top:1px;border:1px solid #eee}.inbox-compose-btn{padding:8px 4px;background:#f0f6fa}.inbox-compose-attachment{padding:8px}.inbox-compose-attachment .btn{padding:4px 10px}.inbox-compose-btn button{color:#fff;font-size:14px;margin-left:4px;padding:4px 10px;background:#c0cfdd}.inbox-compose-btn button:hover{color:#fff;background:#4d90fe}.inbox-compose .inbox-form-group{margin-bottom:0;position:relative;border-bottom:solid 1px #eee}.inbox-compose .controls{margin-left:85px}.inbox-compose .inbox-form-group>label{width:80px;float:left;color:#979797;text-align:right}.inbox-compose .controls>input{border:none!important}.inbox-compose .controls-to{padding-right:55px}.inbox-compose .controls-bcc,.inbox-compose .controls-cc{padding-right:20px}.inbox-compose .inbox-form-group a.close{top:13px;right:10px;position:absolute}.inbox-compose .mail-to .inbox-cc-bcc{display:inline-block;top:7px;right:10px;color:#979797;font-size:14px;cursor:pointer;position:absolute}.inbox-compose .mail-to .inbox-bcc{margin-left:5px}.inbox-compose .mail-to inbox-bcc:hover,.inbox-compose .mail-to inbox-cc:hover{color:#777}.inbox-compose .wysihtml5{padding:0!important;margin:0!important;border:0!important}.inbox-compose .wysihtml5-sandbox{padding:0!important;margin:5px 0 0!important;display:block!important;border:0!important;width:100%!important;border-left:none;border-right:none}.inbox-compose .wysihtml5-toolbar{border:0;border-bottom:1px solid #eee}.inbox-compose .wysihtml5-toolbar>li{height:34px;margin-right:0;margin-bottom:0}.inbox-compose .wysihtml5-toolbar>li>a,.inbox-compose .wysihtml5-toolbar>li>div>a{background:#fff}.inbox-compose .wysihtml5-toolbar>li>a:hover,.inbox-compose .wysihtml5-toolbar>li>div>a:hover{background:#f1f1f1;border-radius:0}.inbox-compose .wysihtml5-toolbar .dropdown.open .dropdown-toggle,ul.wysihtml5-toolbar a.btn.wysihtml5-command-active{background:#eee!important}@media (max-width:480px){.inbox-compose .inbox-form-group>label{margin-top:7px}}#mailMessages::-webkit-scrollbar-track{background-color:#fff!important}#mailMessages::-webkit-scrollbar{width:5px}.inbox-editor{padding:10px;margin:0!important}blockquote{margin-top:20px;margin-left:10px;margin-bottom:20px;border-left:1px solid #666!important;padding-left:5px;display:block;opacity:.7;filter:alpha(opacity=70)}.wysiwyg-color-black{color:#000}.wysiwyg-color-silver{color:silver}.wysiwyg-color-gray{color:gray}.wysiwyg-color-white{color:#fff}.wysiwyg-color-maroon{color:maroon}.wysiwyg-color-red{color:red}.wysiwyg-color-purple{color:purple}.wysiwyg-color-fuchsia{color:#f0f}.wysiwyg-color-green{color:green}.wysiwyg-color-lime{color:#0f0}.wysiwyg-color-olive{color:olive}.wysiwyg-color-yellow{color:#ff0}.wysiwyg-color-navy{color:navy}.wysiwyg-color-blue{color:#00f}.wysiwyg-color-teal{color:teal}.wysiwyg-color-aqua{color:#0ff}.wysiwyg-color-orange{color:orange}.our-integrations h3{margin-bottom:0;padding:10px;background:#f9f9f9}.our-integrations small{display:block;font-size:12px;color:#999;margin-top:5px}.our-integrations .integration-info{padding:10px;overflow:hidden;background:#f5f5f5}.audio-portlet .audio-portlet-title{margin-bottom:0;padding:10px;background:#f9f9f9;font-size:17px;word-wrap:break-word;margin-top:20px;line-height:1.1;color:inherit;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.audio-portlet .audio-portlet-title a{display:block;word-wrap:break-word;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.audio-portlet .file-info{padding:10px;overflow:hidden;background:#f5f5f5;height:105px}.audio-portlet-wrapper{float:left;margin:0 0 0 20px;-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s;-moz-transition:all .5s linear;-webkit-transition:all .5s linear;transition:all .5s linear}.animate-repeat{list-style:none;box-sizing:border-box}.animate-repeat.ng-enter,.animate-repeat.ng-leave,.animate-repeat.ng-move{-webkit-transition:all linear .5s;transition:all linear .5s}.animate-repeat.ng-enter,.animate-repeat.ng-leave.ng-leave-active,.animate-repeat.ng-move{opacity:0;max-height:0}.animate-repeat.ng-enter.ng-enter-active,.animate-repeat.ng-leave,.animate-repeat.ng-move.ng-move-active{opacity:1;max-height:600px}audio{-moz-transition:all .5s linear;-webkit-transition:all .5s linear;transition:all .5s linear;border-radius:0}@media (min-width:502px){.audio-portlet-wrapper{width:240px}.editable-error,audio{width:220px}}@media (max-width:501px){.audio-portlet-wrapper{width:320px}.editable-error,audio{width:300px}}.editable-error{white-space:pre-line}#description_div,.table-scrollable>.table>tbody>tr>th,.table-scrollable>.table>tfoot>tr>td,.table-scrollable>.table>tfoot>tr>th,.table-scrollable>.table>thead>tr>th{white-space:nowrap}#description_div{text-overflow:ellipsis;overflow:hidden;word-wrap:break-word}.portlet-title.collapsible{cursor:pointer}.group{background-color:#fff;padding:15px;border-radius:5px;border:1px solid #666}.group-conditions{margin-left:20px}.alert-group{margin-top:10px;margin-bottom:10px;border-color:#dcc896}.condition,.group{margin-top:15px;margin-bottom:15px}.ui-padding{padding-bottom:200px}div[contenteditable]{max-height:100px;overflow:auto;display:block;width:100%;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}a,button,code,div,img,input,label,li,p,pre,select,span,table,td,textarea,th,ul{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.img-circle{border-radius:50%!important}.img-rounded{border-radius:6px!important}body{color:#333;font-family:"Open Sans",sans-serif;padding:0!important;margin:0!important;font-size:13px;direction:ltr}@-ms-viewport{width:device-width}@-o-viewport{width:device-width}@viewport{width:device-width}@-ms-viewport{width:auto!important}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background-color:#eaeaea;border-radius:0;box-shadow:none;border:0}::-webkit-scrollbar-thumb{background-color:#cecece;border-radius:0;box-shadow:none;border:0}::-webkit-scrollbar-thumb:hover{background-color:#aaa}.bars,.chart,.pie,.primary-font{font-family:"Open Sans",sans-serif!important}h1{font-size:33px}h2{font-size:27px}h3{font-size:23px}h4{font-size:17px}h5{font-size:13px}h6{font-size:12px}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#444}h1.block,h2.block,h3.block,h4.block,h5.block,h6.block{padding-top:10px;padding-bottom:10px}a{text-shadow:none;color:#5b9bd1}a:active,a:focus,a:hover{outline:0}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:0}.list-unstyled li>.list-unstyled{margin-left:25px}code{border:1px solid #e1e1e1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.1);-moz-box-shadow:0 1px 4px rgba(0,0,0,.1);box-shadow:0 1px 4px rgba(0,0,0,.1)}.disabled-link .disable-target{opacity:.5!important;filter:alpha(opacity=50)!important}.disabled-link .disable-target:hover,.disabled-link:hover{cursor:not-allowed!important}a:hover{color:#3175af;cursor:pointer}.primary-link{color:#65A0D0;font-weight:600}.primary-link:hover{color:#5194ca}.rounded-2{border-radius:2px!important}.rounded-3{border-radius:3px!important}.rounded-4{border-radius:4px!important}.circle{border-radius:25px!important}.circle-right{border-radius:0 25px 25px 0!important}.circle-left{border-radius:25px 0 0 25px!important}.circle-bottom{border-radius:0 0 25px 25px!important}.circle-top{border-radius:25px 25px 0 0!important}.display-hide,.display-none{display:none}.hidden{display:none!important}.bold{font-weight:700!important}.thin{font-weight:300!important}.uppercase{text-transform:uppercase!important}.fix-margin{margin-left:0!important}.border{border:1px solid red}.font-hg{font-size:23px}.font-lg{font-size:18px}.font-md{font-size:14px}.font-sm{font-size:13px}.font-xs{font-size:11px}.inline{display:inline}.inline-block{display:inline-block}.text-align-reverse{text-align:right}.top-news a,.top-news span{text-align:left;display:block}.no-space{margin:0!important;padding:0!important}.no-margin{margin:0}.margin-bottom-5{margin-bottom:5px}.margin-bottom-10{margin-bottom:10px!important}.margin-top-10{margin-top:10px!important}.margin-top-15{margin-top:15px!important}.margin-bottom-15{margin-bottom:15px!important}.margin-bottom-20{margin-bottom:20px!important}.margin-top-20{margin-top:20px!important}.margin-bottom-25{margin-bottom:25px!important}.margin-bottom-30{margin-bottom:30px!important}.margin-right-10{margin-right:10px!important}.visible-ie8{display:none}.ie8 .visible-ie8{display:inherit!important}.visible-ie9{display:none}.ie9 .visible-ie9{display:inherit!important}.hidden-ie8{display:inherit}.ie8 .hidden-ie8{display:none!important}.hidden-ie9{display:inherit}.ie9 .hidden-ie9{display:none!important}@media (max-width:1024px){.hidden-1024{display:none}}@media (max-width:480px){.hidden-480{display:none}}@media (max-width:320px){.hidden-320{display:none}}.scrollspy-example{position:relative;height:200px;margin-top:10px;overflow:auto}.util-btn-group-margin-bottom-5 .btn-group,.util-btn-margin-bottom-5 .btn{margin-bottom:5px!important}.user-info{margin-bottom:10px!important}.user-info img{float:left;margin-right:5px}.number-stats .stat-left,.number-stats .stat-left .stat-chart{float:right}.user-info .details{display:inline-block}.user-info .label{font-weight:300;font-size:11px}.top-news{color:#fff;margin:8px 0}.top-news em{font-size:13px;margin-bottom:0;font-style:normal;display:block}.top-news em i{font-size:14px}.top-news span{font-size:18px;margin-bottom:5px}.top-news a{padding:10px;position:relative;margin-bottom:10px}.top-news a .top-news-icon{right:8px;bottom:15px;opacity:.3;font-size:35px;position:absolute;filter:alpha(opacity=30)}.blog-images{margin-bottom:0}.blog-images li{padding:0;margin:0;display:inline}.blog-images li a:hover{text-decoration:none}.blog-images li img{width:50px;height:50px;opacity:.6;margin:0 2px 8px}.blog-images li img:hover{opacity:1;box-shadow:0 0 0 4px #72c02c;transition:all .4s ease-in-out 0s;-moz-transition:all .4s ease-in-out 0s;-webkit-transition:all .4s ease-in-out 0s}.sidebar-tags li{padding:0}.sidebar-tags li a{color:#555;font-size:12px;padding:3px 5px;background:#f7f7f7;margin:0 2px 5px 0;display:inline-block}.sidebar-tags li a:hover,.sidebar-tags li a:hover i{background:#EEE;text-decoration:none;-webkit-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.sidebar-tags li a i{color:#777}.ver-inline-menu{padding:0;margin:0;list-style:none}.ver-inline-menu li{position:relative;margin-bottom:1px}.ver-inline-menu li i{width:37px;height:37px;display:inline-block;color:#b9cbd5;font-size:15px;padding:12px 10px 10px 8px;margin:0 8px 0 0;text-align:center;background:#e0eaf0!important}.ver-inline-menu li a{font-size:14px;font-weight:300;color:#557386;display:block;background:#f0f6fa;border-left:solid 2px #c4d5df}.ver-inline-menu li:hover a{background:#e0eaf0;text-decoration:none}.ver-inline-menu li:hover i{color:#fff;background:#c4d5df!important}.ver-inline-menu li.active a{border-left:solid 2px #0c91e5}.ver-inline-menu li.active i{background:#0c91e5!important}.ver-inline-menu li.active a,.ver-inline-menu li.active i{color:#fff;background:#169ef4;text-decoration:none}.ver-inline-menu li.active a,.ver-inline-menu li:hover a{font-size:14px}.ver-inline-menu li.active:after{content:'';display:inline-block;border-bottom:6px solid transparent;border-top:6px solid transparent;border-left:6px solid #169ef4;position:absolute;top:12px;right:-5px}.list-separated{margin-top:10px;margin-bottom:15px}.list-separated>div{border-right1:1px solid #f5f5f5}.list-separated>div:last-child{border-right:0}@media (max-width:767px){.ver-inline-menu>li.active:after{display:none}.list-separated>div{margin-bottom:20px}}.number-stats{margin:10px 0}.number-stats .stat-number{display:inline-block;margin:0 5px}.number-stats .stat-number .title{font-size:13px;margin-bottom:3px;color:#B8C3C7}.number-stats .stat-number .number{font-size:27px;line-height:27px;color:#7D8C9D}.number-stats>div{border-right:1px solid #f5f5f5}.number-stats>div:last-child{border-right:0}.number-stats .stat-left .stat-number{float:right;text-align:right}.number-stats .stat-right{float:left!important}.number-stats .stat-right .stat-number{float:left;text-align:left}.number-stats .stat-right .stat-chart{float:left}.number-stats .stat-number{float:left;text-align:left}.number-stats .stat-chart{display:inline-block;margin:0 5px;float:left}.general-item-list>.item{padding:10px 0;border-bottom:1px solid #F1F4F7}.general-item-list>.item:last-child{border-bottom:0}.general-item-list>.item>.item-head{margin-bottom:5px}.general-item-list>.item>.item-head:after,.general-item-list>.item>.item-head:before{content:" ";display:table}.general-item-list>.item>.item-head>.item-details{display:inline-block;float:left}.general-item-list>.item>.item-head>.item-details>.item-pic{height:35px;margin-right:10px;-webkit-border-radius:100%;-moz-border-radius:100%;-ms-border-radius:100%;-o-border-radius:100%;border-radius:100%}.general-item-list>.item>.item-head>.item-details>.item-name{display:inline-block;margin-right:10px}.general-item-list>.item>.item-head>.item-details>.item-label{color:#C0C9CC}.general-item-list>.item>.item-head>.item-status{color:#C0C9CC;top:10px;position:relative;display:inline-block;float:right}.general-item-list>.item>.item-head>.item-status>.badge{margin-top:-2px}.general-item-list>.item>.item-body{color:#96a5aa}.file-drop-zone{border:2px dashed #ddd;padding:30px;text-align:center}.file-drop-zone.file-drop-zone-over{border-color:#aaa}[class*=" fa-"],[class*=" glyphicon-"],[class*=" icon-"],[class^=fa-],[class^=glyphicon-],[class^=icon-]{display:inline-block;margin-top:1px;font-size:14px;line-height:14px;-webkit-font-smoothing:antialiased}li [class*=" fa-"],li [class*=" glyphicon-"],li [class*=" icon-"],li [class^=fa-],li [class^=glyphicon-],li [class^=icon-]{display:inline-block;width:1.25em;text-align:center}li [class*=" glyphicon-"],li [class^=glyphicon-]{top:2px}li [class*=" icon-"],li [class^=icon-]{top:1px;position:relative}li [class*=" fa-"].icon-large,li [class*=" glyphicon-"].icon-large,li [class*=" icon-"].icon-large,li [class^=fa-].icon-large,li [class^=glyphicon-].icon-large,li [class^=icon-].icon-large{width:1.5625em}.fa-sm,.icon-sm{font-size:12px}.fa-lg,.icon-lg{font-size:16px!important}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.icon-state-default{color:#c6c6c6}.icon-state-success{color:#45B6AF}.icon-state-info{color:#89C4F4}.icon-state-warning{color:#dfba49}.icon-state-danger{color:#F3565D}.fa-item{font-size:14px;padding:10px 10px 10px 20px}.fa-item i{font-size:16px;display:inline-block;width:20px;color:#333}.fa-item:hover{cursor:pointer;background:#eee}.badge-danger,.badge-default,.badge-info,.badge-primary,.badge-success,.badge-warning{background-image:none}.simplelineicons-demo .item-box{display:inline-block;font-size:16px;margin:0 -.22em 1em 0;padding-left:1em;width:100%}.simplelineicons-demo .item-box .item{background-color:#fff;color:#33383e;border-radius:8px;display:inline-block;padding:10px;width:100%}.bs-glyphicons,.glyphicons-demo ul{padding-left:0;padding-bottom:1px;margin-bottom:20px;overflow:hidden;list-style:none}.simplelineicons-demo .item-box .item span{font-size:22px}@media only screen and (min-width:768px){.simplelineicons-demo .item-box{width:33.333%}}.bs-glyphicon-class{text-align:center}.glyphicons-demo ul li{float:left;width:25%;height:115px;padding:10px;margin:0 -1px -1px 0;font-size:14px;line-height:1.4;text-align:center;border:1px solid #ddd}.glyphicons-demo .glyphicon{display:block;margin:5px auto 10px;font-size:24px;color:#444}.glyphicons-demo ul li:hover{background-color:rgba(86,61,124,.1)}.badge-default,.label-default{background-color:#c6c6c6}@media (min-width:768px){.glyphicons-demo ul li{width:12.5%}}.alert.alert-borderless{border:0}.badge{font-size:11px!important;font-weight:300;height:18px;padding:3px 6px;-webkit-border-radius:12px!important;-moz-border-radius:12px!important;border-radius:12px!important;text-shadow:none!important;text-align:center}.badge.badge-roundless{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.badge.badge-empty{display:inline-block;padding:0;min-width:8px;height:8px;width:8px}.badge-primary{background-color:#428bca}.badge-info{background-color:#89C4F4}.badge-success{background-color:#45B6AF}.badge-danger{background-color:#F3565D}.badge-warning{background-color:#dfba49}.nav.nav-pills>li>a>.badge,.nav.nav-stacked>li>a>.badge{margin-top:-2px}.dropdown-menu>li>a>.badge{position:absolute;margin-top:1px;right:3px;display:inline;font-size:11px;font-weight:300;text-shadow:none;height:18px;padding:3px 6px;text-align:center;vertical-align:middle;-webkit-border-radius:12px!important;-moz-border-radius:12px!important;border-radius:12px!important}.btn,.btn>i{font-size:14px}.dropdown-menu.badge-roundless{-webkit-border-radius:0!important;-moz-border-radius:0!important;border-radius:0!important}.btn{border-width:0;padding:7px 14px;outline:0!important;background-image:none!important;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none}.btn-group .btn.dropdown-toggle,.btn.active,.btn.dropdown-toggle,.btn:active,.btn:disabled,.btn:focus,.btn:hover,.btn[disabled]{outline:0!important;background-image:none!important;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;text-shadow:none}.btn-default{border-width:1px;padding:6px 13px;color:#333;background-color:#fff;border-color:#ccc}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-default.active,.btn-default:active,.btn-default:focus,.btn-default:hover,.open .btn-default.dropdown-toggle{color:#333;background-color:#ededed;border-color:#b3b3b3}.btn-default.active,.btn-default:active{background-image:none;background-color:#e0e0e0}.btn-default.active:hover,.btn-default:active:hover{background-color:#e6e6e6}.open .btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-default>i{color:#aaa}.btn-default>i[class*=icon-],.btn-default>i[class^=icon-]{color:#8c8c8c}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.active,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open .btn-primary.dropdown-toggle{color:#fff;background-color:#3379b5;border-color:#2a6496}.btn-primary.active,.btn-primary:active{background-image:none;background-color:#2d6ca2}.btn-primary.active:hover,.btn-primary:active:hover{background-color:#3071a9}.open .btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#45B6AF;border-color:#3ea49d}.btn-success.active,.btn-success:active,.btn-success:focus,.btn-success:hover,.open .btn-success.dropdown-toggle{color:#fff;background-color:#3b9c96;border-color:#307f7a}.btn-success.active,.btn-success:active{background-image:none;background-color:#348a84}.btn-success.active:hover,.btn-success:active:hover{background-color:#37918b}.open .btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#45B6AF;border-color:#3ea49d}.btn-success .badge{color:#45B6AF;background-color:#fff}.btn-info{color:#fff;background-color:#89C4F4;border-color:#72b8f2}.btn-info.active,.btn-info:active,.btn-info:focus,.btn-info:hover,.open .btn-info.dropdown-toggle{color:#fff;background-color:#68b4f1;border-color:#43a1ed}.btn-info.active,.btn-info:active{background-image:none;background-color:#51a8ef}.btn-info.active:hover,.btn-info:active:hover{background-color:#5aadf0}.open .btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#89C4F4;border-color:#72b8f2}.btn-info .badge{color:#89C4F4;background-color:#fff}.btn-warning{color:#fff;background-color:#dfba49;border-color:#dbb233}.btn-warning.active,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open .btn-warning.dropdown-toggle{color:#fff;background-color:#daae2b;border-color:#bb9521}.btn-warning.active,.btn-warning:active{background-image:none;background-color:#c89f23}.btn-warning.active:hover,.btn-warning:active:hover{background-color:#d0a625}.open .btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#dfba49;border-color:#dbb233}.btn-warning .badge{color:#dfba49;background-color:#fff}.btn-danger{color:#fff;background-color:#F3565D;border-color:#f13e46}.btn-danger.active,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open .btn-danger.dropdown-toggle{color:#fff;background-color:#f1353d;border-color:#ec111b}.btn-danger.active,.btn-danger:active{background-image:none;background-color:#ef1d26}.btn-danger.active:hover,.btn-danger:active:hover{background-color:#f0262f}.open .btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#F3565D;border-color:#f13e46}.btn-danger .badge{color:#F3565D;background-color:#fff}.btn-lg,.btn-lg>i{font-size:18px}.btn-lg{padding:10px 16px;line-height:1.33}.btn-sm,.btn-xs{padding:4px 10px 5px;font-size:13px;line-height:1.5}.btn-sm>i,.btn-xs>i{font-size:13px}.btn-xs{padding:1px 5px}.btn-group .input-sm .btn-default{padding-top:3px;padding-bottom:3px}.btn-arrow-link{display:inline-block;font-size:13px}.btn-arrow-link>i{font-size:14px;line-height:14px;vertical-align:top;margin:2px 3px;color:#999}.btn-arrow-link.btn-arrow-link-lg{font-size:14px}.btn-arrow-link.btn-arrow-link-lg>i{font-size:16px;line-height:16px;margin:2px 3px 1px}.btn-circle{border-radius:25px!important}.btn-circle-right{border-radius:0 25px 25px 0!important}.btn-circle-left{border-radius:25px 0 0 25px!important}.btn-circle-bottom{border-radius:0 0 25px 25px!important}.btn-circle-top{border-radius:25px 25px 0 0!important}.btn-icon-only{height:34px;width:34px;text-align:center;padding-left:0;padding-right:0}.btn-icon-only>[class^=icon-],.btn-icon-only>i{text-align:center;margin-top:2px}.btn-sm>[class*=" glyphicon-"],.btn-sm>[class^=glyphicon-],.btn-sm>i{font-size:13px}.btn-xs>[class*=" glyphicon-"],.btn-xs>[class^=glyphicon-],.btn-xs>i{font-size:11px}.btn-group.btn-group-circle>.btn:first-child{border-radius:25px 0 0 25px!important}.btn-group.btn-group-circle>.btn:last-child{border-radius:0 25px 25px 0!important}.btn-group.btn-group-devided>.btn{margin-right:5px}.btn-group.btn-group-devided>.btn:last-child{margin-right:0}.btn-group-vertical.btn-group-vertical-circle>.btn:first-child{border-radius:25px 25px 0 0!important}.btn-group-vertical.btn-group-vertical-circle>.btn:last-child{border-radius:0 0 25px 25px!important}.carousel.image-carousel .carousel-inner{padding-top:0;padding-bottom:0}.carousel.image-carousel .carousel-control i{position:absolute;top:40%}.carousel.image-carousel.image-carousel-hoverable .carousel-control i{display:none}.carousel.image-carousel.image-carousel-hoverable:hover .carousel-control i{display:inline-block}.carousel.image-carousel .carousel-control.left i{left:10px}.carousel.image-carousel .carousel-control.right i{right:10px}.carousel.image-carousel .carousel-indicators{margin-top:10px;bottom:-7px}.carousel.image-carousel .carousel-indicators li,.carousel.image-carousel .carousel-indicators li.active{background-color:#666}.carousel.image-carousel .carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px 15px 25px;background:#333;background:rgba(0,0,0,.75)}.carousel.image-carousel .carousel-caption h2,.carousel.image-carousel .carousel-caption h3,.carousel.image-carousel .carousel-caption h4,.carousel.image-carousel .carousel-caption p{text-align:left;line-height:20px;color:#fff}.carousel.image-carousel .carousel-caption h2,.carousel.image-carousel .carousel-caption h3,.carousel.image-carousel .carousel-caption h4{margin:0 0 5px}.carousel.image-carousel .carousel-caption h2 a,.carousel.image-carousel .carousel-caption h3 a,.carousel.image-carousel .carousel-caption h4 a{color:#aaa}.carousel.image-carousel .carousel-caption p{margin-bottom:0}.carousel.image-carousel .carousel-caption .item{margin:0}.bars,.chart,.pie{overflow:hidden;height:300px;width:100%;font-size:14px}.item-list.table .percent{width:30px;float:right;margin-right:10px;margin-top:3px}.chart-tooltip{z-index:100;background-color:#736e6e!important;padding:5px!important;color:#fff}.chart-tooltip .label{display:block;margin-bottom:2px}.bar-chart,.line-chart{display:none}.chats{margin:-15px 0 0;padding:0}.chats li{list-style:none;padding:5px 0;margin:10px auto;font-size:12px}.chats li .body{display:block}.chats li .avatar{height:45px;width:45px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;border-radius:50%!important}.chats li.in .avatar{float:left;margin-right:10px}.chats li.out .avatar{float:right;margin-left:10px}.chats li .name{color:#3590c1;font-size:13px;font-weight:400}.chats li .datetime{color:#333;font-size:13px;font-weight:400}.chats li .message{border-radius:5px!important;-webkit-border-readius:5px!important;-moz-border-radius:5px!important;display:block;padding:5px;position:relative}.chats li.in .message .arrow,.chats li.out .message .arrow{display:block;position:absolute;top:5px;border-top:8px solid transparent;border-bottom:8px solid transparent}.chats li.in .message{text-align:left;border-left:2px solid #e9e9e9;margin-left:65px;background:#e9e9e9}.chats li.in .message .arrow{left:-8px;width:0;height:0;border-right:8px solid #e9e9e9}.chats li.out .message{border-right:2px solid #C7E9E6;margin-right:65px;background:#C7E9E6;text-align:right}.chats li.out .message .arrow{right:-8px;border-left:8px solid #C7E9E6}.chats li.out .datetime,.chats li.out .name{text-align:right}.chat-form{margin-top:15px;padding:10px;background-color:#e9eff3;overflow:hidden}.chat-form .input-cont{margin-right:40px}.chat-form .input-cont .form-control{border:1px solid #ddd;width:100%!important;margin-top:0;background-color:#fff!important}.chat-form .input-cont .form-control:focus{border:1px solid #4b8df9!important}.chat-form .btn-cont{margin-top:-42px;position:relative;float:right;width:44px}.chat-form .btn-cont .arrow{position:absolute;top:17px;right:43px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid #4d90fe;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.chat-form .btn-cont .btn{margin-top:8px}.chat-form .btn-cont:hover .arrow{border-right-color:#0362fd}.chat-form .btn-cont:hover .btn{background-color:#0362fd}.close{display:inline-block;margin-top:0;margin-right:0;width:9px;height:9px;background-repeat:no-repeat!important;text-indent:-10000px;outline:0;background-image:url(../../assets/images/remove-icon-small.png)!important}.dropdown.open>.dropdown-toggle,.dropup.open>.dropdown-toggle{border-color:#ddd}.dropdown-menu{min-width:175px;position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;list-style:none;text-shadow:none;padding:0;margin:10px 0 0;background-color:#fffff;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #eee;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.dropdown-menu li.divider{background:#f1f3f6}.dropdown-menu li>a{padding:8px 14px;color:#555;text-decoration:none;display:block;font-weight:300;line-height:18px;white-space:nowrap}.dropdown-menu li>a>[class*=" fa-"],.dropdown-menu li>a>[class^=fa-]{color:#888}.dropdown-menu li>a>[class*=" icon-"],.dropdown-menu li>a>[class^=icon-]{color:#666}.dropdown-menu li>a>[class*=" glyphicon-"],.dropdown-menu li>a>[class^=glyphicon-]{color:#888}.dropdown-menu .active>a,.dropdown-menu .active>a:hover,.dropdown-menu li>a:hover{text-decoration:none;background-image:none;background-color:#f6f6f6;color:#555;filter:none}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px}.btn-group>.dropdown-menu,.dropdown-toggle>.dropdown-menu,.dropdown>.dropdown-menu{margin-top:10px}.btn-group>.dropdown-menu:before,.dropdown-toggle>.dropdown-menu:before,.dropdown>.dropdown-menu:before{position:absolute;top:-8px;left:9px;right:auto;display:inline-block!important;border-right:8px solid transparent;border-bottom:8px solid #e0e0e0;border-left:8px solid transparent;content:''}.btn-group>.dropdown-menu:after,.dropdown-toggle>.dropdown-menu:after,.dropdown>.dropdown-menu:after{position:absolute;top:-7px;left:10px;right:auto;display:inline-block!important;border-right:7px solid transparent;border-bottom:7px solid #fff;border-left:7px solid transparent;content:''}.btn-group>.dropdown-menu.pull-left:before,.dropdown-toggle>.dropdown-menu.pull-left:before,.dropdown>.dropdown-menu.pull-left:before{left:auto;right:9px}.btn-group>.dropdown-menu.pull-left:after,.dropdown-toggle>.dropdown-menu.pull-left:after,.dropdown>.dropdown-menu.pull-left:after{left:auto;right:10px}.btn-group>.dropdown-menu.pull-right:before,.dropdown-toggle>.dropdown-menu.pull-right:before,.dropdown>.dropdown-menu.pull-right:before{left:auto;right:9px}.btn-group>.dropdown-menu.pull-right:after,.dropdown-toggle>.dropdown-menu.pull-right:after,.dropdown>.dropdown-menu.pull-right:after{left:auto;right:10px}.btn-group.dropup>.dropdown-menu,.dropdown-toggle.dropup>.dropdown-menu,.dropdown.dropup>.dropdown-menu{margin-top:0;margin-bottom:10px}.btn-group.dropup>.dropdown-menu:after,.btn-group.dropup>.dropdown-menu:before,.dropdown-toggle.dropup>.dropdown-menu:after,.dropdown-toggle.dropup>.dropdown-menu:before,.dropdown.dropup>.dropdown-menu:after,.dropdown.dropup>.dropdown-menu:before{display:none!important}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:5px;left:100%;margin-top:-6px;margin-left:-1px}.dropdown-submenu>a:after{position:absolute;display:inline-block;font-size:14px;right:7px;top:7px;font-family:FontAwesome;height:auto;content:"\f105";font-weight:300}.label,.table.table-light>thead>tr>th{font-family:"Open Sans",sans-serif}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px}.nav.pull-right>li>.dropdown-menu,.nav>li>.dropdown-menu.pull-right{right:0;left:auto}.nav.pull-right>li>.dropdown-menu:before,.nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.nav.pull-right>li>.dropdown-menu:after,.nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.nav.pull-right>li>.dropdown-menu .dropdown-menu,.nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:absolute;float:left;width:auto;margin-top:0;background-color:#fff;border:1px solid #efefef;box-shadow:5px 5px rgba(102,102,102,.1)}.navbar-nav .open .dropdown-menu>li>a{padding:6px 0 6px 13px;color:#333}.navbar-nav .open .dropdown-menu>li>a:active,.navbar-nav .open .dropdown-menu>li>a:hover{ackground-color:#eee}}.feeds li .col1,.feeds li .col1>.cont>.cont-col2{width:100%;float:left}.dropdown-checkboxes,.dropdown-content,.dropdown-radiobuttons{padding:5px}.dropdown-content form{margin:0}.dropdown.inline .dropdown-menu{display:inline-block;position:relative}.dropdown-checkboxes label,.dropdown-radiobuttons label{display:block;font-weight:300;color:#333;margin-bottom:4px;margin-top:4px}.dropdown-checkboxes label .radio,.dropdown-radiobuttons label .radio{margin-right:3px}.feeds{margin:0;padding:0;list-style:none}.feeds li{background-color:#fafafa;color:#82949a;margin-bottom:7px}.feeds li:after,.feeds li:before{display:table;line-height:0;content:""}.feeds li:last-child{margin-bottom:0}.feeds li .col1>.cont{float:left;margin-right:75px;overflow:hidden}.feeds li .col1>.cont>.cont-col1{float:left;margin-right:-100%}.feeds li .col1>.cont>.cont-col1>.label{display:inline-block;padding:5px 4px 6px 5px;vertical-align:middle;text-align:center}.feeds li .col1>.cont>.cont-col1>.label>i{text-align:center;font-size:14px}.feeds li .col1>.cont>.cont-col2>.desc{margin-left:35px;padding-top:4px;padding-bottom:5px;overflow:hidden}.modal,.modal-open{overflow-y:auto!important}.feeds li .col2{float:left;width:75px;margin-left:-75px}.feeds li .col2>.date{padding:4px 9px 5px 4px;text-align:right;font-style:italic;color:#c1cbd0}.static-info{margin-bottom:10px}.static-info .name{font-size:14px}.static-info .value{font-size:14px;font-weight:600}.static-info.align-reverse .name,.static-info.align-reverse .value{text-align:right}.help-block{margin-top:5px;margin-bottom:5px}.help-inline{font-size:13px;color:#737373;display:inline-block;padding:5px}.form-inline input{margin-bottom:0!important}.control-label{margin-top:1px}.control-label .required{color:#e02222;font-size:12px;padding-left:2px}.form{padding:0!important}.form .form-body{padding:10px}.portlet.light .form .form-body{padding-left:0;padding-right:0}.form .form-actions{padding:20px 10px;margin:0;background-color:#f5f5f5;border-top:1px solid #e5e5e5}.portlet.light .form .form-actions{background:0 0;padding-left:0;padding-right:0}.portlet .form .form-actions{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.form .form-actions:after,.form .form-actions:before{content:" ";display:table}.form .form-actions.right{padding-left:0;padding-right:10px;text-align:right}.portlet.light .form .form-actions.right{padding-right:0}.form .form-actions.left{padding-left:10px;padding-right:0;text-align:left}.checkbox-list>label.checkbox-inline:first-child,.checkbox>label,.form-horizontal .checkbox>label,.portlet.light .form .form-actions.left,.radio-list>label.radio-inline:first-child{padding-left:0}.form .form-actions.nobg{background-color:transparent}.form .form-actions.top{margin-top:0;margin-bottom:20px;border-top:0;border-bottom:1px solid #e5e5e5}.portlet.light .form .form-actions.top{background:0 0}.form .form-actions .btn-set{display:inline-block}@media (max-width:767px){.form .form-actions .btn-set{margin-bottom:3px;margin-top:3px;float:left!important}}.form .form-section{margin:30px 0 25px;padding-bottom:5px;border-bottom:1px solid #eee}.form .form-bordered .form-group .help-block,.form .form-row-seperated .form-group .help-block,.form-horizontal .radio-list>label{margin-bottom:0}.form .form-section:first-child{margin-top:5px}.checkbox,.form-horizontal .checkbox{padding:0}.checkbox-list>label{display:block}.checkbox-list>label.checkbox-inline{display:inline-block}.input-icon>i,.radio-list>label{display:block}.form-control-static,.icon-btn,.input-inline,.radio-list>label.radio-inline{display:inline-block}.form-horizontal .radio-list .radio{padding-top:1px}.form-horizontal .radio>span{margin-top:2px}.form .form-row-seperated .portlet-body{padding:0}.form .form-row-seperated .form-group{margin:0;border-bottom:1px solid #efefef;padding:15px 0}.form .form-row-seperated .form-group.last{border-bottom:0;margin-bottom:0;padding-bottom:13px}.form .form-row-seperated .form-body{padding:0}.form .form-row-seperated .form-actions{padding-left:15px!important;padding-right:15px!important}.form .form-bordered .form-group{margin:0;border-bottom:1px solid #efefef}.form .form-bordered .form-group>div{padding:15px;border-left:1px solid #efefef}.form .form-bordered .form-group.last{border-bottom:0}.form .form-bordered .form-group .control-label{padding-top:20px}@media (max-width:991px){.form .form-bordered .form-group>div{border-left:0}.form .form-bordered .form-group .control-label{padding-top:10px}}.form .form-bordered .form-group .form-control{margin:0}.form .form-bordered .form-body{margin:0;padding:0}.form .form-bordered .form-actions{margin-top:0;padding-left:16px!important;padding-right:16px!important}@media (max-width:991px){.form .form-bordered .form-actions{padding-left:15px!important;padding-right:15px!important}}.form .form-horizontal.form-bordered.form-row-stripped .form-group:nth-child(even){background-color:#fcfcfc}.form .form-horizontal.form-bordered.form-row-stripped .form-control{background:#fff!important}.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even)>div{background-color:#fff}.form .form-horizontal.form-bordered.form-label-stripped .form-group:nth-child(even){background-color:#fcfcfc}.form-control::-moz-placeholder{color:#b3b3b3;opacity:1}.form-control:-ms-input-placeholder{color:#b3b3b3}.form-control::-webkit-input-placeholder{color:#b3b3b3}.form-control{font-size:14px;font-weight:400;color:#333;background-color:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#999;outline:0;-webkit-box-shadow:none;box-shadow:none}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}.form-control.height-auto{height:auto}.form-control.form-control-solid{background-color:#F1F3F8;border-color:#F1F3F8;color:#A6B2BA}.note .highlight,.note code,.uneditable-input{background-color:#fff}.form-control.form-control-solid:focus{border-color:#e3e7f1}.form-control.form-control-solid::-moz-placeholder{color:#acb7be;opacity:1}.form-control.form-control-solid:-ms-input-placeholder{color:#acb7be}.form-control.form-control-solid::-webkit-input-placeholder{color:#acb7be}.uneditable-input{padding:6px 12px;min-width:206px;font-size:14px;font-weight:400;height:34px;color:#333;border:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.icon-btn,.icon-btn:hover{-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease}.input-mini{width:45px!important}.input-xsmall{width:80px!important}.input-small{width:145px!important}.input-medium{width:240px!important}.input-large{width:320px!important}.input-xlarge{width:420px!important}.input-inline{width:auto;vertical-align:middle}.form-group .input-inline{margin-right:5px}.input-sm{height:28px;padding:5px 10px;font-size:13px}select.input-sm{height:28px;line-height:28px;padding:2px 10px}@media (max-width:768px){.input-large{width:250px!important}.input-xlarge{width:300px!important}}.input-group .btn-default{border-color:#e5e5e5}.input-group .input-group-addon{border-color:#e5e5e5;background:#e5e5e5;min-width:39px}.input-group .input-group-addon>i{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .help-inline,.has-success .radio,.has-success .radio-inline{color:#3c763d}input[type=text].spinner,input[type=password].spinner,input[type=datetime].spinner,input[type=datetime-local].spinner,input[type=date].spinner,input[type=month].spinner,input[type=time].spinner,input[type=week].spinner,input[type=number].spinner,input[type=email].spinner,input[type=url].spinner,input[type=search].spinner,input[type=tel].spinner,input[type=color].spinner{background-image:url(../../assets/images/input-spinner.gif)!important;background-repeat:no-repeat;background-position:right 8px}label{font-weight:400;font-size:14px}.form-control-static{margin:2px 0}.has-success .form-control{border-color:#d6e9c6;-webkit-box-shadow:none;box-shadow:none}.has-success .form-control:focus{border-color:#bbdba1;-webkit-box-shadow:none;box-shadow:none}.has-success .input-group-addon{color:#3c763d;border-color:#d6e9c6;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .help-inline,.has-warning .radio,.has-warning .radio-inline{color:#8a6d3b}.has-warning .form-control{border-color:#faebcc;-webkit-box-shadow:none;box-shadow:none}.has-warning .form-control:focus{border-color:#f5d89e;-webkit-box-shadow:none;box-shadow:none}.has-warning .input-group-addon{color:#8a6d3b;border-color:#faebcc;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .help-inline,.has-error .radio,.has-error .radio-inline{color:#a94442}.has-error .form-control{border-color:#ebccd1;-webkit-box-shadow:none;box-shadow:none}.has-error .form-control:focus{border-color:#dca7b0;-webkit-box-shadow:none;box-shadow:none}.has-error .input-group-addon{color:#a94442;border-color:#ebccd1;background-color:#f2dede}.input-circle{border-radius:25px!important}.input-circle-right{border-radius:0 25px 25px 0!important}.input-circle-left{border-radius:25px 0 0 25px!important}.input-circle-bottom{border-radius:0 0 25px 25px!important}.input-circle-top{border-radius:25px 25px 0 0!important}.icon-btn{height:60px;min-width:80px;margin:5px 5px 0 0;border:1px solid #ddd;padding:12px 0 0;background-color:#fafafa;background-image:none;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;color:#646464;text-shadow:none;text-align:center;cursor:pointer;position:relative;transition:all .3s ease}.loading-message,.page-loading{min-width:125px;vertical-align:middle}[class^=m-icon-],[class^=m-icon-big-]{background-image:url(../../assets/images/syncfusion-icons.png);background-position:0 0;background-repeat:no-repeat}.icon-btn:hover,.icon-btn:hover>.badge{-webkit-box-shadow:none;-moz-box-shadow:none}.close,.icon-btn:hover{text-shadow:0 1px 0 #fff}.icon-btn:hover{text-decoration:none;border-color:#999;color:#444;transition:all .3s ease;box-shadow:none}.icon-btn:hover>.badge{-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;box-shadow:none}.icon-btn>div{margin-top:5px;margin-bottom:20px;color:#000;font-size:12px;font-weight:300}.icon-btn>.badge{position:absolute;font-size:11px;font-weight:300;top:-5px;right:-5px;padding:3px 6px;color:#fff;text-shadow:none;border-width:0;border-style:solid;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.input-group .input-icon>.form-control,.tabs-left.nav-tabs>li>a:focus,.tabs-left.nav-tabs>li>a:hover{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-ms-border-radius:4px 0 0 4px;-o-border-radius:4px 0 0 4px}.icon-btn>i{font-size:18px}.ie8 .icon-btn:hover{filter:none}.input-icon{position:relative}.input-icon>.form-control{padding-left:33px}.input-group .input-icon>.form-control{border-radius:4px 0 0 4px}.input-icon>i{color:#ccc;position:absolute;margin:11px 2px 4px 10px;z-index:3;width:16px;height:16px;font-size:16px;text-align:center}.modal .input-icon>i{z-index:10055}.has-success .input-icon>i{color:#45B6AF}.has-warning .input-icon>i{color:#dfba49}.has-info .input-icon>i{color:#89C4F4}.has-error .input-icon>i{color:#F3565D}.input-icon.right>.form-control{padding-right:33px;padding-left:12px}.input-group .input-icon.right>.form-control{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-icon.right>i{right:8px;float:right}.input-icon.input-icon-lg>i{margin-top:16px}.input-icon.input-icon-sm>i{margin-top:8px;font-size:13px}.label{text-shadow:none!important;font-size:13px;font-weight:300;padding:3px 6px;color:#fff}.label.label-sm{font-size:12px;padding:0 4px 1px}h1 .label,h2 .label,h3 .label,h4 .label,h5 .label,h6 .label{font-size:75%}.label-default[href]:focus,.label-default[href]:hover{background-color:#adadad}.label-primary{background-color:#428bca}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#3071a9}.label-success{background-color:#45B6AF}.label-success[href]:focus,.label-success[href]:hover{background-color:#37918b}.label-info{background-color:#89C4F4}.label-info[href]:focus,.label-info[href]:hover{background-color:#5aadf0}.label-warning{background-color:#dfba49}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#d0a625}.label-danger{background-color:#F3565D}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#f0262f}.label.label-icon{padding:4px 0 4px 4px;margin-right:2px;text-align:center!important}.label.label-icon>i{font-size:12px;text-align:center!important}.note p,.page-loading,.panel .panel-body{font-size:13px}.ie8 .label.label-icon,.ie9 .label.label-icon{padding:3px 0 3px 3px}.text-default{color:#c6c6c6}.text-primary{color:#428bca}.text-success{color:#45B6AF}.text-info{color:#89C4F4}.text-warning{color:#dfba49}.text-danger{color:#F3565D}.list-group .list-group-item-success{color:#3c763d;background-color:#dff0d8}.list-group a.list-group-item-success{color:#3c763d}.list-group a.list-group-item-success .list-group-item-heading{color:inherit}.list-group a.list-group-item-success:focus,.list-group a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}.list-group a.list-group-item-success.active,.list-group a.list-group-item-success.active:focus,.list-group a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group .list-group-item-info{color:#31708f;background-color:#d9edf7}.list-group a.list-group-item-info{color:#31708f}.list-group a.list-group-item-info .list-group-item-heading{color:inherit}.list-group a.list-group-item-info:focus,.list-group a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}.list-group a.list-group-item-info.active,.list-group a.list-group-item-info.active:focus,.list-group a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group .list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}.list-group a.list-group-item-warning{color:#8a6d3b}.list-group a.list-group-item-warning .list-group-item-heading{color:inherit}.list-group a.list-group-item-warning:focus,.list-group a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}.list-group a.list-group-item-warning.active,.list-group a.list-group-item-warning.active:focus,.list-group a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group .list-group-item-danger{color:#a94442;background-color:#f2dede}.list-group a.list-group-item-danger{color:#a94442}.list-group a.list-group-item-danger .list-group-item-heading{color:inherit}.list-group a.list-group-item-danger:focus,.list-group a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}.list-group a.list-group-item-danger.active,.list-group a.list-group-item-danger.active:focus,.list-group a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.loading-message{display:inline-block;padding:10px;margin:0 auto;color:#000!important;font-size:13px;font-weight:400;text-align:center}.loading-message.loading-message-boxed{border:1px solid #ddd;background-color:#eee;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.loading-message>span{line-height:20px;vertical-align:middle}.page-loading{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;position:fixed;top:50%;left:50%;margin-left:-60px;margin-top:-30px;padding:7px;text-align:center;color:#333;border:1px solid #ddd;background-color:#eee;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.block-spinner-bar>div,.page-spinner-bar>div{border-radius:100%!important;display:inline-block}.panel,.well{-webkit-box-shadow:none!important}.page-loading>span{line-height:20px;vertical-align:middle}.page-spinner-bar{position:fixed;z-index:10051;width:100px;top:40%;left:50%;margin-left:-55px;text-align:center}.page-spinner-bar>div{margin:0 5px;width:18px;height:18px;-webkit-animation:bounceDelay 1.4s infinite ease-in-out;animation:bounceDelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.page-spinner-bar .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.page-spinner-bar .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}.block-spinner-bar{display:inline-block;width:80px;text-align:center}.block-spinner-bar>div{margin:0 2px;width:15px;height:15px;-webkit-animation:bounceDelay 1.4s infinite ease-in-out;animation:bounceDelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.note,.tabs-right.nav-tabs>li>a:focus,.tabs-right.nav-tabs>li>a:hover{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0}.block-spinner-bar .bounce1{-webkit-animation-delay:-.32s;animation-delay:-.32s}.block-spinner-bar .bounce2{-webkit-animation-delay:-.16s;animation-delay:-.16s}[class^=m-icon-]{display:inline-block;width:14px;height:14px;margin-top:3px;line-height:14px;vertical-align:top}[class^=m-icon-big-]{display:inline-block;width:30px;height:30px;margin:6px;vertical-align:middle}.btn.m-icon-big{padding:9px 16px 8px}.btn.m-icon-big.m-icon-only{padding:9px 8px 8px 0}.btn.m-icon-big [class^=m-icon-big-]{margin:0 0 0 10px}.btn.m-icon-ony>i{margin-left:0}.btn.m-icon{padding:7px 14px}.btn.m-icon [class^=m-icon-]{margin:4px 0 0 5px}.btn.m-icon.m-icon-only{padding:7px 10px 7px 6px}.m-icon-white{background-image:url(../../assets/images/syncfusion-icons-white.png)}.m-icon-swapright{background-position:-27px -10px}.m-icon-swapdown{background-position:-68px -10px}.m-icon-swapleft{background-position:-8px -10px}.m-icon-swapup{background-position:-46px -10px}.m-icon-big-swapright{background-position:-42px -28px}.m-icon-big-swapdown{background-position:-115px -28px}.m-icon-big-swapleft{background-position:-6px -28px}.m-icon-big-swapup{background-position:-78px -28px}.modal{z-index:10050;outline:0}.modal .modal-header{border-bottom:1px solid #EFEFEF}.modal .modal-header h3{font-weight:300}.modal .modal-header .close{margin-top:0!important}.modal .modal-dialog{z-index:10051}.modal>.loading{position:absolute;top:50%;left:50%;margin-top:-22px;margin-left:-22px}.modal.in .page-loading{display:none}.modal-open-noscroll{overflow-y:hidden!important}.modal-full.modal-dialog{width:99%}@media (max-width:768px){.modal-full.modal-dialog{width:auto}}.note{margin:0 0 20px;padding:15px 30px 15px 15px;border-left:5px solid #eee;border-radius:0 4px 4px 0}.note h1,.note h2,.note h3,.note h4,.note h5,.note h6{margin-top:0}.note h1 .close,.note h2 .close,.note h3 .close,.note h4 .close,.note h5 .close,.note h6 .close{margin-right:-10px}.note p:last-child{margin-bottom:0}.note.note-default{background-color:#d3d3d3;border-color:#a0a0a0;color:#333,80%}.note.note-default.note-bordered{background-color:#c9c9c9;border-color:#a5a5a5}.note.note-primary{background-color:#5697d0;border-color:#2a7696;color:#D8E3F2,80%}.note.note-primary.note-bordered{background-color:#468dcb;border-color:#2c7c9e}.note.note-success{background-color:#eef7ea;border-color:#bbdba1;color:#3c763d,80%}.note.note-success.note-bordered{background-color:#e2f1dc;border-color:#c1dea8}.note.note-info{background-color:#eef7fb;border-color:#91d9e8;color:#31708f,80%}.note.note-info.note-bordered{background-color:#ddeff8;border-color:#9adcea}.note.note-warning{background-color:#fcf8e3;border-color:#f2cf87;color:#8a6d3b,80%}.note.note-warning.note-bordered{background-color:#faf3d1;border-color:#f3d390}.note.note-danger{background-color:#f9f0f0;border-color:#dca7b0;color:#a94442,80%}.note.note-danger.note-bordered{background-color:#f3e2e2;border-color:#dfaeb7}.pagination{margin:10px 0}.pagination.pagination-circle>li:first-child>a{border-radius:25px 0 0 25px!important}.pagination.pagination-circle>li:last-child>a{border-radius:0 25px 25px 0!important}.dashboard-stat,.portlet{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px}.pagination .active>a,.pagination .active>a:hover{background:#eee;border-color:#ddd;color:#333}.panel{-moz-box-shadow:none!important;box-shadow:none!important}.panel-group .panel{overflow:visible}.panel .panel-title>a:hover{text-decoration:none}.accordion .panel .panel-heading,.accordion .panel .panel-title{padding:0}.accordion .panel .panel-title .accordion-toggle{display:block;padding:10px 15px}.accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled{background:url(../../assets/images/accordion-plusminus.png) right -19px no-repeat;margin-right:15px}.accordion .panel .panel-title .accordion-toggle.accordion-toggle-styled.collapsed{background-position:right 12px}.panel-default{border-color:#e0e0e0}.panel-default>.panel-heading{color:#333;background-color:#f9f9f9;border-color:#e0e0e0}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#e0e0e0}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#e0e0e0}.panel-primary{border-color:#3595bd}.panel-primary>.panel-heading{color:#D8E3F2;background-color:#428bca;border-color:#3595bd}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#3595bd}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#3595bd}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.accordion-heading{background:#eee}.accordion-heading a,.accordion-heading a:hover{text-decoration:none}.popover{box-shadow:5px 5px rgba(102,102,102,.1);padding:0}.portlet.calendar .fc-button,.progress{-webkit-box-shadow:none;-moz-box-shadow:none}.popover .popover-title{margin:0!important}.popover.name .popover-content,.popover.name .popover-title,name .popover .popover-content{color:#F3565D}.popovers.yellow+.popover,.popovers.yellow+.popover .popover-content,.popovers.yellow+.popover .popover-title{background:#ff0}.page-portlet-fullscreen{overflow:hidden}.portlet{margin-top:0;margin-bottom:25px;padding:0;border-radius:4px}.portlet.portlet-fullscreen{z-index:10060;margin:0;position:fixed;top:0;left:0;bottom:0;right:0;width:100%;height:100%;background:#fff}.portlet.portlet-fullscreen>.portlet-body{overflow-y:auto;overflow-x:hidden;padding:0 10px}.portlet.portlet-fullscreen>.portlet-title{padding:0 10px}.portlet>.portlet-title{border-bottom:1px solid #eee;padding:0;margin-bottom:10px;min-height:41px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.portlet>.portlet-title:after,.portlet>.portlet-title:before{content:" ";display:table}.portlet>.portlet-title>.caption{float:left;display:inline-block;font-size:18px;line-height:18px;font-weight:300;padding:10px 0}.portlet>.portlet-title>.caption.bold{font-weight:400}.portlet>.portlet-title>.caption>i{float:left;margin-top:4px;display:inline-block;font-size:13px;margin-right:5px;color:#666}.portlet>.portlet-title>.caption>i.glyphicon{margin-top:2px}.portlet>.portlet-title>.caption>.caption-helper{padding:0;margin:0;line-height:13px;color:#9eacb4;font-size:13px;font-weight:400}.portlet>.portlet-title>.actions{float:right;display:inline-block;padding:6px 0}.portlet>.portlet-title>.actions>.dropdown-menu i{color:#555}.portlet>.portlet-title>.actions>.btn,.portlet>.portlet-title>.actions>.btn-group>.btn,.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm,.portlet>.portlet-title>.actions>.btn.btn-sm{padding:4px 10px;font-size:13px;line-height:1.5}.portlet>.portlet-title>.actions>.btn-group>.btn.btn-default,.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm.btn-default,.portlet>.portlet-title>.actions>.btn.btn-default,.portlet>.portlet-title>.actions>.btn.btn-sm.btn-default{padding:3px 9px}.portlet>.portlet-title>.actions>.btn-group>.btn.btn-sm>i,.portlet>.portlet-title>.actions>.btn-group>.btn>i,.portlet>.portlet-title>.actions>.btn.btn-sm>i,.portlet>.portlet-title>.actions>.btn>i{font-size:13px}.portlet>.portlet-title>.actions .btn-icon-only{padding:5px 7px 3px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default{padding:4px 6px 2px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default>i{font-size:14px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen{font-family:FontAwesome;color:#a0a0a0;padding-top:3px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen.btn-sm{padding:3px!important;height:27px;width:27px}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen:before{content:"\f065"}.portlet>.portlet-title>.actions .btn-icon-only.btn-default.fullscreen.on:before{content:"\f066"}.portlet>.portlet-title>.tools{float:right;display:inline-block;padding:12px 0 8px}.portlet>.portlet-title>.tools>a{display:inline-block;height:16px;margin-left:5px;opacity:1;filter:alpha(opacity=100)}.portlet>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon.png);background-repeat:no-repeat;width:11px}.portlet>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon.png);background-repeat:no-repeat;width:12px}.portlet>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon.png);width:13px}.portlet>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon.png);width:14px;visibility:visible}.portlet>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon.png);width:14px;visibility:visible}.portlet>.portlet-title>.tools>a.fullscreen{display:inline-block;top:-3px;position:relative;font-size:13px;font-family:FontAwesome;color:#ACACAC}.portlet>.portlet-title>.tools>a.fullscreen:before{content:"\f065"}.portlet>.portlet-title>.tools>a.fullscreen.on:before{content:"\f066"}.portlet>.portlet-title>.tools>a:hover{text-decoration:none;-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out;opacity:.8;filter:alpha(opacity=80)}.portlet>.portlet-title>.pagination{float:right;display:inline-block;margin:2px 0 0;border:0;padding:4px 0}.portlet>.portlet-title>.nav-tabs{background:0 0;margin:0;float:right;display:inline-block;border:0}.portlet>.portlet-title>.nav-tabs>li{background:0 0;margin:0;border:0}.portlet>.portlet-title>.nav-tabs>li>a{background:0 0;margin:5px 0 0 1px;border:0;padding:8px 10px;color:#fff}.portlet>.portlet-title>.nav-tabs>li.active>a,.portlet>.portlet-title>.nav-tabs>li:hover>a{color:#333;background:#fff;border:0}.portlet>.portlet-body{clear:both;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.portlet>.portlet-empty{min-height:125px}.portlet.full-height-content{margin-bottom:0}.portlet.bordered{border-left:2px solid #e6e9ec!important}.portlet.bordered>.portlet-title{border-bottom:0}.portlet.solid{padding:0 10px 10px;border:0}.portlet.solid>.portlet-title{border-bottom:0;margin-bottom:10px}.portlet.solid>.portlet-title>.caption{padding:16px 0 2px}.portlet.solid>.portlet-title>.actions{padding:12px 0 6px}.portlet.solid>.portlet-title>.tools{padding:14px 0 6px}.portlet.solid.bordered>.portlet-title{margin-bottom:10px}.portlet.box{padding:0!important}.portlet.box>.portlet-title{border-bottom:0;padding:0 10px;margin-bottom:0;color:#fff}.portlet.box>.portlet-title>.caption{padding:11px 0 9px}.portlet.box>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.box>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.box>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.box>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.box>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.box>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box>.portlet-title>.actions{padding:7px 0 5px}.portlet.box>.portlet-body{background-color:#fff;padding:10px}.portlet.box.portlet-fullscreen>.portlet-body{padding:10px}.portlet.light{padding:12px 20px 15px;background-color:#fff}.portlet.light.bordered{border:1px solid #e1e1e1!important}.portlet.light.bordered>.portlet-title{border-bottom:1px solid #eee}.portlet.light.bg-inverse{background:#F7F7F7}.portlet.light>.portlet-title{padding:0;min-height:48px}.portlet.light>.portlet-title>.caption{color:#666;padding:10px 0}.portlet.light>.portlet-title>.caption>.caption-subject{font-size:16px}.portlet.light>.portlet-title>.caption>i{color:#777;font-size:15px;font-weight:300;margin-top:3px}.portlet.light>.portlet-title>.caption.caption-md>.caption-subject{font-size:15px}.portlet.light>.portlet-title>.caption.caption-md>i{font-size:14px}.portlet.light>.portlet-title>.actions{padding:6px 0 14px}.portlet.light>.portlet-title>.actions .btn-default{color:#666}.portlet.light>.portlet-title>.actions .btn-icon-only{height:27px;width:27px}.portlet.light>.portlet-title>.actions .dropdown-menu li>a{color:#555}.portlet.light>.portlet-title>.inputs{float:right;display:inline-block;padding:4px 0}.portlet.light>.portlet-title>.inputs>.portlet-input .input-icon>i{font-size:14px;margin-top:9px}.portlet.light>.portlet-title>.inputs>.portlet-input .input-icon>.form-control{height:30px;padding:2px 26px 3px 10px;font-size:13px}.portlet.light>.portlet-title>.inputs>.portlet-input>.form-control{height:30px;padding:3px 10px;font-size:13px}.portlet.light>.portlet-title>.pagination{padding:2px 0 13px}.portlet.light>.portlet-title>.tools{padding:10px 0 13px;margin-top:2px}.portlet.light>.portlet-title>.nav-tabs>li{margin:0;padding:0}.portlet.light>.portlet-title>.nav-tabs>li>a{margin:0;padding:12px 13px 13px;font-size:13px;color:#666}.portlet.light>.portlet-title>.nav-tabs>li.active>a,.portlet.light>.portlet-title>.nav-tabs>li:hover>a{margin:0;background:0 0;color:#333}.blue.btn.active,.blue.btn:active,.btn.default.active,.btn.default:active,.open .blue.btn.dropdown-toggle,.open .btn.default.dropdown-toggle,.progress,.progress-striped .progress>.progress-bar-default,.progress-striped .progress>.progress-bar-info,.progress-striped .progress>.progress-bar-success,.progress-striped .progress>.progress-bar-warning{background-image:none}.portlet.light.form-fit{padding:0}.portlet.light.form-fit>.portlet-title{padding:17px 20px 10px;margin-bottom:0}.portlet.light .portlet-body{padding-top:8px}.portlet.light.portlet-fullscreen>.portlet-body{padding:8px 0}.tab-pane>p:last-child{margin-bottom:0}.tabs-reversed>li{float:right;margin-right:0}.tabs-reversed>li>a{margin-right:0}.portlet-sortable:not(.portlet-fullscreen)>.portlet-title{cursor:move}.portlet-sortable-placeholder{border:2px dashed #eee;margin-bottom:25px}.portlet-sortable-empty{height:45px}.progress{border:0;filter:none;box-shadow:none}.progress.progress-sm{height:12px}.progress>.progress-bar-default{background-color:#c6c6c6}.progress>.progress-bar-success{background-color:#45B6AF}.progress>.progress-bar-info{background-color:#89C4F4}.progress>.progress-bar-danger{background-color:#F3565D}.progress-striped .progress>.progress-bar-danger{background-image:none}.progress>.progress-bar-warning{background-color:#dfba49}.dashboard-stat{display:block;margin-bottom:25px;overflow:hidden;border-radius:4px}.dashboard-stat:after,.dashboard-stat:before{content:" ";display:table}.portlet .dashboard-stat:last-child{margin-bottom:0}.dashboard-stat .visual{width:80px;height:80px;display:block;float:left;padding-top:10px;padding-left:15px;margin-bottom:15px;font-size:35px;line-height:35px}.dashboard-stat .visual>i{margin-left:-35px;font-size:110px;line-height:110px}.dashboard-stat .details{position:absolute;right:15px;padding-right:15px}.dashboard-stat .details .number{padding-top:25px;text-align:right;font-size:34px;line-height:36px;letter-spacing:-1px;margin-bottom:0;font-weight:300}.dashboard-stat .details .desc{text-align:right;font-size:16px;letter-spacing:0;font-weight:300}.dashboard-stat .more{display:block;padding:6px 10px;position:relative;text-transform:uppercase;font-weight:300;font-size:11px;opacity:.7;filter:alpha(opacity=70)}.dashboard-stat .more:hover{text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.dashboard-stat .more>i{display:inline-block;margin-top:1px;float:right}.dashboard-stat-light{padding-bottom:20px;margin-bottom:20px}.dashboard-stat-light .details{margin-bottom:5px}.dashboard-stat-light .details .number{font-weight:300;margin-bottom:0}.dashboard-stat2,.dashboard-stat2 .display{margin-bottom:20px}.dashboard-stat2{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;background:#fff;padding:15px 15px 30px}.dashboard-stat2 .display:after,.dashboard-stat2 .display:before{content:" ";display:table}.dashboard-stat2 .display .number{float:left;display:inline-block}.dashboard-stat2 .display .number h3{margin:0 0 2px;padding:0;font-size:30px;font-weight:400}.dashboard-stat2 .display .number h3>small{font-size:23px}.dashboard-stat2 .display .number small{font-size:14px;color:#AAB5BC;font-weight:600;text-transform:uppercase}.dashboard-stat2 .display .icon{display:inline-block;float:right;padding:7px 0 0}.dashboard-stat2 .display .icon>i{color:#cbd4e0;font-size:26px}.dashboard-stat2 .progress-info .progress{margin:0;height:4px;display:block}.dashboard-stat2 .progress-info .status{margin-top:5px;font-size:11px;color:#AAB5BC;font-weight:600;text-transform:uppercase}.dashboard-stat2 .progress-info .status .status-title{float:left;display:inline-block}.dashboard-stat2 .progress-info .status .status-number{float:right;display:inline-block}.text-stat h3{margin-top:5px;margin-bottom:0;font-size:18px}.text-stat span{font-size:13px!important}@media (max-width:767px){.text-stat{margin-top:20px}}.social-icons{padding:0;margin:0}.social-icons:after,.social-icons:before{content:" ";display:table}.social-icons li{float:left;display:inline;list-style:none;margin-right:5px;margin-bottom:5px;text-indent:-9999px}.social-icons li>a{-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;width:28px;height:28px;display:block;background-position:0 0;background-repeat:no-repeat;transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;-ms-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-webkit-transition:all .3s ease-in-out}.social-icons li:hover>a{background-position:0 -38px}.social-icons li .amazon{background:url(../../assets/images/social/amazon.png) no-repeat}.social-icons li .behance{background:url(../../assets/images/social/behance.png) no-repeat}.social-icons li .blogger{background:url(../../assets/images/social/blogger.png) no-repeat}.social-icons li .deviantart{background:url(../../assets/images/social/deviantart.png) no-repeat}.social-icons li .dribbble{background:url(../../assets/images/social/dribbble.png) no-repeat}.social-icons li .dropbox{background:url(../../assets/images/social/dropbox.png) no-repeat}.social-icons li .evernote{background:url(../../assets/images/social/evernote.png) no-repeat}.social-icons li .facebook{background:url(../../assets/images/social/facebook.png) no-repeat}.social-icons li .forrst{background:url(../../assets/images/social/forrst.png) no-repeat}.social-icons li .github{background:url(../../assets/images/social/github.png) no-repeat}.social-icons li .googleplus{background:url(../../assets/images/social/googleplus.png) no-repeat}.social-icons li .jolicloud{background:url(../../assets/images/social/jolicloud.png) no-repeat}.social-icons li .last-fm{background:url(../../assets/images/social/last-fm.png) no-repeat}.social-icons li .linkedin{background:url(../../assets/images/social/linkedin.png) no-repeat}.social-icons li .picasa{background:url(../../assets/images/social/picasa.png) no-repeat}.social-icons li .pintrest{background:url(../../assets/images/social/pintrest.png) no-repeat}.social-icons li .rss{background:url(../../assets/images/social/rss.png) no-repeat}.social-icons li .skype{background:url(../../assets/images/social/skype.png) no-repeat}.social-icons li .spotify{background:url(../../assets/images/social/spotify.png) no-repeat}.social-icons li .stumbleupon{background:url(../../assets/images/social/stumbleupon.png) no-repeat}.social-icons li .tumblr{background:url(../../assets/images/social/tumblr.png) no-repeat}.social-icons li .twitter{background:url(../../assets/images/social/twitter.png) no-repeat}.social-icons li .vimeo{background:url(../../assets/images/social/vimeo.png) no-repeat}.social-icons li .wordpress{background:url(../../assets/images/social/wordpress.png) no-repeat}.social-icons li .xing{background:url(../../assets/images/social/xing.png) no-repeat}.social-icons li .yahoo{background:url(../../assets/images/social/yahoo.png) no-repeat}.social-icons li .youtube{background:url(../../assets/images/social/youtube.png) no-repeat}.social-icons li .vk{background:url(../../assets/images/social/vk.png) no-repeat}.social-icons li .instagram{background:url(../../assets/images/social/instagram.png) no-repeat}.social-icons li .reddit{background:url(../../assets/images/social/reddit.png) no-repeat}.social-icons li .aboutme{background:url(../../assets/images/social/aboutme.png) no-repeat}.social-icons li .flickr{background:url(../../assets/images/social/flickr.png) no-repeat}.social-icons li .foursquare{background:url(../../assets/images/social/foursquare.png) no-repeat}.social-icons li .gravatar{background:url(../../assets/images/social/gravatar.png) no-repeat}.social-icons li .klout{background:url(../../assets/images/social/klout.png) no-repeat}.social-icons li .myspace{background:url(../../assets/images/social/myspace.png) no-repeat}.social-icons li .quora{background:url(../../assets/images/social/quora.png) no-repeat}.social-icons.social-icons-color>li>a{opacity:.7;background-position:0 -38px!important}.social-icons.social-icons-color>li>a:hover{opacity:1}.social-icons.social-icons-circle>li>a{border-radius:25px!important}.social-icon{display:inline-block!important;width:28px;height:28px;background-position:0 0;background-repeat:no-repeat;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;transition:all .3s ease-in-out;-o-transition:all .3s ease-in-out;-ms-transition:all .3s ease-in-out;-moz-transition:all .3s ease-in-out;-webkit-transition:all .3s ease-in-out}.social-icon.social-icon-circle{border-radius:25px!important}.social-icon.amazon{background:url(../../assets/images/social/amazon.png) no-repeat}.social-icon.behance{background:url(../../assets/images/social/behance.png) no-repeat}.social-icon.blogger{background:url(../../assets/images/social/blogger.png) no-repeat}.social-icon.deviantart{background:url(../../assets/images/social/deviantart.png) no-repeat}.social-icon.dribbble{background:url(../../assets/images/social/dribbble.png) no-repeat}.social-icon.dropbox{background:url(../../assets/images/social/dropbox.png) no-repeat}.social-icon.evernote{background:url(../../assets/images/social/evernote.png) no-repeat}.social-icon.facebook{background:url(../../assets/images/social/facebook.png) no-repeat}.social-icon.forrst{background:url(../../assets/images/social/forrst.png) no-repeat}.social-icon.github{background:url(../../assets/images/social/github.png) no-repeat}.social-icon.googleplus{background:url(../../assets/images/social/googleplus.png) no-repeat}.social-icon.jolicloud{background:url(../../assets/images/social/jolicloud.png) no-repeat}.social-icon.last-fm{background:url(../../assets/images/social/last-fm.png) no-repeat}.social-icon.linkedin{background:url(../../assets/images/social/linkedin.png) no-repeat}.social-icon.picasa{background:url(../../assets/images/social/picasa.png) no-repeat}.social-icon.pintrest{background:url(../../assets/images/social/pintrest.png) no-repeat}.social-icon.rss{background:url(../../assets/images/social/rss.png) no-repeat}.social-icon.skype{background:url(../../assets/images/social/skype.png) no-repeat}.social-icon.spotify{background:url(../../assets/images/social/spotify.png) no-repeat}.social-icon.stumbleupon{background:url(../../assets/images/social/stumbleupon.png) no-repeat}.social-icon.tumblr{background:url(../../assets/images/social/tumblr.png) no-repeat}.social-icon.twitter{background:url(../../assets/images/social/twitter.png) no-repeat}.social-icon.vimeo{background:url(../../assets/images/social/vimeo.png) no-repeat}.social-icon.wordpress{background:url(../../assets/images/social/wordpress.png) no-repeat}.social-icon.xing{background:url(../../assets/images/social/xing.png) no-repeat}.social-icon.yahoo{background:url(../../assets/images/social/yahoo.png) no-repeat}.social-icon.youtube{background:url(../../assets/images/social/youtube.png) no-repeat}.social-icon.vk{background:url(../../assets/images/social/vk.png) no-repeat}.social-icon.instagram{background:url(../../assets/images/social/instagram.png) no-repeat}.social-icon.reddit{background:url(../../assets/images/social/reddit.png) no-repeat}.social-icon.aboutme{background:url(../../assets/images/social/aboutme.png) no-repeat}.social-icon.flickr{background:url(../../assets/images/social/flickr.png) no-repeat}.social-icon.foursquare{background:url(../../assets/images/social/foursquare.png) no-repeat}.social-icon.gravatar{background:url(../../assets/images/social/gravatar.png) no-repeat}.social-icon.klout{background:url(../../assets/images/social/klout.png) no-repeat}.social-icon.myspace{background:url(../../assets/images/social/myspace.png) no-repeat}.social-icon.quora{background:url(../../assets/images/social/quora.png) no-repeat}.social-icon:hover{background-position:0 -38px}.social-icon-color{opacity:.7;background-position:0 -38px!important}.social-icon-color:hover{opacity:1}.table.table-bordered thead>tr>th{border-bottom:0}.table tr.heading>th{background-color:#eee!important}.table td .img-responsive{width:100%}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background:#a6c8e6;color:#132339}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background:#92bce0}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background:#dff0d8;color:#3c763d}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background:#d9edf7;color:#31708f}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background:#fcf8e3;color:#8a6d3b}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background:#f2dede;color:#a94442}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background:#ebcccc}.table-scrollable{width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid #ddd;margin:10px 0!important}.table-scrollable.table-scrollable-borderless,.table-scrollable>.table-bordered{border:0}.table-scrollable>.table{width:100%!important;margin:0!important;background-color:#fff}.table-scrollable>.table-bordered>tbody>tr>td:first-child,.table-scrollable>.table-bordered>tbody>tr>th:first-child,.table-scrollable>.table-bordered>tfoot>tr>td:first-child,.table-scrollable>.table-bordered>tfoot>tr>th:first-child,.table-scrollable>.table-bordered>thead>tr>td:first-child,.table-scrollable>.table-bordered>thead>tr>th:first-child{border-left:0}.table-scrollable>.table-bordered>tbody>tr>td:last-child,.table-scrollable>.table-bordered>tbody>tr>th:last-child,.table-scrollable>.table-bordered>tfoot>tr>td:last-child,.table-scrollable>.table-bordered>tfoot>tr>th:last-child,.table-scrollable>.table-bordered>thead>tr>td:last-child,.table-scrollable>.table-bordered>thead>tr>th:last-child{border-right:0}.table-scrollable>.table-bordered>tbody>tr:last-child>td,.table-scrollable>.table-bordered>tbody>tr:last-child>th,.table-scrollable>.table-bordered>tfoot>tr:last-child>td,.table-scrollable>.table-bordered>tfoot>tr:last-child>th,.table-scrollable>.table-bordered>thead>tr:last-child>td,.table-scrollable>.table-bordered>thead>tr:last-child>th{border-bottom:0}.flip-scroll table{width:100%}@media only screen and (max-width:768px){.flip-scroll .flip-content:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.flip-scroll * html .flip-content{zoom:1}.flip-scroll td,.flip-scroll th{margin:0;vertical-align:top}.flip-scroll th{border:0!important;border-bottom:1px solid #ddd!important;border-right:1px solid #ddd!important;font-size:13px!important;padding:5px;width:auto!important;display:block;text-align:right}.flip-scroll table{border-collapse:collapse;border-spacing:0;display:block;position:relative;width:100%}.flip-scroll thead{display:block;float:left}.flip-scroll tbody{display:block;width:auto;position:relative;overflow-x:auto;white-space:nowrap}.flip-scroll thead tr{display:block}.flip-scroll tbody tr{display:inline-block;vertical-align:top;margin-left:-5px}.flip-scroll td{display:block;min-height:1.25em;text-align:left;border-top:0!important;border-left:0!important;border-right:0!important;border-bottom:0}.flip-scroll th{border-left:0}.flip-scroll tbody tr{border-left:1px solid #ddd}.flip-scroll td:last-child,.flip-scroll th:last-child{border-bottom:1px solid #ddd}}.centered-td,.page-404,.tiles .tile .tile-body>i{text-align:center}.table-toolbar{margin-bottom:15px}.table-toolbar:after,.table-toolbar:before{content:" ";display:table}.table.table-full-width{width:100%!important}.table .btn{margin-top:0;margin-left:0;margin-right:5px}.table thead tr th{font-size:14px;font-weight:600}.table-advance{margin-bottom:10px!important}.table-advance thead{color:#999}.table-advance thead tr th{background-color:#DDD;font-size:14px;font-weight:400;color:#666}.table-advance div.danger,.table-advance div.important,.table-advance div.info,.table-advance div.success,.table-advance div.warning{position:absolute;margin-top:-5px;float:left;width:2px;height:30px;margin-right:20px!important}.table-advance tr td{border-left-width:0}.table-advance tr td:first-child{border-left-width:1px!important}.table-advance tr td.highlight:first-child a{margin-left:15px}.table-advance td.highlight div.primary{border-left:2px solid #428bca}.table-advance td.highlight div.success{border-left:2px solid #45B6AF}.table-advance td.highlight div.info{border-left:2px solid #89C4F4}.table-advance td.highlight div.warning{border-left:2px solid #dfba49}.table-advance td.highlight div.danger{border-left:2px solid #F3565D}@media (max-width:767px){.table-advance tr>td.highlight:first-child a{margin-left:8px}}.table.table-light{border:0!important}.table.table-light>thead>tr:hover>th{background:0 0}.table.table-light>thead>tr.uppercase{text-transform:uppercase}.table.table-light>thead>tr>th{font-weight:600;font-size:13px;color:#a7b3b9;border:0;border-bottom:1px solid #F2F5F8}.table.table-light>tbody>tr:last-child>td{border:0}.table.table-light>tbody>tr>td{border:0;border-bottom:1px solid #F2F5F8;color:#9ca8b0;vertical-align:middle}.table.table-light>tbody>tr>td.fit{width:1px;padding-right:3px}.table.table-light>tbody>tr>td .user-pic{display:inline-block;vertical-align:middle;height:30px;-webkit-border-radius:100%;-moz-border-radius:100%;-ms-border-radius:100%;-o-border-radius:100%;border-radius:100%}.table.table-light.table-hover>tbody>tr:hover>td,.table.table-light.table-hover>tbody>tr:hover>th,.table.table-light.table-hover>tbody>tr>td:hover,.table.table-light.table-hover>tbody>tr>th:hover{background:#f9fafb}.nav-pills,.nav-tabs{margin-bottom:10px}.nav-pills>li>a,.nav-tabs>li>a{font-size:14px}.nav-pills>li>a>.badge,.nav-tabs>li>a>.badge{margin-top:-3px}.nav-pills>li .dropdown-menu:after,.nav-pills>li .dropdown-menu:before,.nav-tabs>li .dropdown-menu:after,.nav-tabs>li .dropdown-menu:before{display:none}.nav-pills.nav-pills-sm>li>a,.nav-pills.nav-tabs-sm>li>a,.nav-tabs.nav-pills-sm>li>a,.nav-tabs.nav-tabs-sm>li>a{font-size:13px}.nav-pills .dropdown.open>.dropdown-toggle,.nav-tabs .dropdown.open>.dropdown-toggle{background:#eee;color:#0d638f;border-color:transparent}.tabs-left.nav-tabs,.tabs-right.nav-tabs{border-bottom:0}.tabs-left.nav-tabs>li,.tabs-right.nav-tabs>li{float:none}.tabs-left.nav-tabs>li>a,.tabs-right.nav-tabs>li>a{margin-right:0;margin-bottom:3px}.tabs-left.nav-tabs{border-right:1px solid #ddd}.tabs-left.nav-tabs>li>a{display:block;margin-right:-1px}.tabs-left.nav-tabs>li>a:focus,.tabs-left.nav-tabs>li>a:hover{border-radius:4px 0 0 4px;border-color:#eee #ddd #eee #eee}.tabs-left.nav-tabs>li.active>a,.tabs-left.nav-tabs>li.active>a:hover>li.active>a:focus{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;-ms-border-radius:4px 0 0 4px;-o-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;border-color:#ddd transparent #ddd #ddd}.tabs-right.nav-tabs{border-left:1px solid #ddd}.tabs-right.nav-tabs>li>a{display:block;margin-left:-1px}.tabbable:after,.tabbable:before,.tiles:after,.tiles:before{display:table;content:" "}.tabs-right.nav-tabs>li>a:focus,.tabs-right.nav-tabs>li>a:hover{border-radius:0 4px 4px 0;border-color:#eee #eee #eee #ddd}.tabs-right.nav-tabs>li.active>a,.tabs-right.nav-tabs>li.active>a:hover>li.active>a:focus{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;border-color:#ddd #ddd #ddd transparent}.tabs-below>.nav-pills,.tabs-below>.nav-tabs{border-bottom:0;margin-bottom:0;margin-top:10px}.tabs-below>.nav-tabs{border-top:1px solid #ddd;margin-bottom:0;margin-top:10px}.tabs-below>.nav-tabs>li>a{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a:focus,.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>li>a .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.tabs-below>.nav-tabs .active a,.tabs-below>.nav-tabs .active a:hover .active a:focus{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;border-color:transparent #ddd #ddd}.tabbable-custom{margin-bottom:15px;padding:0;overflow:hidden}.tabbable-custom>.nav-tabs{border:none;margin:0}.tabbable-custom>.nav-tabs>li.active>a,.tabbable-custom>.nav-tabs>li>a{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0}.tabbable-custom>.nav-tabs>li{margin-right:2px;border-top:2px solid transparent}.tabbable-custom>.nav-tabs>li>a{margin-right:0;border-radius:0}.tabbable-custom>.nav-tabs>li>a:hover{background:0 0;border-color:transparent}.tabbable-custom>.nav-tabs>li.active{border-top:3px solid #F3565D;margin-top:0;position:relative}.tabbable-custom>.nav-tabs>li.active>a{border-top:none;font-weight:400;border-radius:0}.tabbable-custom>.nav-tabs>li.active>a:hover{-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0;border-top:none;background:#fff;border-color:#d4d4d4 #d4d4d4 transparent}.tabbable-custom>.tab-content{background-color:#fff;border:1px solid #ddd;padding:10px;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabbable-custom.nav-justified>.tab-content{margin-top:-1px}.tabbable-custom.boxless>.tab-content{padding:15px 0;border-left:none;border-right:none;border-bottom:none}.tabbable-custom.tabs-below.nav-justified .tab-content{margin-top:0;margin-bottom:-2px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.tabbable-custom.tabbable-full-width>.nav-tabs>li>a{color:#424242;font-size:15px;padding:9px 15px}.tabbable-custom.tabbable-full-width>.tab-content{padding:15px 0;border-left:none;border-right:none;border-bottom:none}.tabbable-custom.tabs-below .nav-tabs>li>a{border-top:none;border-bottom:2px solid transparent;margin-top:-1px}.tabbable-custom.tabs-below .nav-tabs>li.active{border-top:none;border-bottom:3px solid #d12610;margin-bottom:0;position:relative}.tabbable-custom.tabs-below .nav-tabs>li.active>a{border-bottom:none}.tabbable-custom.tabs-below .nav-tabs>li.active>a:hover{background:#fff;border-color:#d4d4d4 #d4d4d4 transparent}.tabbable-custom.tabbable-noborder .tab-content,.tabbable-custom.tabbable-noborder>.nav-tabs>li>a{border:0}.tabbable-line>.nav-tabs{border:none;margin:0}.tabbable-line>.nav-tabs>li{margin-right:2px}.tabbable-line>.nav-tabs>li>a{border:0;margin-right:0;color:#737373}.tabbable-line>.nav-tabs>li>a>i{color:#a6a6a6}.tabbable-line>.nav-tabs>li.open,.tabbable-line>.nav-tabs>li:hover{border-bottom:4px solid #fbcdcf}.tabbable-line>.nav-tabs>li.open>a,.tabbable-line>.nav-tabs>li:hover>a{border:0;background:0 0!important;color:#333}.tabbable-line>.nav-tabs>li.open>a>i,.tabbable-line>.nav-tabs>li:hover>a>i{color:#a6a6a6}.tabbable-line>.nav-tabs>li.open .dropdown-menu,.tabbable-line>.nav-tabs>li:hover .dropdown-menu{margin-top:0}.tabbable-line>.nav-tabs>li.active{border-bottom:4px solid #F3565D;position:relative}.tabbable-line>.nav-tabs>li.active>a{border:0;color:#333}.tabbable-line>.nav-tabs>li.active>a>i{color:#404040}.tabbable-line>.tab-content{margin-top:-3px;background-color:#fff;border:0;border-top:1px solid #eee;padding:15px 0}.portlet .tabbable-line>.tab-content{padding-bottom:0}.tabbable-line.tabs-below>.nav-tabs>li{border-top:4px solid transparent}.tabbable-line.tabs-below>.nav-tabs>li>a{margin-top:0}.tabbable-line.tabs-below>.nav-tabs>li:hover{border-bottom:0;border-top:4px solid #fbcdcf}.tabbable-line.tabs-below>.nav-tabs>li.active{margin-bottom:-2px;border-bottom:0;border-top:4px solid #F3565D}.tabbable-line.tabs-below>.tab-content{margin-top:-10px;border-top:0;border-bottom:1px solid #eee;padding-bottom:15px}.tiles{margin-right:-10px}.tiles .tile{display:block;float:left;height:135px;width:135px!important;cursor:pointer;text-decoration:none;color:#fff;position:relative;font-weight:300;font-size:12px;letter-spacing:.02em;line-height:20px;overflow:hidden;border:4px solid transparent;margin:0 10px 10px 0}.tiles .tile .tile-body>.content,.tiles .tile.image .tile-body h3,.tiles .tile.selected .check:after{display:inline-block}.tiles .tile:after,.tiles .tile:before{content:"";float:left}.tiles .tile.double{width:280px!important}.tiles .tile.double-down{height:280px!important}.tiles .tile.double-down i{margin-top:95px}.tiles .tile:hover{border-color:#aaa!important}.tiles .tile.selected,.tiles .tile:active{border-color:#ccc!important}.tiles .tile.selected .corner:after{content:"";display:inline-block;border-left:40px solid transparent;border-bottom:40px solid transparent;border-right:40px solid #ccc;position:absolute;top:-3px;right:-3px}.tiles .tile.selected .check:after{font-family:FontAwesome;font-size:13px;content:"\f00c";position:absolute;top:2px;right:2px}.tiles .tile.icon{padding:0}.tiles .tile.image .tile-body{padding:0!important}.tiles .tile.image .tile-body>img{width:100%;height:auto;min-height:100%;max-width:100%}.tiles .tile .tile-body{height:100%;vertical-align:top;padding:10px;overflow:hidden;position:relative;font-weight:400;font-size:12px;color:#fff;margin-bottom:10px}.tiles .tile .tile-body p{font-weight:400;font-size:13px;color:#fff;overflow:hidden}.tiles .tile .tile-body p:active{color:rgba(0,0,0,.4)}.tiles .tile .tile-body p:hover{color:#fff}.tiles .tile .tile-body img{float:left;margin-right:10px}.tiles .tile .tile-body img.pull-right{float:right!important;margin-left:10px;margin-right:0}.close,.float-right{float:right}.tiles .tile .tile-body>i{margin-top:17px;display:block;font-size:56px;line-height:56px}.tiles .tile .tile-body h1,.tiles .tile .tile-body h2,.tiles .tile .tile-body h3,.tiles .tile .tile-body h4,.tiles .tile .tile-body h5,.tiles .tile .tile-body h6,.tiles .tile .tile-body p{padding:0;margin:0;line-height:14px}.tiles .tile .tile-body h1:hover,.tiles .tile .tile-body h2:hover,.tiles .tile .tile-body h3:hover,.tiles .tile .tile-body h4:hover,.tiles .tile .tile-body h5:hover,.tiles .tile .tile-body h6:hover,.tiles .tile .tile-body p:hover{color:#fff}.tiles .tile .tile-body h3,.tiles .tile .tile-body h4{margin-bottom:5px}.tiles .tile .tile-object{position:absolute;bottom:0;left:0;right:0;min-height:30px;background-color:transparent}.tiles .tile .tile-object:after,.tiles .tile .tile-object:before{display:table;content:""}.tiles .tile .tile-object>.name{position:absolute;bottom:0;left:0;margin-bottom:5px;margin-left:10px;margin-right:15px;font-weight:400;font-size:13px;color:#fff}.tiles .tile .tile-object>.name>i{vertical-align:middle;display:block;font-size:24px;height:18px;width:24px}.tiles .tile .tile-object>.number{position:absolute;bottom:0;right:0;color:#fff;text-align:center;font-weight:600;font-size:14px;letter-spacing:.01em;line-height:14px;margin-bottom:8px;margin-right:10px}.well{background-color:#eee;border:0;-moz-box-shadow:none!important;box-shadow:none!important}.blue.btn,.btn.default{border-color:""}@-webkit-keyframes fadeInUpm{0%{opacity:0;-webkit-transform:translateY(15px)}100%{opacity:1;-webkit-transform:translateY(0)}}@-moz-keyframes fadeInUpm{0%{opacity:0;-moz-transform:translateY(15px)}100%{opacity:1;-moz-transform:translateY(0)}}@-o-keyframes fadeInUpm{0%{opacity:0;-o-transform:translateY(15px)}100%{opacity:1;-o-transform:translateY(0)}}@keyframes fadeInUpm{0%{opacity:0;transform:translateY(15px)}100%{opacity:1;transform:translateY(0)}}.fade-in-up{-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s}@-webkit-keyframes bounceDelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes bounceDelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.btn.default{color:#333;background-color:#E5E5E5}.btn.default.active,.btn.default:active,.btn.default:focus,.btn.default:hover,.open .btn.default.dropdown-toggle{color:#333;background-color:#d3d3d3}.btn.default.active,.btn.default:active{background-color:#c6c6c6}.btn.default.active:hover,.btn.default:active:hover{background-color:#ccc}.btn.default.disabled,.btn.default.disabled.active,.btn.default.disabled:active,.btn.default.disabled:focus,.btn.default.disabled:hover,.btn.default[disabled],.btn.default[disabled].active,.btn.default[disabled]:active,.btn.default[disabled]:focus,.btn.default[disabled]:hover,fieldset[disabled] .btn.default,fieldset[disabled] .btn.default.active,fieldset[disabled] .btn.default:active,fieldset[disabled] .btn.default:focus,fieldset[disabled] .btn.default:hover{background-color:#E5E5E5}.btn.default .badge{color:#E5E5E5;background-color:#333}.blue.btn{color:#FFF;background-color:#4B8DF8}.blue.btn.active,.blue.btn:active,.blue.btn:focus,.blue.btn:hover,.open .blue.btn.dropdown-toggle{color:#FFF;background-color:#2977f7}.blue.btn.active,.blue.btn:active{background-color:#1068f6}.blue.btn.active:hover,.blue.btn:active:hover{background-color:#1a6ef6}.blue.btn.disabled,.blue.btn.disabled.active,.blue.btn.disabled:active,.blue.btn.disabled:focus,.blue.btn.disabled:hover,.blue.btn[disabled],.blue.btn[disabled].active,.blue.btn[disabled]:active,.blue.btn[disabled]:focus,.blue.btn[disabled]:hover,fieldset[disabled] .blue.btn,fieldset[disabled] .blue.btn.active,fieldset[disabled] .blue.btn:active,fieldset[disabled] .blue.btn:focus,fieldset[disabled] .blue.btn:hover{background-color:#4B8DF8}.blue.btn .badge{color:#4B8DF8;background-color:#FFF}.portlet.blue,.portlet.box.blue>.portlet-title,.portlet>.portlet-body.blue{background-color:#4B8DF8}.btn.blue-stripe{border-left:3px solid #4B8DF8}.portlet.solid.blue>.portlet-body,.portlet.solid.blue>.portlet-title{border:0;color:#FFF}.portlet.solid.blue>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue{border:1px solid #7cacfa;border-top:0}.portlet.box.blue>.portlet-title>.caption,.portlet.box.blue>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b7d1fc;color:#d0e1fd}.portlet.box.blue>.portlet-title>.actions .btn-default>i{color:#deeafe}.portlet.box.blue>.portlet-title>.actions .btn-default.active,.portlet.box.blue>.portlet-title>.actions .btn-default:active,.portlet.box.blue>.portlet-title>.actions .btn-default:focus,.portlet.box.blue>.portlet-title>.actions .btn-default:hover{border:1px solid #e8f0fe;color:#fff}.dashboard-stat.blue{background-color:#4B8DF8}.dashboard-stat.blue.dashboard-stat-light:hover{background-color:#3781f7}.dashboard-stat.blue .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue .details .number{color:#FFF}.dashboard-stat.blue .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue .more{color:#FFF;background-color:#3781f7}.bg-blue{border-color:#4B8DF8!important;background-image:none!important;background-color:#4B8DF8!important;color:#FFF!important}.font-blue{color:#4B8DF8!important}.progress-bar.blue{background:#4B8DF8!important;color:#FFF!important}.blue-madison.btn{color:#FFF;background-color:#578ebe;border-color:""}.blue-madison.btn.active,.blue-madison.btn:active,.blue-madison.btn:focus,.blue-madison.btn:hover,.open .blue-madison.btn.dropdown-toggle{color:#FFF;background-color:#437cae}.blue-madison.btn.active,.blue-madison.btn:active{background-image:none;background-color:#3c6f9c}.blue-madison.btn.active:hover,.blue-madison.btn:active:hover{background-color:#3f74a3}.open .blue-madison.btn.dropdown-toggle{background-image:none}.blue-madison.btn.disabled,.blue-madison.btn.disabled.active,.blue-madison.btn.disabled:active,.blue-madison.btn.disabled:focus,.blue-madison.btn.disabled:hover,.blue-madison.btn[disabled],.blue-madison.btn[disabled].active,.blue-madison.btn[disabled]:active,.blue-madison.btn[disabled]:focus,.blue-madison.btn[disabled]:hover,fieldset[disabled] .blue-madison.btn,fieldset[disabled] .blue-madison.btn.active,fieldset[disabled] .blue-madison.btn:active,fieldset[disabled] .blue-madison.btn:focus,fieldset[disabled] .blue-madison.btn:hover{background-color:#578ebe}.blue-madison.btn .badge{color:#578ebe;background-color:#FFF}.portlet.blue-madison,.portlet.box.blue-madison>.portlet-title,.portlet>.portlet-body.blue-madison{background-color:#578ebe}.btn.blue-madison-stripe{border-left:3px solid #578ebe}.portlet.solid.blue-madison>.portlet-body,.portlet.solid.blue-madison>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-madison>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-madison>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-madison>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-madison{border:1px solid #7ca7cc;border-top:0}.portlet.box.blue-madison>.portlet-title>.caption,.portlet.box.blue-madison>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-madison>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #a8c4dd;color:#bad1e4}.portlet.box.blue-madison>.portlet-title>.actions .btn-default>i{color:#c5d8e9}.portlet.box.blue-madison>.portlet-title>.actions .btn-default.active,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:active,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-madison>.portlet-title>.actions .btn-default:hover{border:1px solid #cdddec;color:#dfeaf3}.dashboard-stat.blue-madison{background-color:#578ebe}.dashboard-stat.blue-madison.dashboard-stat-light:hover{background-color:#4884b8}.dashboard-stat.blue-madison .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-madison .details .number{color:#FFF}.dashboard-stat.blue-madison .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-madison .more{color:#FFF;background-color:#4884b8}.bg-blue-madison{border-color:#578ebe!important;background-image:none!important;background-color:#578ebe!important;color:#FFF!important}.font-blue-madison{color:#578ebe!important}.progress-bar.blue-madison{background:#578ebe!important;color:#FFF!important}.blue-chambray.btn{color:#FFF;background-color:#2C3E50;border-color:""}.blue-chambray.btn.active,.blue-chambray.btn:active,.blue-chambray.btn:focus,.blue-chambray.btn:hover,.open .blue-chambray.btn.dropdown-toggle{color:#FFF;background-color:#1f2c39}.blue-chambray.btn.active,.blue-chambray.btn:active{background-image:none;background-color:#161f29}.blue-chambray.btn.active:hover,.blue-chambray.btn:active:hover{background-color:#1a242f}.open .blue-chambray.btn.dropdown-toggle{background-image:none}.blue-chambray.btn.disabled,.blue-chambray.btn.disabled.active,.blue-chambray.btn.disabled:active,.blue-chambray.btn.disabled:focus,.blue-chambray.btn.disabled:hover,.blue-chambray.btn[disabled],.blue-chambray.btn[disabled].active,.blue-chambray.btn[disabled]:active,.blue-chambray.btn[disabled]:focus,.blue-chambray.btn[disabled]:hover,fieldset[disabled] .blue-chambray.btn,fieldset[disabled] .blue-chambray.btn.active,fieldset[disabled] .blue-chambray.btn:active,fieldset[disabled] .blue-chambray.btn:focus,fieldset[disabled] .blue-chambray.btn:hover{background-color:#2C3E50}.blue-chambray.btn .badge{color:#2C3E50;background-color:#FFF}.portlet.blue-chambray,.portlet.box.blue-chambray>.portlet-title,.portlet>.portlet-body.blue-chambray{background-color:#2C3E50}.btn.blue-chambray-stripe{border-left:3px solid #2C3E50}.portlet.solid.blue-chambray>.portlet-body,.portlet.solid.blue-chambray>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-chambray>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-chambray>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-chambray>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-chambray{border:1px solid #3e5771;border-top:0}.portlet.box.blue-chambray>.portlet-title>.caption,.portlet.box.blue-chambray>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #547698;color:#5f83a7}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default>i{color:#698aac}.portlet.box.blue-chambray>.portlet-title>.actions .btn-default.active,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:active,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-chambray>.portlet-title>.actions .btn-default:hover{border:1px solid #6f90b0;color:#809cb9}.dashboard-stat.blue-chambray{background-color:#2C3E50}.dashboard-stat.blue-chambray.dashboard-stat-light:hover{background-color:#253443}.dashboard-stat.blue-chambray .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-chambray .details .number{color:#FFF}.dashboard-stat.blue-chambray .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-chambray .more{color:#FFF;background-color:#253443}.bg-blue-chambray{border-color:#2C3E50!important;background-image:none!important;background-color:#2C3E50!important;color:#FFF!important}.font-blue-chambray{color:#2C3E50!important}.progress-bar.blue-chambray{background:#2C3E50!important;color:#FFF!important}.blue-ebonyclay.btn{color:#FFF;background-color:#22313F;border-color:""}.blue-ebonyclay.btn.active,.blue-ebonyclay.btn:active,.blue-ebonyclay.btn:focus,.blue-ebonyclay.btn:hover,.open .blue-ebonyclay.btn.dropdown-toggle{color:#FFF;background-color:#151f28}.blue-ebonyclay.btn.active,.blue-ebonyclay.btn:active{background-image:none;background-color:#0d1217}.blue-ebonyclay.btn.active:hover,.blue-ebonyclay.btn:active:hover{background-color:#10171e}.open .blue-ebonyclay.btn.dropdown-toggle{background-image:none}.blue-ebonyclay.btn.disabled,.blue-ebonyclay.btn.disabled.active,.blue-ebonyclay.btn.disabled:active,.blue-ebonyclay.btn.disabled:focus,.blue-ebonyclay.btn.disabled:hover,.blue-ebonyclay.btn[disabled],.blue-ebonyclay.btn[disabled].active,.blue-ebonyclay.btn[disabled]:active,.blue-ebonyclay.btn[disabled]:focus,.blue-ebonyclay.btn[disabled]:hover,fieldset[disabled] .blue-ebonyclay.btn,fieldset[disabled] .blue-ebonyclay.btn.active,fieldset[disabled] .blue-ebonyclay.btn:active,fieldset[disabled] .blue-ebonyclay.btn:focus,fieldset[disabled] .blue-ebonyclay.btn:hover{background-color:#22313F}.blue-ebonyclay.btn .badge{color:#22313F;background-color:#FFF}.portlet.blue-ebonyclay,.portlet.box.blue-ebonyclay>.portlet-title,.portlet>.portlet-body.blue-ebonyclay{background-color:#22313F}.btn.blue-ebonyclay-stripe{border-left:3px solid #22313F}.portlet.solid.blue-ebonyclay>.portlet-body,.portlet.solid.blue-ebonyclay>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-ebonyclay>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-ebonyclay>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-ebonyclay{border:1px solid #344b60;border-top:0}.portlet.box.blue-ebonyclay>.portlet-title>.caption,.portlet.box.blue-ebonyclay>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #496a88;color:#527798}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default>i{color:#587ea2}.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default.active,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:active,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-ebonyclay>.portlet-title>.actions .btn-default:hover{border:1px solid #5d83a7;color:#6d90b0}.dashboard-stat.blue-ebonyclay{background-color:#22313F}.dashboard-stat.blue-ebonyclay.dashboard-stat-light:hover{background-color:#1b2732}.dashboard-stat.blue-ebonyclay .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-ebonyclay .details .number{color:#FFF}.dashboard-stat.blue-ebonyclay .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-ebonyclay .more{color:#FFF;background-color:#1b2732}.bg-blue-ebonyclay{border-color:#22313F!important;background-image:none!important;background-color:#22313F!important;color:#FFF!important}.font-blue-ebonyclay{color:#22313F!important}.progress-bar.blue-ebonyclay{background:#22313F!important;color:#FFF!important}.blue-hoki.btn{color:#FFF;background-color:#67809F;border-color:""}.blue-hoki.btn.active,.blue-hoki.btn:active,.blue-hoki.btn:focus,.blue-hoki.btn:hover,.open .blue-hoki.btn.dropdown-toggle{color:#FFF;background-color:#586e8b}.blue-hoki.btn.active,.blue-hoki.btn:active{background-image:none;background-color:#4e627b}.blue-hoki.btn.active:hover,.blue-hoki.btn:active:hover{background-color:#526781}.open .blue-hoki.btn.dropdown-toggle{background-image:none}.blue-hoki.btn.disabled,.blue-hoki.btn.disabled.active,.blue-hoki.btn.disabled:active,.blue-hoki.btn.disabled:focus,.blue-hoki.btn.disabled:hover,.blue-hoki.btn[disabled],.blue-hoki.btn[disabled].active,.blue-hoki.btn[disabled]:active,.blue-hoki.btn[disabled]:focus,.blue-hoki.btn[disabled]:hover,fieldset[disabled] .blue-hoki.btn,fieldset[disabled] .blue-hoki.btn.active,fieldset[disabled] .blue-hoki.btn:active,fieldset[disabled] .blue-hoki.btn:focus,fieldset[disabled] .blue-hoki.btn:hover{background-color:#67809F}.blue-hoki.btn .badge{color:#67809F;background-color:#FFF}.portlet.blue-hoki,.portlet.box.blue-hoki>.portlet-title,.portlet>.portlet-body.blue-hoki{background-color:#67809F}.btn.blue-hoki-stripe{border-left:3px solid #67809F}.portlet.solid.blue-hoki>.portlet-body,.portlet.solid.blue-hoki>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-hoki>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-hoki>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-hoki>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-hoki{border:1px solid #869ab3;border-top:0}.portlet.box.blue-hoki>.portlet-title>.caption,.portlet.box.blue-hoki>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #acb9ca;color:#bbc7d4}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default>i{color:#c5ceda}.portlet.box.blue-hoki>.portlet-title>.actions .btn-default.active,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:active,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-hoki>.portlet-title>.actions .btn-default:hover{border:1px solid #cbd4de;color:#dbe1e8}.dashboard-stat.blue-hoki{background-color:#67809F}.dashboard-stat.blue-hoki.dashboard-stat-light:hover{background-color:#5e7694}.dashboard-stat.blue-hoki .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-hoki .details .number{color:#FFF}.dashboard-stat.blue-hoki .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-hoki .more{color:#FFF;background-color:#5e7694}.bg-blue-hoki{border-color:#67809F!important;background-image:none!important;background-color:#67809F!important;color:#FFF!important}.font-blue-hoki{color:#67809F!important}.progress-bar.blue-hoki{background:#67809F!important;color:#FFF!important}.blue-steel.btn{color:#FFF;background-color:#4B77BE;border-color:""}.blue-steel.btn.active,.blue-steel.btn:active,.blue-steel.btn:focus,.blue-steel.btn:hover,.open .blue-steel.btn.dropdown-toggle{color:#FFF;background-color:#3d66a8}.blue-steel.btn.active,.blue-steel.btn:active{background-image:none;background-color:#365b96}.blue-steel.btn.active:hover,.blue-steel.btn:active:hover{background-color:#395f9d}.open .blue-steel.btn.dropdown-toggle{background-image:none}.blue-steel.btn.disabled,.blue-steel.btn.disabled.active,.blue-steel.btn.disabled:active,.blue-steel.btn.disabled:focus,.blue-steel.btn.disabled:hover,.blue-steel.btn[disabled],.blue-steel.btn[disabled].active,.blue-steel.btn[disabled]:active,.blue-steel.btn[disabled]:focus,.blue-steel.btn[disabled]:hover,fieldset[disabled] .blue-steel.btn,fieldset[disabled] .blue-steel.btn.active,fieldset[disabled] .blue-steel.btn:active,fieldset[disabled] .blue-steel.btn:focus,fieldset[disabled] .blue-steel.btn:hover{background-color:#4B77BE}.blue-steel.btn .badge{color:#4B77BE;background-color:#FFF}.portlet.blue-steel,.portlet.box.blue-steel>.portlet-title,.portlet>.portlet-body.blue-steel{background-color:#4B77BE}.btn.blue-steel-stripe{border-left:3px solid #4B77BE}.portlet.solid.blue-steel>.portlet-body,.portlet.solid.blue-steel>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-steel>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-steel>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.collapse{background-image:url(../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-steel>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-steel{border:1px solid #7093cc;border-top:0}.portlet.box.blue-steel>.portlet-title>.caption,.portlet.box.blue-steel>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-steel>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9db5dc;color:#b0c3e3}.portlet.box.blue-steel>.portlet-title>.actions .btn-default>i{color:#bbcce7}.portlet.box.blue-steel>.portlet-title>.actions .btn-default.active,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:active,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-steel>.portlet-title>.actions .btn-default:hover{border:1px solid #c3d2e9;color:#d6e0f0}.dashboard-stat.blue-steel{background-color:#4B77BE}.dashboard-stat.blue-steel.dashboard-stat-light:hover{background-color:#416db4}.dashboard-stat.blue-steel .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-steel .details .number{color:#FFF}.dashboard-stat.blue-steel .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-steel .more{color:#FFF;background-color:#416db4}.bg-blue-steel{border-color:#4B77BE!important;background-image:none!important;background-color:#4B77BE!important;color:#FFF!important}.font-blue-steel{color:#4B77BE!important}.progress-bar.blue-steel{background:#4B77BE!important;color:#FFF!important}.blue-soft.btn{color:#FFF;background-color:#4c87b9;border-color:""}.blue-soft.btn.active,.blue-soft.btn:active,.blue-soft.btn:focus,.blue-soft.btn:hover,.open .blue-soft.btn.dropdown-toggle{color:#FFF;background-color:#3f75a2}.blue-soft.btn.active,.blue-soft.btn:active{background-image:none;background-color:#386890}.blue-soft.btn.active:hover,.blue-soft.btn:active:hover{background-color:#3b6d97}.open .blue-soft.btn.dropdown-toggle{background-image:none}.blue-soft.btn.disabled,.blue-soft.btn.disabled.active,.blue-soft.btn.disabled:active,.blue-soft.btn.disabled:focus,.blue-soft.btn.disabled:hover,.blue-soft.btn[disabled],.blue-soft.btn[disabled].active,.blue-soft.btn[disabled]:active,.blue-soft.btn[disabled]:focus,.blue-soft.btn[disabled]:hover,fieldset[disabled] .blue-soft.btn,fieldset[disabled] .blue-soft.btn.active,fieldset[disabled] .blue-soft.btn:active,fieldset[disabled] .blue-soft.btn:focus,fieldset[disabled] .blue-soft.btn:hover{background-color:#4c87b9}.blue-soft.btn .badge{color:#4c87b9;background-color:#FFF}.portlet.blue-soft,.portlet.box.blue-soft>.portlet-title,.portlet>.portlet-body.blue-soft{background-color:#4c87b9}.btn.blue-soft-stripe{border-left:3px solid #4c87b9}.portlet.solid.blue-soft>.portlet-body,.portlet.solid.blue-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-soft{border:1px solid #71a0c7;border-top:0}.portlet.box.blue-soft>.portlet-title>.caption,.portlet.box.blue-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9dbdd9;color:#afc9e0}.portlet.box.blue-soft>.portlet-title>.actions .btn-default>i{color:#bad1e4}.portlet.box.blue-soft>.portlet-title>.actions .btn-default.active,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:active,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #c1d6e7;color:#d4e2ee}.dashboard-stat.blue-soft{background-color:#4c87b9}.dashboard-stat.blue-soft.dashboard-stat-light:hover{background-color:#447dad}.dashboard-stat.blue-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-soft .details .number{color:#FFF}.dashboard-stat.blue-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-soft .more{color:#FFF;background-color:#447dad}.bg-blue-soft{border-color:#4c87b9!important;background-image:none!important;background-color:#4c87b9!important;color:#FFF!important}.font-blue-soft{color:#4c87b9!important}.progress-bar.blue-soft{background:#4c87b9!important;color:#FFF!important}.blue-dark.btn{color:#FFF;background-color:#5e738b;border-color:""}.blue-dark.btn.active,.blue-dark.btn:active,.blue-dark.btn:focus,.blue-dark.btn:hover,.open .blue-dark.btn.dropdown-toggle{color:#FFF;background-color:#506176}.blue-dark.btn.active,.blue-dark.btn:active{background-image:none;background-color:#455566}.blue-dark.btn.active:hover,.blue-dark.btn:active:hover{background-color:#495a6d}.open .blue-dark.btn.dropdown-toggle{background-image:none}.blue-dark.btn.disabled,.blue-dark.btn.disabled.active,.blue-dark.btn.disabled:active,.blue-dark.btn.disabled:focus,.blue-dark.btn.disabled:hover,.blue-dark.btn[disabled],.blue-dark.btn[disabled].active,.blue-dark.btn[disabled]:active,.blue-dark.btn[disabled]:focus,.blue-dark.btn[disabled]:hover,fieldset[disabled] .blue-dark.btn,fieldset[disabled] .blue-dark.btn.active,fieldset[disabled] .blue-dark.btn:active,fieldset[disabled] .blue-dark.btn:focus,fieldset[disabled] .blue-dark.btn:hover{background-color:#5e738b}.blue-dark.btn .badge{color:#5e738b;background-color:#FFF}.portlet.blue-dark,.portlet.box.blue-dark>.portlet-title,.portlet>.portlet-body.blue-dark{background-color:#5e738b}.btn.blue-dark-stripe{border-left:3px solid #5e738b}.portlet.solid.blue-dark>.portlet-body,.portlet.solid.blue-dark>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-dark>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-dark>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-dark>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-dark{border:1px solid #788da4;border-top:0}.portlet.box.blue-dark>.portlet-title>.caption,.portlet.box.blue-dark>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-dark>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9dacbd;color:#acb8c7}.portlet.box.blue-dark>.portlet-title>.actions .btn-default>i{color:#b5c0cd}.portlet.box.blue-dark>.portlet-title>.actions .btn-default.active,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:active,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-dark>.portlet-title>.actions .btn-default:hover{border:1px solid #bbc5d1;color:#cad2db}.dashboard-stat.blue-dark{background-color:#5e738b}.dashboard-stat.blue-dark.dashboard-stat-light:hover{background-color:#56697f}.dashboard-stat.blue-dark .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-dark .details .number{color:#FFF}.dashboard-stat.blue-dark .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-dark .more{color:#FFF;background-color:#56697f}.bg-blue-dark{border-color:#5e738b!important;background-image:none!important;background-color:#5e738b!important;color:#FFF!important}.font-blue-dark{color:#5e738b!important}.progress-bar.blue-dark{background:#5e738b!important;color:#FFF!important}.blue-sharp.btn{color:#FFF;background-color:#5C9BD1;border-color:""}.blue-sharp.btn.active,.blue-sharp.btn:active,.blue-sharp.btn:focus,.blue-sharp.btn:hover,.open .blue-sharp.btn.dropdown-toggle{color:#FFF;background-color:#408ac9}.blue-sharp.btn.active,.blue-sharp.btn:active{background-image:none;background-color:#357dbb}.blue-sharp.btn.active:hover,.blue-sharp.btn:active:hover{background-color:#3782c3}.open .blue-sharp.btn.dropdown-toggle{background-image:none}.blue-sharp.btn.disabled,.blue-sharp.btn.disabled.active,.blue-sharp.btn.disabled:active,.blue-sharp.btn.disabled:focus,.blue-sharp.btn.disabled:hover,.blue-sharp.btn[disabled],.blue-sharp.btn[disabled].active,.blue-sharp.btn[disabled]:active,.blue-sharp.btn[disabled]:focus,.blue-sharp.btn[disabled]:hover,fieldset[disabled] .blue-sharp.btn,fieldset[disabled] .blue-sharp.btn.active,fieldset[disabled] .blue-sharp.btn:active,fieldset[disabled] .blue-sharp.btn:focus,fieldset[disabled] .blue-sharp.btn:hover{background-color:#5C9BD1}.blue-sharp.btn .badge{color:#5C9BD1;background-color:#FFF}.portlet.blue-sharp,.portlet.box.blue-sharp>.portlet-title,.portlet>.portlet-body.blue-sharp{background-color:#5C9BD1}.btn.blue-sharp-stripe{border-left:3px solid #5C9BD1}.portlet.solid.blue-sharp>.portlet-body,.portlet.solid.blue-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.blue-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.blue-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.blue-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.blue-sharp{border:1px solid #84b3dc;border-top:0}.portlet.box.blue-sharp>.portlet-title>.caption,.portlet.box.blue-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b4d1ea;color:#c7ddef}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default>i{color:#d3e4f3}.portlet.box.blue-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.blue-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #dbe9f5;color:#eff5fb}.dashboard-stat.blue-sharp{background-color:#5C9BD1}.dashboard-stat.blue-sharp.dashboard-stat-light:hover{background-color:#4c91cd}.dashboard-stat.blue-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.blue-sharp .details .number{color:#FFF}.dashboard-stat.blue-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.blue-sharp .more{color:#FFF;background-color:#4c91cd}.bg-blue-sharp{border-color:#5C9BD1!important;background-image:none!important;background-color:#5C9BD1!important;color:#FFF!important}.font-blue-sharp{color:#5C9BD1!important}.progress-bar.blue-sharp{background:#5C9BD1!important;color:#FFF!important}.green.btn{color:#FFF;background-color:#35aa47;border-color:""}.green.btn.active,.green.btn:active,.green.btn:focus,.green.btn:hover,.open .green.btn.dropdown-toggle{color:#FFF;background-color:#2d8f3c}.green.btn.active,.green.btn:active{background-image:none;background-color:#267b34}.green.btn.active:hover,.green.btn:active:hover{background-color:#298337}.open .green.btn.dropdown-toggle{background-image:none}.green.btn.disabled,.green.btn.disabled.active,.green.btn.disabled:active,.green.btn.disabled:focus,.green.btn.disabled:hover,.green.btn[disabled],.green.btn[disabled].active,.green.btn[disabled]:active,.green.btn[disabled]:focus,.green.btn[disabled]:hover,fieldset[disabled] .green.btn,fieldset[disabled] .green.btn.active,fieldset[disabled] .green.btn:active,fieldset[disabled] .green.btn:focus,fieldset[disabled] .green.btn:hover{background-color:#35aa47}.green.btn .badge{color:#35aa47;background-color:#FFF}.portlet.box.green>.portlet-title,.portlet.green,.portlet>.portlet-body.green{background-color:#35aa47}.btn.green-stripe{border-left:3px solid #35aa47}.portlet.solid.green>.portlet-body,.portlet.solid.green>.portlet-title{border:0;color:#FFF}.portlet.solid.green>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green{border:1px solid #4bc75e;border-top:0}.portlet.box.green>.portlet-title>.caption,.portlet.box.green>.portlet-title>.caption>i{color:#FFF}.portlet.box.green>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #7ad588;color:#8ddc99}.portlet.box.green>.portlet-title>.actions .btn-default>i{color:#99dfa4}.portlet.box.green>.portlet-title>.actions .btn-default.active,.portlet.box.green>.portlet-title>.actions .btn-default:active,.portlet.box.green>.portlet-title>.actions .btn-default:focus,.portlet.box.green>.portlet-title>.actions .btn-default:hover{border:1px solid #a1e2ab;color:#b4e8bc}.dashboard-stat.green{background-color:#35aa47}.dashboard-stat.green.dashboard-stat-light:hover{background-color:#309a41}.dashboard-stat.green .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green .details .number{color:#FFF}.dashboard-stat.green .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green .more{color:#FFF;background-color:#309a41}.bg-green{border-color:#35aa47!important;background-image:none!important;background-color:#35aa47!important;color:#FFF!important}.font-green{color:#35aa47!important}.progress-bar.green{background:#35aa47!important;color:#FFF!important}.green-meadow.btn{color:#FFF;background-color:#1BBC9B;border-color:""}.green-meadow.btn.active,.green-meadow.btn:active,.green-meadow.btn:focus,.green-meadow.btn:hover,.open .green-meadow.btn.dropdown-toggle{color:#FFF;background-color:#179d81}.green-meadow.btn.active,.green-meadow.btn:active{background-image:none;background-color:#13866f}.green-meadow.btn.active:hover,.green-meadow.btn:active:hover{background-color:#158f76}.open .green-meadow.btn.dropdown-toggle{background-image:none}.green-meadow.btn.disabled,.green-meadow.btn.disabled.active,.green-meadow.btn.disabled:active,.green-meadow.btn.disabled:focus,.green-meadow.btn.disabled:hover,.green-meadow.btn[disabled],.green-meadow.btn[disabled].active,.green-meadow.btn[disabled]:active,.green-meadow.btn[disabled]:focus,.green-meadow.btn[disabled]:hover,fieldset[disabled] .green-meadow.btn,fieldset[disabled] .green-meadow.btn.active,fieldset[disabled] .green-meadow.btn:active,fieldset[disabled] .green-meadow.btn:focus,fieldset[disabled] .green-meadow.btn:hover{background-color:#1BBC9B}.green-meadow.btn .badge{color:#1BBC9B;background-color:#FFF}.portlet.box.green-meadow>.portlet-title,.portlet.green-meadow,.portlet>.portlet-body.green-meadow{background-color:#1BBC9B}.btn.green-meadow-stripe{border-left:3px solid #1BBC9B}.portlet.solid.green-meadow>.portlet-body,.portlet.solid.green-meadow>.portlet-title{border:0;color:#FFF}.portlet.solid.green-meadow>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-meadow>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-meadow>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-meadow{border:1px solid #2ae0bb;border-top:0}.portlet.box.green-meadow>.portlet-title>.caption,.portlet.box.green-meadow>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-meadow>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #5fe8cc;color:#75ebd3}.portlet.box.green-meadow>.portlet-title>.actions .btn-default>i{color:#83edd7}.portlet.box.green-meadow>.portlet-title>.actions .btn-default.active,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:active,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:focus,.portlet.box.green-meadow>.portlet-title>.actions .btn-default:hover{border:1px solid #8ceeda;color:#a2f2e1}.dashboard-stat.green-meadow{background-color:#1BBC9B}.dashboard-stat.green-meadow.dashboard-stat-light:hover{background-color:#18aa8c}.dashboard-stat.green-meadow .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-meadow .details .number{color:#FFF}.dashboard-stat.green-meadow .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-meadow .more{color:#FFF;background-color:#18aa8c}.bg-green-meadow{border-color:#1BBC9B!important;background-image:none!important;background-color:#1BBC9B!important;color:#FFF!important}.font-green-meadow{color:#1BBC9B!important}.progress-bar.green-meadow{background:#1BBC9B!important;color:#FFF!important}.green-seagreen.btn{color:#FFF;background-color:#1BA39C;border-color:""}.green-seagreen.btn.active,.green-seagreen.btn:active,.green-seagreen.btn:focus,.green-seagreen.btn:hover,.open .green-seagreen.btn.dropdown-toggle{color:#FFF;background-color:#16847f}.green-seagreen.btn.active,.green-seagreen.btn:active{background-image:none;background-color:#126e6a}.green-seagreen.btn.active:hover,.green-seagreen.btn:active:hover{background-color:#147772}.open .green-seagreen.btn.dropdown-toggle{background-image:none}.green-seagreen.btn.disabled,.green-seagreen.btn.disabled.active,.green-seagreen.btn.disabled:active,.green-seagreen.btn.disabled:focus,.green-seagreen.btn.disabled:hover,.green-seagreen.btn[disabled],.green-seagreen.btn[disabled].active,.green-seagreen.btn[disabled]:active,.green-seagreen.btn[disabled]:focus,.green-seagreen.btn[disabled]:hover,fieldset[disabled] .green-seagreen.btn,fieldset[disabled] .green-seagreen.btn.active,fieldset[disabled] .green-seagreen.btn:active,fieldset[disabled] .green-seagreen.btn:focus,fieldset[disabled] .green-seagreen.btn:hover{background-color:#1BA39C}.green-seagreen.btn .badge{color:#1BA39C;background-color:#FFF}.portlet.box.green-seagreen>.portlet-title,.portlet.green-seagreen,.portlet>.portlet-body.green-seagreen{background-color:#1BA39C}.btn.green-seagreen-stripe{border-left:3px solid #1BA39C}.portlet.solid.green-seagreen>.portlet-body,.portlet.solid.green-seagreen>.portlet-title{border:0;color:#FFF}.portlet.solid.green-seagreen>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-seagreen>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-seagreen>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-seagreen{border:1px solid #22cfc6;border-top:0}.portlet.box.green-seagreen>.portlet-title>.caption,.portlet.box.green-seagreen>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #4de1da;color:#63e5de}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default>i{color:#70e7e1}.portlet.box.green-seagreen>.portlet-title>.actions .btn-default.active,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:active,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:focus,.portlet.box.green-seagreen>.portlet-title>.actions .btn-default:hover{border:1px solid #78e9e3;color:#8eece8}.dashboard-stat.green-seagreen{background-color:#1BA39C}.dashboard-stat.green-seagreen.dashboard-stat-light:hover{background-color:#18918b}.dashboard-stat.green-seagreen .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-seagreen .details .number{color:#FFF}.dashboard-stat.green-seagreen .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-seagreen .more{color:#FFF;background-color:#18918b}.bg-green-seagreen{border-color:#1BA39C!important;background-image:none!important;background-color:#1BA39C!important;color:#FFF!important}.font-green-seagreen{color:#1BA39C!important}.progress-bar.green-seagreen{background:#1BA39C!important;color:#FFF!important}.green-turquoise.btn{color:#FFF;background-color:#36D7B7;border-color:""}.green-turquoise.btn.active,.green-turquoise.btn:active,.green-turquoise.btn:focus,.green-turquoise.btn:hover,.open .green-turquoise.btn.dropdown-toggle{color:#FFF;background-color:#27c3a4}.green-turquoise.btn.active,.green-turquoise.btn:active{background-image:none;background-color:#22ad92}.green-turquoise.btn.active:hover,.green-turquoise.btn:active:hover{background-color:#24b699}.open .green-turquoise.btn.dropdown-toggle{background-image:none}.green-turquoise.btn.disabled,.green-turquoise.btn.disabled.active,.green-turquoise.btn.disabled:active,.green-turquoise.btn.disabled:focus,.green-turquoise.btn.disabled:hover,.green-turquoise.btn[disabled],.green-turquoise.btn[disabled].active,.green-turquoise.btn[disabled]:active,.green-turquoise.btn[disabled]:focus,.green-turquoise.btn[disabled]:hover,fieldset[disabled] .green-turquoise.btn,fieldset[disabled] .green-turquoise.btn.active,fieldset[disabled] .green-turquoise.btn:active,fieldset[disabled] .green-turquoise.btn:focus,fieldset[disabled] .green-turquoise.btn:hover{background-color:#36D7B7}.green-turquoise.btn .badge{color:#36D7B7;background-color:#FFF}.portlet.box.green-turquoise>.portlet-title,.portlet.green-turquoise,.portlet>.portlet-body.green-turquoise{background-color:#36D7B7}.btn.green-turquoise-stripe{border-left:3px solid #36D7B7}.portlet.solid.green-turquoise>.portlet-body,.portlet.solid.green-turquoise>.portlet-title{border:0;color:#FFF}.portlet.solid.green-turquoise>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-turquoise>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-turquoise>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-turquoise{border:1px solid #61dfc6;border-top:0}.portlet.box.green-turquoise>.portlet-title>.caption,.portlet.box.green-turquoise>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #94ead9;color:#a9eee0}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default>i{color:#b6f0e5}.portlet.box.green-turquoise>.portlet-title>.actions .btn-default.active,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:active,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:focus,.portlet.box.green-turquoise>.portlet-title>.actions .btn-default:hover{border:1px solid #bef2e8;color:#d3f6ef}.dashboard-stat.green-turquoise{background-color:#36D7B7}.dashboard-stat.green-turquoise.dashboard-stat-light:hover{background-color:#29cfae}.dashboard-stat.green-turquoise .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-turquoise .details .number{color:#FFF}.dashboard-stat.green-turquoise .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-turquoise .more{color:#FFF;background-color:#29cfae}.bg-green-turquoise{border-color:#36D7B7!important;background-image:none!important;background-color:#36D7B7!important;color:#FFF!important}.font-green-turquoise{color:#36D7B7!important}.progress-bar.green-turquoise{background:#36D7B7!important;color:#FFF!important}.green-haze.btn{color:#FFF;background-color:#44b6ae;border-color:""}.green-haze.btn.active,.green-haze.btn:active,.green-haze.btn:focus,.green-haze.btn:hover,.open .green-haze.btn.dropdown-toggle{color:#FFF;background-color:#3a9c95}.green-haze.btn.active,.green-haze.btn:active{background-image:none;background-color:#338983}.green-haze.btn.active:hover,.green-haze.btn:active:hover{background-color:#36918b}.open .green-haze.btn.dropdown-toggle{background-image:none}.green-haze.btn.disabled,.green-haze.btn.disabled.active,.green-haze.btn.disabled:active,.green-haze.btn.disabled:focus,.green-haze.btn.disabled:hover,.green-haze.btn[disabled],.green-haze.btn[disabled].active,.green-haze.btn[disabled]:active,.green-haze.btn[disabled]:focus,.green-haze.btn[disabled]:hover,fieldset[disabled] .green-haze.btn,fieldset[disabled] .green-haze.btn.active,fieldset[disabled] .green-haze.btn:active,fieldset[disabled] .green-haze.btn:focus,fieldset[disabled] .green-haze.btn:hover{background-color:#44b6ae}.green-haze.btn .badge{color:#44b6ae;background-color:#FFF}.portlet.box.green-haze>.portlet-title,.portlet.green-haze,.portlet>.portlet-body.green-haze{background-color:#44b6ae}.btn.green-haze-stripe{border-left:3px solid #44b6ae}.portlet.solid.green-haze>.portlet-body,.portlet.solid.green-haze>.portlet-title{border:0;color:#FFF}.portlet.solid.green-haze>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-haze>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-haze>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-haze{border:1px solid #67c6bf;border-top:0}.portlet.box.green-haze>.portlet-title>.caption,.portlet.box.green-haze>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-haze>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #93d7d2;color:#a6deda}.portlet.box.green-haze>.portlet-title>.actions .btn-default>i{color:#b1e2de}.portlet.box.green-haze>.portlet-title>.actions .btn-default.active,.portlet.box.green-haze>.portlet-title>.actions .btn-default:active,.portlet.box.green-haze>.portlet-title>.actions .btn-default:focus,.portlet.box.green-haze>.portlet-title>.actions .btn-default:hover{border:1px solid #b9e5e2;color:#cbece9}.dashboard-stat.green-haze{background-color:#44b6ae}.dashboard-stat.green-haze.dashboard-stat-light:hover{background-color:#3ea7a0}.dashboard-stat.green-haze .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-haze .details .number{color:#FFF}.dashboard-stat.green-haze .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-haze .more{color:#FFF;background-color:#3ea7a0}.bg-green-haze{border-color:#44b6ae!important;background-image:none!important;background-color:#44b6ae!important;color:#FFF!important}.font-green-haze{color:#44b6ae!important}.progress-bar.green-haze{background:#44b6ae!important;color:#FFF!important}.green-jungle.btn{color:#FFF;background-color:#26C281;border-color:""}.green-jungle.btn.active,.green-jungle.btn:active,.green-jungle.btn:focus,.green-jungle.btn:hover,.open .green-jungle.btn.dropdown-toggle{color:#FFF;background-color:#20a46d}.green-jungle.btn.active,.green-jungle.btn:active{background-image:none;background-color:#1c8f5f}.green-jungle.btn.active:hover,.green-jungle.btn:active:hover{background-color:#1e9765}.open .green-jungle.btn.dropdown-toggle{background-image:none}.green-jungle.btn.disabled,.green-jungle.btn.disabled.active,.green-jungle.btn.disabled:active,.green-jungle.btn.disabled:focus,.green-jungle.btn.disabled:hover,.green-jungle.btn[disabled],.green-jungle.btn[disabled].active,.green-jungle.btn[disabled]:active,.green-jungle.btn[disabled]:focus,.green-jungle.btn[disabled]:hover,fieldset[disabled] .green-jungle.btn,fieldset[disabled] .green-jungle.btn.active,fieldset[disabled] .green-jungle.btn:active,fieldset[disabled] .green-jungle.btn:focus,fieldset[disabled] .green-jungle.btn:hover{background-color:#26C281}.green-jungle.btn .badge{color:#26C281;background-color:#FFF}.portlet.box.green-jungle>.portlet-title,.portlet.green-jungle,.portlet>.portlet-body.green-jungle{background-color:#26C281}.btn.green-jungle-stripe{border-left:3px solid #26C281}.portlet.solid.green-jungle>.portlet-body,.portlet.solid.green-jungle>.portlet-title{border:0;color:#FFF}.portlet.solid.green-jungle>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-jungle>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-jungle>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-jungle{border:1px solid #41da9a;border-top:0}.portlet.box.green-jungle>.portlet-title>.caption,.portlet.box.green-jungle>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-jungle>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #74e4b5;color:#8ae8c1}.portlet.box.green-jungle>.portlet-title>.actions .btn-default>i{color:#96ebc8}.portlet.box.green-jungle>.portlet-title>.actions .btn-default.active,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:active,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:focus,.portlet.box.green-jungle>.portlet-title>.actions .btn-default:hover{border:1px solid #9feccc;color:#b4f0d7}.dashboard-stat.green-jungle{background-color:#26C281}.dashboard-stat.green-jungle.dashboard-stat-light:hover{background-color:#23b176}.dashboard-stat.green-jungle .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-jungle .details .number{color:#FFF}.dashboard-stat.green-jungle .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-jungle .more{color:#FFF;background-color:#23b176}.bg-green-jungle{border-color:#26C281!important;background-image:none!important;background-color:#26C281!important;color:#FFF!important}.font-green-jungle{color:#26C281!important}.progress-bar.green-jungle{background:#26C281!important;color:#FFF!important}.green-sharp.btn{color:#FFF;background-color:#4DB3A2;border-color:""}.green-sharp.btn.active,.green-sharp.btn:active,.green-sharp.btn:focus,.green-sharp.btn:hover,.open .green-sharp.btn.dropdown-toggle{color:#FFF;background-color:#429a8c}.green-sharp.btn.active,.green-sharp.btn:active{background-image:none;background-color:#3a897b}.green-sharp.btn.active:hover,.green-sharp.btn:active:hover{background-color:#3d9082}.open .green-sharp.btn.dropdown-toggle{background-image:none}.green-sharp.btn.disabled,.green-sharp.btn.disabled.active,.green-sharp.btn.disabled:active,.green-sharp.btn.disabled:focus,.green-sharp.btn.disabled:hover,.green-sharp.btn[disabled],.green-sharp.btn[disabled].active,.green-sharp.btn[disabled]:active,.green-sharp.btn[disabled]:focus,.green-sharp.btn[disabled]:hover,fieldset[disabled] .green-sharp.btn,fieldset[disabled] .green-sharp.btn.active,fieldset[disabled] .green-sharp.btn:active,fieldset[disabled] .green-sharp.btn:focus,fieldset[disabled] .green-sharp.btn:hover{background-color:#4DB3A2}.green-sharp.btn .badge{color:#4DB3A2;background-color:#FFF}.portlet.box.green-sharp>.portlet-title,.portlet.green-sharp,.portlet>.portlet-body.green-sharp{background-color:#4DB3A2}.btn.green-sharp-stripe{border-left:3px solid #4DB3A2}.portlet.solid.green-sharp>.portlet-body,.portlet.solid.green-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.green-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-sharp{border:1px solid #71c2b5;border-top:0}.portlet.box.green-sharp>.portlet-title>.caption,.portlet.box.green-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #9cd5cb;color:#addcd4}.portlet.box.green-sharp>.portlet-title>.actions .btn-default>i{color:#b8e1da}.portlet.box.green-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.green-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #bfe4de;color:#d1ebe7}.dashboard-stat.green-sharp{background-color:#4DB3A2}.dashboard-stat.green-sharp.dashboard-stat-light:hover{background-color:#46a595}.dashboard-stat.green-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-sharp .details .number{color:#FFF}.dashboard-stat.green-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-sharp .more{color:#FFF;background-color:#46a595}.bg-green-sharp{border-color:#4DB3A2!important;background-image:none!important;background-color:#4DB3A2!important;color:#FFF!important}.font-green-sharp{color:#4DB3A2!important}.progress-bar.green-sharp{background:#4DB3A2!important;color:#FFF!important}.green-soft.btn{color:#FFF;background-color:#3faba4;border-color:""}.green-soft.btn.active,.green-soft.btn:active,.green-soft.btn:focus,.green-soft.btn:hover,.open .green-soft.btn.dropdown-toggle{color:#FFF;background-color:#35918b}.green-soft.btn.active,.green-soft.btn:active{background-image:none;background-color:#2f7e79}.green-soft.btn.active:hover,.green-soft.btn:active:hover{background-color:#318680}.open .green-soft.btn.dropdown-toggle{background-image:none}.green-soft.btn.disabled,.green-soft.btn.disabled.active,.green-soft.btn.disabled:active,.green-soft.btn.disabled:focus,.green-soft.btn.disabled:hover,.green-soft.btn[disabled],.green-soft.btn[disabled].active,.green-soft.btn[disabled]:active,.green-soft.btn[disabled]:focus,.green-soft.btn[disabled]:hover,fieldset[disabled] .green-soft.btn,fieldset[disabled] .green-soft.btn.active,fieldset[disabled] .green-soft.btn:active,fieldset[disabled] .green-soft.btn:focus,fieldset[disabled] .green-soft.btn:hover{background-color:#3faba4}.green-soft.btn .badge{color:#3faba4;background-color:#FFF}.portlet.box.green-soft>.portlet-title,.portlet.green-soft,.portlet>.portlet-body.green-soft{background-color:#3faba4}.btn.green-soft-stripe{border-left:3px solid #3faba4}.portlet.solid.green-soft>.portlet-body,.portlet.solid.green-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.green-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.green-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.green-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.green-soft{border:1px solid #5bc2bc;border-top:0}.portlet.box.green-soft>.portlet-title>.caption,.portlet.box.green-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.green-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #87d3ce;color:#9adad6}.portlet.box.green-soft>.portlet-title>.actions .btn-default>i{color:#a5deda}.portlet.box.green-soft>.portlet-title>.actions .btn-default.active,.portlet.box.green-soft>.portlet-title>.actions .btn-default:active,.portlet.box.green-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.green-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #ade1dd;color:#bfe7e5}.dashboard-stat.green-soft{background-color:#3faba4}.dashboard-stat.green-soft.dashboard-stat-light:hover{background-color:#3a9c96}.dashboard-stat.green-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.green-soft .details .number{color:#FFF}.dashboard-stat.green-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.green-soft .more{color:#FFF;background-color:#3a9c96}.bg-green-soft{border-color:#3faba4!important;background-image:none!important;background-color:#3faba4!important;color:#FFF!important}.font-green-soft{color:#3faba4!important}.progress-bar.green-soft{background:#3faba4!important;color:#FFF!important}.grey.btn{color:#333;background-color:#E5E5E5;border-color:""}.grey.btn.active,.grey.btn:active,.grey.btn:focus,.grey.btn:hover,.open .grey.btn.dropdown-toggle{color:#333;background-color:#d3d3d3}.grey.btn.active,.grey.btn:active{background-image:none;background-color:#c6c6c6}.grey.btn.active:hover,.grey.btn:active:hover{background-color:#ccc}.open .grey.btn.dropdown-toggle{background-image:none}.grey.btn.disabled,.grey.btn.disabled.active,.grey.btn.disabled:active,.grey.btn.disabled:focus,.grey.btn.disabled:hover,.grey.btn[disabled],.grey.btn[disabled].active,.grey.btn[disabled]:active,.grey.btn[disabled]:focus,.grey.btn[disabled]:hover,fieldset[disabled] .grey.btn,fieldset[disabled] .grey.btn.active,fieldset[disabled] .grey.btn:active,fieldset[disabled] .grey.btn:focus,fieldset[disabled] .grey.btn:hover{background-color:#E5E5E5}.grey.btn .badge{color:#E5E5E5;background-color:#333}.portlet.box.grey>.portlet-title,.portlet.grey,.portlet>.portlet-body.grey{background-color:#E5E5E5}.btn.grey-stripe{border-left:3px solid #E5E5E5}.portlet.solid.grey>.portlet-body,.portlet.solid.grey>.portlet-title{border:0;color:#333}.portlet.solid.grey>.portlet-title>.caption>i{color:#333}.portlet.solid.grey>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey{border:1px solid #fff;border-top:0}.portlet.box.grey>.portlet-title>.caption,.portlet.box.grey>.portlet-title>.caption>i{color:#333}.portlet.box.grey>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey>.portlet-title>.actions .btn-default.active,.portlet.box.grey>.portlet-title>.actions .btn-default:active,.portlet.box.grey>.portlet-title>.actions .btn-default:focus,.portlet.box.grey>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey{background-color:#E5E5E5}.dashboard-stat.grey.dashboard-stat-light:hover{background-color:#dbdbdb}.dashboard-stat.grey .visual>i{color:#333;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey .details .number{color:#333}.dashboard-stat.grey .details .desc{color:#333;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey .more{color:#333;background-color:#dbdbdb}.bg-grey{border-color:#E5E5E5!important;background-image:none!important;background-color:#E5E5E5!important;color:#333!important}.font-grey{color:#E5E5E5!important}.progress-bar.grey{background:#E5E5E5!important;color:#333!important}.grey-steel.btn{color:#80898e;background-color:#e9edef;border-color:""}.grey-steel.btn.active,.grey-steel.btn:active,.grey-steel.btn:focus,.grey-steel.btn:hover,.open .grey-steel.btn.dropdown-toggle{color:#80898e;background-color:#d4dce0}.grey-steel.btn.active,.grey-steel.btn:active{background-image:none;background-color:#c6d0d5}.grey-steel.btn.active:hover,.grey-steel.btn:active:hover{background-color:#cbd5da}.open .grey-steel.btn.dropdown-toggle{background-image:none}.grey-steel.btn.disabled,.grey-steel.btn.disabled.active,.grey-steel.btn.disabled:active,.grey-steel.btn.disabled:focus,.grey-steel.btn.disabled:hover,.grey-steel.btn[disabled],.grey-steel.btn[disabled].active,.grey-steel.btn[disabled]:active,.grey-steel.btn[disabled]:focus,.grey-steel.btn[disabled]:hover,fieldset[disabled] .grey-steel.btn,fieldset[disabled] .grey-steel.btn.active,fieldset[disabled] .grey-steel.btn:active,fieldset[disabled] .grey-steel.btn:focus,fieldset[disabled] .grey-steel.btn:hover{background-color:#e9edef}.grey-steel.btn .badge{color:#e9edef;background-color:#80898e}.portlet.box.grey-steel>.portlet-title,.portlet.grey-steel,.portlet>.portlet-body.grey-steel{background-color:#e9edef}.btn.grey-steel-stripe{border-left:3px solid #e9edef}.portlet.solid.grey-steel>.portlet-body,.portlet.solid.grey-steel>.portlet-title{border:0;color:#80898e}.portlet.solid.grey-steel>.portlet-title>.caption>i{color:#80898e}.portlet.solid.grey-steel>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-steel>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-steel{border:1px solid #fff;border-top:0}.portlet.box.grey-steel>.portlet-title>.caption,.portlet.box.grey-steel>.portlet-title>.caption>i{color:#80898e}.portlet.box.grey-steel>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-steel>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-steel>.portlet-title>.actions .btn-default.active,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:active,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-steel>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-steel{background-color:#e9edef}.dashboard-stat.grey-steel.dashboard-stat-light:hover{background-color:#dde3e6}.dashboard-stat.grey-steel .visual>i{color:#80898e;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-steel .details .number{color:#80898e}.dashboard-stat.grey-steel .details .desc{color:#80898e;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-steel .more{color:#80898e;background-color:#dde3e6}.bg-grey-steel{border-color:#e9edef!important;background-image:none!important;background-color:#e9edef!important;color:#80898e!important}.font-grey-steel{color:#e9edef!important}.progress-bar.grey-steel{background:#e9edef!important;color:#80898e!important}.grey-cararra.btn{color:#333;background-color:#fafafa;border-color:""}.grey-cararra.btn.active,.grey-cararra.btn:active,.grey-cararra.btn:focus,.grey-cararra.btn:hover,.open .grey-cararra.btn.dropdown-toggle{color:#333;background-color:#e8e8e8}.grey-cararra.btn.active,.grey-cararra.btn:active{background-image:none;background-color:#dbdbdb}.grey-cararra.btn.active:hover,.grey-cararra.btn:active:hover{background-color:#e1e1e1}.open .grey-cararra.btn.dropdown-toggle{background-image:none}.grey-cararra.btn.disabled,.grey-cararra.btn.disabled.active,.grey-cararra.btn.disabled:active,.grey-cararra.btn.disabled:focus,.grey-cararra.btn.disabled:hover,.grey-cararra.btn[disabled],.grey-cararra.btn[disabled].active,.grey-cararra.btn[disabled]:active,.grey-cararra.btn[disabled]:focus,.grey-cararra.btn[disabled]:hover,fieldset[disabled] .grey-cararra.btn,fieldset[disabled] .grey-cararra.btn.active,fieldset[disabled] .grey-cararra.btn:active,fieldset[disabled] .grey-cararra.btn:focus,fieldset[disabled] .grey-cararra.btn:hover{background-color:#fafafa}.grey-cararra.btn .badge{color:#fafafa;background-color:#333}.portlet.box.grey-cararra>.portlet-title,.portlet.grey-cararra,.portlet>.portlet-body.grey-cararra{background-color:#fafafa}.btn.grey-cararra-stripe{border-left:3px solid #fafafa}.portlet.solid.grey-cararra>.portlet-body,.portlet.solid.grey-cararra>.portlet-title{border:0;color:#333}.portlet.solid.grey-cararra>.portlet-title>.caption>i{color:#333}.portlet.solid.grey-cararra>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-cararra>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-cararra{border:1px solid #fff;border-top:0}.portlet.box.grey-cararra>.portlet-title>.caption,.portlet.box.grey-cararra>.portlet-title>.caption>i{color:#333}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-cararra>.portlet-title>.actions .btn-default.active,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:active,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-cararra>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-cararra{background-color:#fafafa}.dashboard-stat.grey-cararra.dashboard-stat-light:hover{background-color:#f0f0f0}.dashboard-stat.grey-cararra .visual>i{color:#333;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-cararra .details .number{color:#333}.dashboard-stat.grey-cararra .details .desc{color:#333;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-cararra .more{color:#333;background-color:#f0f0f0}.bg-grey-cararra{border-color:#fafafa!important;background-image:none!important;background-color:#fafafa!important;color:#333!important}.font-grey-cararra{color:#fafafa!important}.progress-bar.grey-cararra{background:#fafafa!important;color:#333!important}.grey-gallery.btn{color:#fff;background-color:#555;border-color:""}.grey-gallery.btn.active,.grey-gallery.btn:active,.grey-gallery.btn:focus,.grey-gallery.btn:hover,.open .grey-gallery.btn.dropdown-toggle{color:#fff;background-color:#434343}.grey-gallery.btn.active,.grey-gallery.btn:active{background-image:none;background-color:#363636}.grey-gallery.btn.active:hover,.grey-gallery.btn:active:hover{background-color:#3b3b3b}.open .grey-gallery.btn.dropdown-toggle{background-image:none}.grey-gallery.btn.disabled,.grey-gallery.btn.disabled.active,.grey-gallery.btn.disabled:active,.grey-gallery.btn.disabled:focus,.grey-gallery.btn.disabled:hover,.grey-gallery.btn[disabled],.grey-gallery.btn[disabled].active,.grey-gallery.btn[disabled]:active,.grey-gallery.btn[disabled]:focus,.grey-gallery.btn[disabled]:hover,fieldset[disabled] .grey-gallery.btn,fieldset[disabled] .grey-gallery.btn.active,fieldset[disabled] .grey-gallery.btn:active,fieldset[disabled] .grey-gallery.btn:focus,fieldset[disabled] .grey-gallery.btn:hover{background-color:#555}.grey-gallery.btn .badge{color:#555;background-color:#fff}.portlet.box.grey-gallery>.portlet-title,.portlet.grey-gallery,.portlet>.portlet-body.grey-gallery{background-color:#555}.btn.grey-gallery-stripe{border-left:3px solid #555}.portlet.solid.grey-gallery>.portlet-body,.portlet.solid.grey-gallery>.portlet-title{border:0;color:#fff}.portlet.solid.grey-gallery>.portlet-title>.caption>i{color:#fff}.portlet.solid.grey-gallery>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-gallery>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-gallery{border:1px solid #6e6e6e;border-top:0}.portlet.box.grey-gallery>.portlet-title>.caption,.portlet.box.grey-gallery>.portlet-title>.caption>i{color:#fff}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #8d8d8d;color:#9a9a9a}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default>i{color:#a2a2a2}.portlet.box.grey-gallery>.portlet-title>.actions .btn-default.active,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:active,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-gallery>.portlet-title>.actions .btn-default:hover{border:1px solid #a7a7a7;color:#b3b3b3}.dashboard-stat.grey-gallery{background-color:#555}.dashboard-stat.grey-gallery.dashboard-stat-light:hover{background-color:#4b4b4b}.dashboard-stat.grey-gallery .visual>i{color:#fff;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-gallery .details .number{color:#fff}.dashboard-stat.grey-gallery .details .desc{color:#fff;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-gallery .more{color:#fff;background-color:#4b4b4b}.bg-grey-gallery{border-color:#555!important;background-image:none!important;background-color:#555!important;color:#fff!important}.font-grey-gallery{color:#555!important}.progress-bar.grey-gallery{background:#555!important;color:#fff!important}.grey-cascade.btn{color:#FFF;background-color:#95A5A6;border-color:""}.grey-cascade.btn.active,.grey-cascade.btn:active,.grey-cascade.btn:focus,.grey-cascade.btn:hover,.open .grey-cascade.btn.dropdown-toggle{color:#FFF;background-color:#829596}.grey-cascade.btn.active,.grey-cascade.btn:active{background-image:none;background-color:#74898a}.grey-cascade.btn.active:hover,.grey-cascade.btn:active:hover{background-color:#798d8f}.open .grey-cascade.btn.dropdown-toggle{background-image:none}.grey-cascade.btn.disabled,.grey-cascade.btn.disabled.active,.grey-cascade.btn.disabled:active,.grey-cascade.btn.disabled:focus,.grey-cascade.btn.disabled:hover,.grey-cascade.btn[disabled],.grey-cascade.btn[disabled].active,.grey-cascade.btn[disabled]:active,.grey-cascade.btn[disabled]:focus,.grey-cascade.btn[disabled]:hover,fieldset[disabled] .grey-cascade.btn,fieldset[disabled] .grey-cascade.btn.active,fieldset[disabled] .grey-cascade.btn:active,fieldset[disabled] .grey-cascade.btn:focus,fieldset[disabled] .grey-cascade.btn:hover{background-color:#95A5A6}.grey-cascade.btn .badge{color:#95A5A6;background-color:#FFF}.portlet.box.grey-cascade>.portlet-title,.portlet.grey-cascade,.portlet>.portlet-body.grey-cascade{background-color:#95A5A6}.btn.grey-cascade-stripe{border-left:3px solid #95A5A6}.portlet.solid.grey-cascade>.portlet-body,.portlet.solid.grey-cascade>.portlet-title{border:0;color:#FFF}.portlet.solid.grey-cascade>.portlet-title>.caption>i{color:#FFF}.portlet.solid.grey-cascade>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-cascade>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-cascade{border:1px solid #b1bdbd;border-top:0}.portlet.box.grey-cascade>.portlet-title>.caption,.portlet.box.grey-cascade>.portlet-title>.caption>i{color:#FFF}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #d2d9d9;color:#e0e5e5}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default>i{color:#e8ecec}.portlet.box.grey-cascade>.portlet-title>.actions .btn-default.active,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:active,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-cascade>.portlet-title>.actions .btn-default:hover{border:1px solid #eef0f0;color:#fcfcfc}.dashboard-stat.grey-cascade{background-color:#95A5A6}.dashboard-stat.grey-cascade.dashboard-stat-light:hover{background-color:#8a9c9d}.dashboard-stat.grey-cascade .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-cascade .details .number{color:#FFF}.dashboard-stat.grey-cascade .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-cascade .more{color:#FFF;background-color:#8a9c9d}.bg-grey-cascade{border-color:#95A5A6!important;background-image:none!important;background-color:#95A5A6!important;color:#FFF!important}.font-grey-cascade{color:#95A5A6!important}.progress-bar.grey-cascade{background:#95A5A6!important;color:#FFF!important}.grey-silver.btn{color:#FAFCFB;background-color:#BFBFBF;border-color:""}.grey-silver.btn.active,.grey-silver.btn:active,.grey-silver.btn:focus,.grey-silver.btn:hover,.open .grey-silver.btn.dropdown-toggle{color:#FAFCFB;background-color:#adadad}.grey-silver.btn.active,.grey-silver.btn:active{background-image:none;background-color:#a0a0a0}.grey-silver.btn.active:hover,.grey-silver.btn:active:hover{background-color:#a6a6a6}.open .grey-silver.btn.dropdown-toggle{background-image:none}.grey-silver.btn.disabled,.grey-silver.btn.disabled.active,.grey-silver.btn.disabled:active,.grey-silver.btn.disabled:focus,.grey-silver.btn.disabled:hover,.grey-silver.btn[disabled],.grey-silver.btn[disabled].active,.grey-silver.btn[disabled]:active,.grey-silver.btn[disabled]:focus,.grey-silver.btn[disabled]:hover,fieldset[disabled] .grey-silver.btn,fieldset[disabled] .grey-silver.btn.active,fieldset[disabled] .grey-silver.btn:active,fieldset[disabled] .grey-silver.btn:focus,fieldset[disabled] .grey-silver.btn:hover{background-color:#BFBFBF}.grey-silver.btn .badge{color:#BFBFBF;background-color:#FAFCFB}.portlet.box.grey-silver>.portlet-title,.portlet.grey-silver,.portlet>.portlet-body.grey-silver{background-color:#BFBFBF}.btn.grey-silver-stripe{border-left:3px solid #BFBFBF}.portlet.solid.grey-silver>.portlet-body,.portlet.solid.grey-silver>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-silver>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-silver>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-silver>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-silver{border:1px solid #d9d9d9;border-top:0}.portlet.box.grey-silver>.portlet-title>.caption,.portlet.box.grey-silver>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-silver>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f7f7f7;color:#fff}.portlet.box.grey-silver>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-silver>.portlet-title>.actions .btn-default.active,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:active,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-silver>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-silver{background-color:#BFBFBF}.dashboard-stat.grey-silver.dashboard-stat-light:hover{background-color:#b5b5b5}.dashboard-stat.grey-silver .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-silver .details .number{color:#FAFCFB}.dashboard-stat.grey-silver .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-silver .more{color:#FAFCFB;background-color:#b5b5b5}.bg-grey-silver{border-color:#BFBFBF!important;background-image:none!important;background-color:#BFBFBF!important;color:#FAFCFB!important}.font-grey-silver{color:#BFBFBF!important}.progress-bar.grey-silver{background:#BFBFBF!important;color:#FAFCFB!important}.grey-salsa.btn{color:#FAFCFB;background-color:#ACB5C3;border-color:""}.grey-salsa.btn.active,.grey-salsa.btn:active,.grey-salsa.btn:focus,.grey-salsa.btn:hover,.open .grey-salsa.btn.dropdown-toggle{color:#FAFCFB;background-color:#97a3b4}.grey-salsa.btn.active,.grey-salsa.btn:active{background-image:none;background-color:#8895a9}.grey-salsa.btn.active:hover,.grey-salsa.btn:active:hover{background-color:#8e9bae}.open .grey-salsa.btn.dropdown-toggle{background-image:none}.grey-salsa.btn.disabled,.grey-salsa.btn.disabled.active,.grey-salsa.btn.disabled:active,.grey-salsa.btn.disabled:focus,.grey-salsa.btn.disabled:hover,.grey-salsa.btn[disabled],.grey-salsa.btn[disabled].active,.grey-salsa.btn[disabled]:active,.grey-salsa.btn[disabled]:focus,.grey-salsa.btn[disabled]:hover,fieldset[disabled] .grey-salsa.btn,fieldset[disabled] .grey-salsa.btn.active,fieldset[disabled] .grey-salsa.btn:active,fieldset[disabled] .grey-salsa.btn:focus,fieldset[disabled] .grey-salsa.btn:hover{background-color:#ACB5C3}.grey-salsa.btn .badge{color:#ACB5C3;background-color:#FAFCFB}.portlet.box.grey-salsa>.portlet-title,.portlet.grey-salsa,.portlet>.portlet-body.grey-salsa{background-color:#ACB5C3}.btn.grey-salsa-stripe{border-left:3px solid #ACB5C3}.portlet.solid.grey-salsa>.portlet-body,.portlet.solid.grey-salsa>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-salsa>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-salsa>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-salsa>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-salsa{border:1px solid #cacfd8;border-top:0}.portlet.box.grey-salsa>.portlet-title>.caption,.portlet.box.grey-salsa>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #edeff2;color:#fcfcfd}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-salsa>.portlet-title>.actions .btn-default.active,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:active,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-salsa>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-salsa{background-color:#ACB5C3}.dashboard-stat.grey-salsa.dashboard-stat-light:hover{background-color:#a0aaba}.dashboard-stat.grey-salsa .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-salsa .details .number{color:#FAFCFB}.dashboard-stat.grey-salsa .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-salsa .more{color:#FAFCFB;background-color:#a0aaba}.bg-grey-salsa{border-color:#ACB5C3!important;background-image:none!important;background-color:#ACB5C3!important;color:#FAFCFB!important}.font-grey-salsa{color:#ACB5C3!important}.progress-bar.grey-salsa{background:#ACB5C3!important;color:#FAFCFB!important}.grey-salt.btn{color:#FAFCFB;background-color:#bfcad1;border-color:""}.grey-salt.btn.active,.grey-salt.btn:active,.grey-salt.btn:focus,.grey-salt.btn:hover,.open .grey-salt.btn.dropdown-toggle{color:#FAFCFB;background-color:#aab9c2}.grey-salt.btn.active,.grey-salt.btn:active{background-image:none;background-color:#9badb7}.grey-salt.btn.active:hover,.grey-salt.btn:active:hover{background-color:#a1b1bc}.open .grey-salt.btn.dropdown-toggle{background-image:none}.grey-salt.btn.disabled,.grey-salt.btn.disabled.active,.grey-salt.btn.disabled:active,.grey-salt.btn.disabled:focus,.grey-salt.btn.disabled:hover,.grey-salt.btn[disabled],.grey-salt.btn[disabled].active,.grey-salt.btn[disabled]:active,.grey-salt.btn[disabled]:focus,.grey-salt.btn[disabled]:hover,fieldset[disabled] .grey-salt.btn,fieldset[disabled] .grey-salt.btn.active,fieldset[disabled] .grey-salt.btn:active,fieldset[disabled] .grey-salt.btn:focus,fieldset[disabled] .grey-salt.btn:hover{background-color:#bfcad1}.grey-salt.btn .badge{color:#bfcad1;background-color:#FAFCFB}.portlet.box.grey-salt>.portlet-title,.portlet.grey-salt,.portlet>.portlet-body.grey-salt{background-color:#bfcad1}.btn.grey-salt-stripe{border-left:3px solid #bfcad1}.portlet.solid.grey-salt>.portlet-body,.portlet.solid.grey-salt>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-salt>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-salt>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-salt>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-salt{border:1px solid #dde3e6;border-top:0}.portlet.box.grey-salt>.portlet-title>.caption,.portlet.box.grey-salt>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-salt>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fff;color:#fff}.portlet.box.grey-salt>.portlet-title>.actions .btn-default>i{color:#fff}.portlet.box.grey-salt>.portlet-title>.actions .btn-default.active,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:active,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-salt>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.grey-salt{background-color:#bfcad1}.dashboard-stat.grey-salt.dashboard-stat-light:hover{background-color:#b3c0c8}.dashboard-stat.grey-salt .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-salt .details .number{color:#FAFCFB}.dashboard-stat.grey-salt .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-salt .more{color:#FAFCFB;background-color:#b3c0c8}.bg-grey-salt{border-color:#bfcad1!important;background-image:none!important;background-color:#bfcad1!important;color:#FAFCFB!important}.font-grey-salt{color:#bfcad1!important}.progress-bar.grey-salt{background:#bfcad1!important;color:#FAFCFB!important}.grey-mint.btn{color:#FAFCFB;background-color:#9eacb4;border-color:""}.grey-mint.btn.active,.grey-mint.btn:active,.grey-mint.btn:focus,.grey-mint.btn:hover,.open .grey-mint.btn.dropdown-toggle{color:#FAFCFB;background-color:#8a9ba4}.grey-mint.btn.active,.grey-mint.btn:active{background-image:none;background-color:#7b8e99}.grey-mint.btn.active:hover,.grey-mint.btn:active:hover{background-color:#81939e}.open .grey-mint.btn.dropdown-toggle{background-image:none}.grey-mint.btn.disabled,.grey-mint.btn.disabled.active,.grey-mint.btn.disabled:active,.grey-mint.btn.disabled:focus,.grey-mint.btn.disabled:hover,.grey-mint.btn[disabled],.grey-mint.btn[disabled].active,.grey-mint.btn[disabled]:active,.grey-mint.btn[disabled]:focus,.grey-mint.btn[disabled]:hover,fieldset[disabled] .grey-mint.btn,fieldset[disabled] .grey-mint.btn.active,fieldset[disabled] .grey-mint.btn:active,fieldset[disabled] .grey-mint.btn:focus,fieldset[disabled] .grey-mint.btn:hover{background-color:#9eacb4}.grey-mint.btn .badge{color:#9eacb4;background-color:#FAFCFB}.portlet.box.grey-mint>.portlet-title,.portlet.grey-mint,.portlet>.portlet-body.grey-mint{background-color:#9eacb4}.btn.grey-mint-stripe{border-left:3px solid #9eacb4}.portlet.solid.grey-mint>.portlet-body,.portlet.solid.grey-mint>.portlet-title{border:0;color:#FAFCFB}.portlet.solid.grey-mint>.portlet-title>.caption>i{color:#FAFCFB}.portlet.solid.grey-mint>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.grey-mint>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.grey-mint{border:1px solid #bbc5ca;border-top:0}.portlet.box.grey-mint>.portlet-title>.caption,.portlet.box.grey-mint>.portlet-title>.caption>i{color:#FAFCFB}.portlet.box.grey-mint>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #dde2e5;color:#eceef0}.portlet.box.grey-mint>.portlet-title>.actions .btn-default>i{color:#f4f6f7}.portlet.box.grey-mint>.portlet-title>.actions .btn-default.active,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:active,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:focus,.portlet.box.grey-mint>.portlet-title>.actions .btn-default:hover{border:1px solid #fafbfb;color:#fff}.dashboard-stat.grey-mint{background-color:#9eacb4}.dashboard-stat.grey-mint.dashboard-stat-light:hover{background-color:#92a2ab}.dashboard-stat.grey-mint .visual>i{color:#FAFCFB;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.grey-mint .details .number{color:#FAFCFB}.dashboard-stat.grey-mint .details .desc{color:#FAFCFB;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.grey-mint .more{color:#FAFCFB;background-color:#92a2ab}.bg-grey-mint{border-color:#9eacb4!important;background-image:none!important;background-color:#9eacb4!important;color:#FAFCFB!important}.font-grey-mint{color:#9eacb4!important}.progress-bar.grey-mint{background:#9eacb4!important;color:#FAFCFB!important}.red.btn{color:#FFF;background-color:#d84a38;border-color:""}.open .red.btn.dropdown-toggle,.red.btn.active,.red.btn:active,.red.btn:focus,.red.btn:hover{color:#FFF;background-color:#c63927}.red.btn.active,.red.btn:active{background-image:none;background-color:#b03223}.red.btn.active:hover,.red.btn:active:hover{background-color:#b93524}.open .red.btn.dropdown-toggle{background-image:none}.red.btn.disabled,.red.btn.disabled.active,.red.btn.disabled:active,.red.btn.disabled:focus,.red.btn.disabled:hover,.red.btn[disabled],.red.btn[disabled].active,.red.btn[disabled]:active,.red.btn[disabled]:focus,.red.btn[disabled]:hover,fieldset[disabled] .red.btn,fieldset[disabled] .red.btn.active,fieldset[disabled] .red.btn:active,fieldset[disabled] .red.btn:focus,fieldset[disabled] .red.btn:hover{background-color:#d84a38}.red.btn .badge{color:#d84a38;background-color:#FFF}.portlet.box.red>.portlet-title,.portlet.red,.portlet>.portlet-body.red{background-color:#d84a38}.btn.red-stripe{border-left:3px solid #d84a38}.portlet.solid.red>.portlet-body,.portlet.solid.red>.portlet-title{border:0;color:#FFF}.portlet.solid.red>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red{border:1px solid #e07163;border-top:0}.portlet.box.red>.portlet-title>.caption,.portlet.box.red>.portlet-title>.caption>i{color:#FFF}.portlet.box.red>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ea9f96;color:#efb3ab}.portlet.box.red>.portlet-title>.actions .btn-default>i{color:#f1beb8}.portlet.box.red>.portlet-title>.actions .btn-default.active,.portlet.box.red>.portlet-title>.actions .btn-default:active,.portlet.box.red>.portlet-title>.actions .btn-default:focus,.portlet.box.red>.portlet-title>.actions .btn-default:hover{border:1px solid #f3c6c0;color:#f7dad6}.dashboard-stat.red{background-color:#d84a38}.dashboard-stat.red.dashboard-stat-light:hover{background-color:#d23c29}.dashboard-stat.red .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red .details .number{color:#FFF}.dashboard-stat.red .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red .more{color:#FFF;background-color:#d23c29}.bg-red{border-color:#d84a38!important;background-image:none!important;background-color:#d84a38!important;color:#FFF!important}.font-red{color:#d84a38!important}.progress-bar.red{background:#d84a38!important;color:#FFF!important}.red-pink.btn{color:#FFF;background-color:#E08283;border-color:""}.open .red-pink.btn.dropdown-toggle,.red-pink.btn.active,.red-pink.btn:active,.red-pink.btn:focus,.red-pink.btn:hover{color:#FFF;background-color:#d96567}.red-pink.btn.active,.red-pink.btn:active{background-image:none;background-color:#d45152}.red-pink.btn.active:hover,.red-pink.btn:active:hover{background-color:#d6595a}.open .red-pink.btn.dropdown-toggle{background-image:none}.red-pink.btn.disabled,.red-pink.btn.disabled.active,.red-pink.btn.disabled:active,.red-pink.btn.disabled:focus,.red-pink.btn.disabled:hover,.red-pink.btn[disabled],.red-pink.btn[disabled].active,.red-pink.btn[disabled]:active,.red-pink.btn[disabled]:focus,.red-pink.btn[disabled]:hover,fieldset[disabled] .red-pink.btn,fieldset[disabled] .red-pink.btn.active,fieldset[disabled] .red-pink.btn:active,fieldset[disabled] .red-pink.btn:focus,fieldset[disabled] .red-pink.btn:hover{background-color:#E08283}.red-pink.btn .badge{color:#E08283;background-color:#FFF}.portlet.box.red-pink>.portlet-title,.portlet.red-pink,.portlet>.portlet-body.red-pink{background-color:#E08283}.btn.red-pink-stripe{border-left:3px solid #E08283}.portlet.solid.red-pink>.portlet-body,.portlet.solid.red-pink>.portlet-title{border:0;color:#FFF}.portlet.solid.red-pink>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-pink>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-pink>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-pink{border:1px solid #eaabac;border-top:0}.portlet.box.red-pink>.portlet-title>.caption,.portlet.box.red-pink>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-pink>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f6dcdc;color:#fbf0f0}.portlet.box.red-pink>.portlet-title>.actions .btn-default>i{color:#fefdfd}.portlet.box.red-pink>.portlet-title>.actions .btn-default.active,.portlet.box.red-pink>.portlet-title>.actions .btn-default:active,.portlet.box.red-pink>.portlet-title>.actions .btn-default:focus,.portlet.box.red-pink>.portlet-title>.actions .btn-default:hover{border:1px solid #fff;color:#fff}.dashboard-stat.red-pink{background-color:#E08283}.dashboard-stat.red-pink.dashboard-stat-light:hover{background-color:#dc7273}.dashboard-stat.red-pink .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-pink .details .number{color:#FFF}.dashboard-stat.red-pink .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-pink .more{color:#FFF;background-color:#dc7273}.bg-red-pink{border-color:#E08283!important;background-image:none!important;background-color:#E08283!important;color:#FFF!important}.font-red-pink{color:#E08283!important}.progress-bar.red-pink{background:#E08283!important;color:#FFF!important}.red-sunglo.btn{color:#FFF;background-color:#E26A6A;border-color:""}.open .red-sunglo.btn.dropdown-toggle,.red-sunglo.btn.active,.red-sunglo.btn:active,.red-sunglo.btn:focus,.red-sunglo.btn:hover{color:#FFF;background-color:#dc4c4c}.red-sunglo.btn.active,.red-sunglo.btn:active{background-image:none;background-color:#d83737}.red-sunglo.btn.active:hover,.red-sunglo.btn:active:hover{background-color:#da3f3f}.open .red-sunglo.btn.dropdown-toggle{background-image:none}.red-sunglo.btn.disabled,.red-sunglo.btn.disabled.active,.red-sunglo.btn.disabled:active,.red-sunglo.btn.disabled:focus,.red-sunglo.btn.disabled:hover,.red-sunglo.btn[disabled],.red-sunglo.btn[disabled].active,.red-sunglo.btn[disabled]:active,.red-sunglo.btn[disabled]:focus,.red-sunglo.btn[disabled]:hover,fieldset[disabled] .red-sunglo.btn,fieldset[disabled] .red-sunglo.btn.active,fieldset[disabled] .red-sunglo.btn:active,fieldset[disabled] .red-sunglo.btn:focus,fieldset[disabled] .red-sunglo.btn:hover{background-color:#E26A6A}.red-sunglo.btn .badge{color:#E26A6A;background-color:#FFF}.portlet.box.red-sunglo>.portlet-title,.portlet.red-sunglo,.portlet>.portlet-body.red-sunglo{background-color:#E26A6A}.btn.red-sunglo-stripe{border-left:3px solid #E26A6A}.portlet.solid.red-sunglo>.portlet-body,.portlet.solid.red-sunglo>.portlet-title{border:0;color:#FFF}.portlet.solid.red-sunglo>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-sunglo>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-sunglo>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-sunglo{border:1px solid #ea9595;border-top:0}.portlet.box.red-sunglo>.portlet-title>.caption,.portlet.box.red-sunglo>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f4c8c8;color:#f8dddd}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default>i{color:#fbeaea}.portlet.box.red-sunglo>.portlet-title>.actions .btn-default.active,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:active,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:focus,.portlet.box.red-sunglo>.portlet-title>.actions .btn-default:hover{border:1px solid #fdf3f3;color:#fff}.dashboard-stat.red-sunglo{background-color:#E26A6A}.dashboard-stat.red-sunglo.dashboard-stat-light:hover{background-color:#df5959}.dashboard-stat.red-sunglo .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-sunglo .details .number{color:#FFF}.dashboard-stat.red-sunglo .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-sunglo .more{color:#FFF;background-color:#df5959}.bg-red-sunglo{border-color:#E26A6A!important;background-image:none!important;background-color:#E26A6A!important;color:#FFF!important}.font-red-sunglo{color:#E26A6A!important}.progress-bar.red-sunglo{background:#E26A6A!important;color:#FFF!important}.red-intense.btn{color:#FFF;background-color:#e35b5a;border-color:""}.open .red-intense.btn.dropdown-toggle,.red-intense.btn.active,.red-intense.btn:active,.red-intense.btn:focus,.red-intense.btn:hover{color:#FFF;background-color:#de3d3b}.red-intense.btn.active,.red-intense.btn:active{background-image:none;background-color:#da2726}.red-intense.btn.active:hover,.red-intense.btn:active:hover{background-color:#dc302e}.open .red-intense.btn.dropdown-toggle{background-image:none}.red-intense.btn.disabled,.red-intense.btn.disabled.active,.red-intense.btn.disabled:active,.red-intense.btn.disabled:focus,.red-intense.btn.disabled:hover,.red-intense.btn[disabled],.red-intense.btn[disabled].active,.red-intense.btn[disabled]:active,.red-intense.btn[disabled]:focus,.red-intense.btn[disabled]:hover,fieldset[disabled] .red-intense.btn,fieldset[disabled] .red-intense.btn.active,fieldset[disabled] .red-intense.btn:active,fieldset[disabled] .red-intense.btn:focus,fieldset[disabled] .red-intense.btn:hover{background-color:#e35b5a}.red-intense.btn .badge{color:#e35b5a;background-color:#FFF}.portlet.box.red-intense>.portlet-title,.portlet.red-intense,.portlet>.portlet-body.red-intense{background-color:#e35b5a}.btn.red-intense-stripe{border-left:3px solid #e35b5a}.portlet.solid.red-intense>.portlet-body,.portlet.solid.red-intense>.portlet-title{border:0;color:#FFF}.portlet.solid.red-intense>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-intense>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-intense>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-intense{border:1px solid #ea8686;border-top:0}.portlet.box.red-intense>.portlet-title>.caption,.portlet.box.red-intense>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-intense>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f3baba;color:#f7d0d0}.portlet.box.red-intense>.portlet-title>.actions .btn-default>i{color:#f9dddd}.portlet.box.red-intense>.portlet-title>.actions .btn-default.active,.portlet.box.red-intense>.portlet-title>.actions .btn-default:active,.portlet.box.red-intense>.portlet-title>.actions .btn-default:focus,.portlet.box.red-intense>.portlet-title>.actions .btn-default:hover{border:1px solid #fbe6e6;color:#fefbfb}.dashboard-stat.red-intense{background-color:#e35b5a}.dashboard-stat.red-intense.dashboard-stat-light:hover{background-color:#e04a49}.dashboard-stat.red-intense .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-intense .details .number{color:#FFF}.dashboard-stat.red-intense .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-intense .more{color:#FFF;background-color:#e04a49}.bg-red-intense{border-color:#e35b5a!important;background-image:none!important;background-color:#e35b5a!important;color:#FFF!important}.font-red-intense{color:#e35b5a!important}.progress-bar.red-intense{background:#e35b5a!important;color:#FFF!important}.red-thunderbird.btn{color:#FFF;background-color:#D91E18;border-color:""}.open .red-thunderbird.btn.dropdown-toggle,.red-thunderbird.btn.active,.red-thunderbird.btn:active,.red-thunderbird.btn:focus,.red-thunderbird.btn:hover{color:#FFF;background-color:#b91a14}.red-thunderbird.btn.active,.red-thunderbird.btn:active{background-image:none;background-color:#a21612}.red-thunderbird.btn.active:hover,.red-thunderbird.btn:active:hover{background-color:#ab1813}.open .red-thunderbird.btn.dropdown-toggle{background-image:none}.red-thunderbird.btn.disabled,.red-thunderbird.btn.disabled.active,.red-thunderbird.btn.disabled:active,.red-thunderbird.btn.disabled:focus,.red-thunderbird.btn.disabled:hover,.red-thunderbird.btn[disabled],.red-thunderbird.btn[disabled].active,.red-thunderbird.btn[disabled]:active,.red-thunderbird.btn[disabled]:focus,.red-thunderbird.btn[disabled]:hover,fieldset[disabled] .red-thunderbird.btn,fieldset[disabled] .red-thunderbird.btn.active,fieldset[disabled] .red-thunderbird.btn:active,fieldset[disabled] .red-thunderbird.btn:focus,fieldset[disabled] .red-thunderbird.btn:hover{background-color:#D91E18}.red-thunderbird.btn .badge{color:#D91E18;background-color:#FFF}.portlet.box.red-thunderbird>.portlet-title,.portlet.red-thunderbird,.portlet>.portlet-body.red-thunderbird{background-color:#D91E18}.btn.red-thunderbird-stripe{border-left:3px solid #D91E18}.portlet.solid.red-thunderbird>.portlet-body,.portlet.solid.red-thunderbird>.portlet-title{border:0;color:#FFF}.portlet.solid.red-thunderbird>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-thunderbird>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-thunderbird{border:1px solid #e9403b;border-top:0}.portlet.box.red-thunderbird>.portlet-title>.caption,.portlet.box.red-thunderbird>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ef7672;color:#f28c89}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default>i{color:#f39997}.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default.active,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:active,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:focus,.portlet.box.red-thunderbird>.portlet-title>.actions .btn-default:hover{border:1px solid #f4a2a0;color:#f7b9b7}.dashboard-stat.red-thunderbird{background-color:#D91E18}.dashboard-stat.red-thunderbird.dashboard-stat-light:hover{background-color:#c71b16}.dashboard-stat.red-thunderbird .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-thunderbird .details .number{color:#FFF}.dashboard-stat.red-thunderbird .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-thunderbird .more{color:#FFF;background-color:#c71b16}.bg-red-thunderbird{border-color:#D91E18!important;background-image:none!important;background-color:#D91E18!important;color:#FFF!important}.font-red-thunderbird{color:#D91E18!important}.progress-bar.red-thunderbird{background:#D91E18!important;color:#FFF!important}.red-flamingo.btn{color:#FFF;background-color:#EF4836;border-color:""}.open .red-flamingo.btn.dropdown-toggle,.red-flamingo.btn.active,.red-flamingo.btn:active,.red-flamingo.btn:focus,.red-flamingo.btn:hover{color:#FFF;background-color:#ec2a15}.red-flamingo.btn.active,.red-flamingo.btn:active{background-image:none;background-color:#d72411}.red-flamingo.btn.active:hover,.red-flamingo.btn:active:hover{background-color:#e02612}.open .red-flamingo.btn.dropdown-toggle{background-image:none}.red-flamingo.btn.disabled,.red-flamingo.btn.disabled.active,.red-flamingo.btn.disabled:active,.red-flamingo.btn.disabled:focus,.red-flamingo.btn.disabled:hover,.red-flamingo.btn[disabled],.red-flamingo.btn[disabled].active,.red-flamingo.btn[disabled]:active,.red-flamingo.btn[disabled]:focus,.red-flamingo.btn[disabled]:hover,fieldset[disabled] .red-flamingo.btn,fieldset[disabled] .red-flamingo.btn.active,fieldset[disabled] .red-flamingo.btn:active,fieldset[disabled] .red-flamingo.btn:focus,fieldset[disabled] .red-flamingo.btn:hover{background-color:#EF4836}.red-flamingo.btn .badge{color:#EF4836;background-color:#FFF}.portlet.box.red-flamingo>.portlet-title,.portlet.red-flamingo,.portlet>.portlet-body.red-flamingo{background-color:#EF4836}.btn.red-flamingo-stripe{border-left:3px solid #EF4836}.portlet.solid.red-flamingo>.portlet-body,.portlet.solid.red-flamingo>.portlet-title{border:0;color:#FFF}.portlet.solid.red-flamingo>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-flamingo>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-flamingo>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-flamingo{border:1px solid #f37365;border-top:0}.portlet.box.red-flamingo>.portlet-title>.caption,.portlet.box.red-flamingo>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #f7a79e;color:#f9bcb6}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default>i{color:#fac9c4}.portlet.box.red-flamingo>.portlet-title>.actions .btn-default.active,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:active,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:focus,.portlet.box.red-flamingo>.portlet-title>.actions .btn-default:hover{border:1px solid #fbd2cd;color:#fde7e5}.dashboard-stat.red-flamingo{background-color:#EF4836}.dashboard-stat.red-flamingo.dashboard-stat-light:hover{background-color:#ed3723}.dashboard-stat.red-flamingo .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-flamingo .details .number{color:#FFF}.dashboard-stat.red-flamingo .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-flamingo .more{color:#FFF;background-color:#ed3723}.bg-red-flamingo{border-color:#EF4836!important;background-image:none!important;background-color:#EF4836!important;color:#FFF!important}.font-red-flamingo{color:#EF4836!important}.progress-bar.red-flamingo{background:#EF4836!important;color:#FFF!important}.red-soft.btn{color:#FFF;background-color:#d05454;border-color:""}.open .red-soft.btn.dropdown-toggle,.red-soft.btn.active,.red-soft.btn:active,.red-soft.btn:focus,.red-soft.btn:hover{color:#FFF;background-color:#c83838}.red-soft.btn.active,.red-soft.btn:active{background-image:none;background-color:#b53232}.red-soft.btn.active:hover,.red-soft.btn:active:hover{background-color:#bd3434}.open .red-soft.btn.dropdown-toggle{background-image:none}.red-soft.btn.disabled,.red-soft.btn.disabled.active,.red-soft.btn.disabled:active,.red-soft.btn.disabled:focus,.red-soft.btn.disabled:hover,.red-soft.btn[disabled],.red-soft.btn[disabled].active,.red-soft.btn[disabled]:active,.red-soft.btn[disabled]:focus,.red-soft.btn[disabled]:hover,fieldset[disabled] .red-soft.btn,fieldset[disabled] .red-soft.btn.active,fieldset[disabled] .red-soft.btn:active,fieldset[disabled] .red-soft.btn:focus,fieldset[disabled] .red-soft.btn:hover{background-color:#d05454}.red-soft.btn .badge{color:#d05454;background-color:#FFF}.portlet.box.red-soft>.portlet-title,.portlet.red-soft,.portlet>.portlet-body.red-soft{background-color:#d05454}.btn.red-soft-stripe{border-left:3px solid #d05454}.portlet.solid.red-soft>.portlet-body,.portlet.solid.red-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.red-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-soft{border:1px solid #db7c7c;border-top:0}.portlet.box.red-soft>.portlet-title>.caption,.portlet.box.red-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #e8acac;color:#eec0c0}.portlet.box.red-soft>.portlet-title>.actions .btn-default>i{color:#f1cccc}.portlet.box.red-soft>.portlet-title>.actions .btn-default.active,.portlet.box.red-soft>.portlet-title>.actions .btn-default:active,.portlet.box.red-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.red-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #f3d4d4;color:#f9e8e8}.dashboard-stat.red-soft{background-color:#d05454}.dashboard-stat.red-soft.dashboard-stat-light:hover{background-color:#c44}.dashboard-stat.red-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-soft .details .number{color:#FFF}.dashboard-stat.red-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-soft .more{color:#FFF;background-color:#c44}.bg-red-soft{border-color:#d05454!important;background-image:none!important;background-color:#d05454!important;color:#FFF!important}.font-red-soft{color:#d05454!important}.progress-bar.red-soft{background:#d05454!important;color:#FFF!important}.red-haze.btn{color:#FFF;background-color:#f36a5a;border-color:""}.open .red-haze.btn.dropdown-toggle,.red-haze.btn.active,.red-haze.btn:active,.red-haze.btn:focus,.red-haze.btn:hover{color:#FFF;background-color:#f14c39}.red-haze.btn.active,.red-haze.btn:active{background-image:none;background-color:#ef3621}.red-haze.btn.active:hover,.red-haze.btn:active:hover{background-color:#f03f2a}.open .red-haze.btn.dropdown-toggle{background-image:none}.red-haze.btn.disabled,.red-haze.btn.disabled.active,.red-haze.btn.disabled:active,.red-haze.btn.disabled:focus,.red-haze.btn.disabled:hover,.red-haze.btn[disabled],.red-haze.btn[disabled].active,.red-haze.btn[disabled]:active,.red-haze.btn[disabled]:focus,.red-haze.btn[disabled]:hover,fieldset[disabled] .red-haze.btn,fieldset[disabled] .red-haze.btn.active,fieldset[disabled] .red-haze.btn:active,fieldset[disabled] .red-haze.btn:focus,fieldset[disabled] .red-haze.btn:hover{background-color:#f36a5a}.red-haze.btn .badge{color:#f36a5a;background-color:#FFF}.portlet.box.red-haze>.portlet-title,.portlet.red-haze,.portlet>.portlet-body.red-haze{background-color:#f36a5a}.btn.red-haze-stripe{border-left:3px solid #f36a5a}.portlet.solid.red-haze>.portlet-body,.portlet.solid.red-haze>.portlet-title{border:0;color:#FFF}.portlet.solid.red-haze>.portlet-title>.caption>i{color:#FFF}.portlet.solid.red-haze>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.red-haze>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.red-haze{border:1px solid #f6958a;border-top:0}.portlet.box.red-haze>.portlet-title>.caption,.portlet.box.red-haze>.portlet-title>.caption>i{color:#FFF}.portlet.box.red-haze>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fbc8c3;color:#fcdeda}.portlet.box.red-haze>.portlet-title>.actions .btn-default>i{color:#fdebe9}.portlet.box.red-haze>.portlet-title>.actions .btn-default.active,.portlet.box.red-haze>.portlet-title>.actions .btn-default:active,.portlet.box.red-haze>.portlet-title>.actions .btn-default:focus,.portlet.box.red-haze>.portlet-title>.actions .btn-default:hover{border:1px solid #fef3f2;color:#fff}.dashboard-stat.red-haze{background-color:#f36a5a}.dashboard-stat.red-haze.dashboard-stat-light:hover{background-color:#f25947}.dashboard-stat.red-haze .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.red-haze .details .number{color:#FFF}.dashboard-stat.red-haze .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.red-haze .more{color:#FFF;background-color:#f25947}.bg-red-haze{border-color:#f36a5a!important;background-image:none!important;background-color:#f36a5a!important;color:#FFF!important}.font-red-haze{color:#f36a5a!important}.progress-bar.red-haze{background:#f36a5a!important;color:#FFF!important}.yellow.btn{color:#FFF;background-color:#FFB848;border-color:""}.open .yellow.btn.dropdown-toggle,.yellow.btn.active,.yellow.btn:active,.yellow.btn:focus,.yellow.btn:hover{color:#FFF;background-color:#ffaa24}.yellow.btn.active,.yellow.btn:active{background-image:none;background-color:#ffa00b}.yellow.btn.active:hover,.yellow.btn:active:hover{background-color:#ffa415}.open .yellow.btn.dropdown-toggle{background-image:none}.yellow.btn.disabled,.yellow.btn.disabled.active,.yellow.btn.disabled:active,.yellow.btn.disabled:focus,.yellow.btn.disabled:hover,.yellow.btn[disabled],.yellow.btn[disabled].active,.yellow.btn[disabled]:active,.yellow.btn[disabled]:focus,.yellow.btn[disabled]:hover,fieldset[disabled] .yellow.btn,fieldset[disabled] .yellow.btn.active,fieldset[disabled] .yellow.btn:active,fieldset[disabled] .yellow.btn:focus,fieldset[disabled] .yellow.btn:hover{background-color:#FFB848}.yellow.btn .badge{color:#FFB848;background-color:#FFF}.portlet.box.yellow>.portlet-title,.portlet.yellow,.portlet>.portlet-body.yellow{background-color:#FFB848}.btn.yellow-stripe{border-left:3px solid #FFB848}.portlet.solid.yellow>.portlet-body,.portlet.solid.yellow>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow{border:1px solid #ffcc7b;border-top:0}.portlet.box.yellow>.portlet-title>.caption,.portlet.box.yellow>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ffe4b8;color:#ffedd2}.portlet.box.yellow>.portlet-title>.actions .btn-default>i{color:#fff3e1}.portlet.box.yellow>.portlet-title>.actions .btn-default.active,.portlet.box.yellow>.portlet-title>.actions .btn-default:active,.portlet.box.yellow>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow>.portlet-title>.actions .btn-default:hover{border:1px solid #fff7eb;color:#fff}.dashboard-stat.yellow{background-color:#FFB848}.dashboard-stat.yellow.dashboard-stat-light:hover{background-color:#ffb034}.dashboard-stat.yellow .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow .details .number{color:#FFF}.dashboard-stat.yellow .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow .more{color:#FFF;background-color:#ffb034}.bg-yellow{border-color:#FFB848!important;background-image:none!important;background-color:#FFB848!important;color:#FFF!important}.font-yellow{color:#FFB848!important}.progress-bar.yellow{background:#FFB848!important;color:#FFF!important}.yellow-gold.btn{color:#FFF;background-color:#E87E04;border-color:""}.open .yellow-gold.btn.dropdown-toggle,.yellow-gold.btn.active,.yellow-gold.btn:active,.yellow-gold.btn:focus,.yellow-gold.btn:hover{color:#FFF;background-color:#c56b03}.yellow-gold.btn.active,.yellow-gold.btn:active{background-image:none;background-color:#ac5d03}.yellow-gold.btn.active:hover,.yellow-gold.btn:active:hover{background-color:#b66303}.open .yellow-gold.btn.dropdown-toggle{background-image:none}.yellow-gold.btn.disabled,.yellow-gold.btn.disabled.active,.yellow-gold.btn.disabled:active,.yellow-gold.btn.disabled:focus,.yellow-gold.btn.disabled:hover,.yellow-gold.btn[disabled],.yellow-gold.btn[disabled].active,.yellow-gold.btn[disabled]:active,.yellow-gold.btn[disabled]:focus,.yellow-gold.btn[disabled]:hover,fieldset[disabled] .yellow-gold.btn,fieldset[disabled] .yellow-gold.btn.active,fieldset[disabled] .yellow-gold.btn:active,fieldset[disabled] .yellow-gold.btn:focus,fieldset[disabled] .yellow-gold.btn:hover{background-color:#E87E04}.yellow-gold.btn .badge{color:#E87E04;background-color:#FFF}.portlet.box.yellow-gold>.portlet-title,.portlet.yellow-gold,.portlet>.portlet-body.yellow-gold{background-color:#E87E04}.btn.yellow-gold-stripe{border-left:3px solid #E87E04}.portlet.solid.yellow-gold>.portlet-body,.portlet.solid.yellow-gold>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-gold>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-gold>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-gold>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-gold{border:1px solid #fb9724;border-top:0}.portlet.box.yellow-gold>.portlet-title>.caption,.portlet.box.yellow-gold>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fcb460;color:#fdbf79}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default>i{color:#fdc788}.portlet.box.yellow-gold>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-gold>.portlet-title>.actions .btn-default:hover{border:1px solid #fdcb92;color:#fed7ab}.dashboard-stat.yellow-gold{background-color:#E87E04}.dashboard-stat.yellow-gold.dashboard-stat-light:hover{background-color:#d47304}.dashboard-stat.yellow-gold .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-gold .details .number{color:#FFF}.dashboard-stat.yellow-gold .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-gold .more{color:#FFF;background-color:#d47304}.bg-yellow-gold{border-color:#E87E04!important;background-image:none!important;background-color:#E87E04!important;color:#FFF!important}.font-yellow-gold{color:#E87E04!important}.progress-bar.yellow-gold{background:#E87E04!important;color:#FFF!important}.yellow-casablanca.btn{color:#FFF;background-color:#f2784b;border-color:""}.open .yellow-casablanca.btn.dropdown-toggle,.yellow-casablanca.btn.active,.yellow-casablanca.btn:active,.yellow-casablanca.btn:focus,.yellow-casablanca.btn:hover{color:#FFF;background-color:#f05f2a}.yellow-casablanca.btn.active,.yellow-casablanca.btn:active{background-image:none;background-color:#ee4d12}.yellow-casablanca.btn.active:hover,.yellow-casablanca.btn:active:hover{background-color:#ef541b}.open .yellow-casablanca.btn.dropdown-toggle{background-image:none}.yellow-casablanca.btn.disabled,.yellow-casablanca.btn.disabled.active,.yellow-casablanca.btn.disabled:active,.yellow-casablanca.btn.disabled:focus,.yellow-casablanca.btn.disabled:hover,.yellow-casablanca.btn[disabled],.yellow-casablanca.btn[disabled].active,.yellow-casablanca.btn[disabled]:active,.yellow-casablanca.btn[disabled]:focus,.yellow-casablanca.btn[disabled]:hover,fieldset[disabled] .yellow-casablanca.btn,fieldset[disabled] .yellow-casablanca.btn.active,fieldset[disabled] .yellow-casablanca.btn:active,fieldset[disabled] .yellow-casablanca.btn:focus,fieldset[disabled] .yellow-casablanca.btn:hover{background-color:#f2784b}.yellow-casablanca.btn .badge{color:#f2784b;background-color:#FFF}.portlet.box.yellow-casablanca>.portlet-title,.portlet.yellow-casablanca,.portlet>.portlet-body.yellow-casablanca{background-color:#f2784b}.btn.yellow-casablanca-stripe{border-left:3px solid #f2784b}.portlet.solid.yellow-casablanca>.portlet-body,.portlet.solid.yellow-casablanca>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-casablanca>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-casablanca>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-casablanca{border:1px solid #f59c7b;border-top:0}.portlet.box.yellow-casablanca>.portlet-title>.caption,.portlet.box.yellow-casablanca>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fac6b4;color:#fbd8cb}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default>i{color:#fce3da}.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-casablanca>.portlet-title>.actions .btn-default:hover{border:1px solid #fdeae3;color:#fffcfb}.dashboard-stat.yellow-casablanca{background-color:#f2784b}.dashboard-stat.yellow-casablanca.dashboard-stat-light:hover{background-color:#f16a38}.dashboard-stat.yellow-casablanca .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-casablanca .details .number{color:#FFF}.dashboard-stat.yellow-casablanca .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-casablanca .more{color:#FFF;background-color:#f16a38}.bg-yellow-casablanca{border-color:#f2784b!important;background-image:none!important;background-color:#f2784b!important;color:#FFF!important}.font-yellow-casablanca{color:#f2784b!important}.progress-bar.yellow-casablanca{background:#f2784b!important;color:#FFF!important}.yellow-crusta.btn{color:#FFF;background-color:#f3c200;border-color:""}.open .yellow-crusta.btn.dropdown-toggle,.yellow-crusta.btn.active,.yellow-crusta.btn:active,.yellow-crusta.btn:focus,.yellow-crusta.btn:hover{color:#FFF;background-color:#cfa500}.yellow-crusta.btn.active,.yellow-crusta.btn:active{background-image:none;background-color:#b69100}.yellow-crusta.btn.active:hover,.yellow-crusta.btn:active:hover{background-color:#c09900}.open .yellow-crusta.btn.dropdown-toggle{background-image:none}.yellow-crusta.btn.disabled,.yellow-crusta.btn.disabled.active,.yellow-crusta.btn.disabled:active,.yellow-crusta.btn.disabled:focus,.yellow-crusta.btn.disabled:hover,.yellow-crusta.btn[disabled],.yellow-crusta.btn[disabled].active,.yellow-crusta.btn[disabled]:active,.yellow-crusta.btn[disabled]:focus,.yellow-crusta.btn[disabled]:hover,fieldset[disabled] .yellow-crusta.btn,fieldset[disabled] .yellow-crusta.btn.active,fieldset[disabled] .yellow-crusta.btn:active,fieldset[disabled] .yellow-crusta.btn:focus,fieldset[disabled] .yellow-crusta.btn:hover{background-color:#f3c200}.yellow-crusta.btn .badge{color:#f3c200;background-color:#FFF}.portlet.box.yellow-crusta>.portlet-title,.portlet.yellow-crusta,.portlet>.portlet-body.yellow-crusta{background-color:#f3c200}.btn.yellow-crusta-stripe{border-left:3px solid #f3c200}.portlet.solid.yellow-crusta>.portlet-body,.portlet.solid.yellow-crusta>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-crusta>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-crusta>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-crusta{border:1px solid #ffd327;border-top:0}.portlet.box.yellow-crusta>.portlet-title>.caption,.portlet.box.yellow-crusta>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #ffe064;color:#ffe57e}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default>i{color:#ffe88d}.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-crusta>.portlet-title>.actions .btn-default:hover{border:1px solid #ffea97;color:#ffefb1}.dashboard-stat.yellow-crusta{background-color:#f3c200}.dashboard-stat.yellow-crusta.dashboard-stat-light:hover{background-color:#dfb200}.dashboard-stat.yellow-crusta .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-crusta .details .number{color:#FFF}.dashboard-stat.yellow-crusta .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-crusta .more{color:#FFF;background-color:#dfb200}.bg-yellow-crusta{border-color:#f3c200!important;background-image:none!important;background-color:#f3c200!important;color:#FFF!important}.font-yellow-crusta{color:#f3c200!important}.progress-bar.yellow-crusta{background:#f3c200!important;color:#FFF!important}.yellow-lemon.btn{color:#FFF;background-color:#F7CA18;border-color:""}.open .yellow-lemon.btn.dropdown-toggle,.yellow-lemon.btn.active,.yellow-lemon.btn:active,.yellow-lemon.btn:focus,.yellow-lemon.btn:hover{color:#FFF;background-color:#e3b708}.yellow-lemon.btn.active,.yellow-lemon.btn:active{background-image:none;background-color:#cba307}.yellow-lemon.btn.active:hover,.yellow-lemon.btn:active:hover{background-color:#d5ab07}.open .yellow-lemon.btn.dropdown-toggle{background-image:none}.yellow-lemon.btn.disabled,.yellow-lemon.btn.disabled.active,.yellow-lemon.btn.disabled:active,.yellow-lemon.btn.disabled:focus,.yellow-lemon.btn.disabled:hover,.yellow-lemon.btn[disabled],.yellow-lemon.btn[disabled].active,.yellow-lemon.btn[disabled]:active,.yellow-lemon.btn[disabled]:focus,.yellow-lemon.btn[disabled]:hover,fieldset[disabled] .yellow-lemon.btn,fieldset[disabled] .yellow-lemon.btn.active,fieldset[disabled] .yellow-lemon.btn:active,fieldset[disabled] .yellow-lemon.btn:focus,fieldset[disabled] .yellow-lemon.btn:hover{background-color:#F7CA18}.yellow-lemon.btn .badge{color:#F7CA18;background-color:#FFF}.portlet.box.yellow-lemon>.portlet-title,.portlet.yellow-lemon,.portlet>.portlet-body.yellow-lemon{background-color:#F7CA18}.btn.yellow-lemon-stripe{border-left:3px solid #F7CA18}.portlet.solid.yellow-lemon>.portlet-body,.portlet.solid.yellow-lemon>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-lemon>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-lemon>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-lemon{border:1px solid #f9d549;border-top:0}.portlet.box.yellow-lemon>.portlet-title>.caption,.portlet.box.yellow-lemon>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #fbe384;color:#fce99d}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default>i{color:#fcecac}.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-lemon>.portlet-title>.actions .btn-default:hover{border:1px solid #fceeb6;color:#fdf4ce}.dashboard-stat.yellow-lemon{background-color:#F7CA18}.dashboard-stat.yellow-lemon.dashboard-stat-light:hover{background-color:#f2c308}.dashboard-stat.yellow-lemon .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-lemon .details .number{color:#FFF}.dashboard-stat.yellow-lemon .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-lemon .more{color:#FFF;background-color:#f2c308}.bg-yellow-lemon{border-color:#F7CA18!important;background-image:none!important;background-color:#F7CA18!important;color:#FFF!important}.font-yellow-lemon{color:#F7CA18!important}.progress-bar.yellow-lemon{background:#F7CA18!important;color:#FFF!important}.yellow-saffron.btn{color:#FFF;background-color:#F4D03F;border-color:""}.open .yellow-saffron.btn.dropdown-toggle,.yellow-saffron.btn.active,.yellow-saffron.btn:active,.yellow-saffron.btn:focus,.yellow-saffron.btn:hover{color:#FFF;background-color:#f2c81d}.yellow-saffron.btn.active,.yellow-saffron.btn:active{background-image:none;background-color:#e8bd0d}.yellow-saffron.btn.active:hover,.yellow-saffron.btn:active:hover{background-color:#f1c40f}.open .yellow-saffron.btn.dropdown-toggle{background-image:none}.yellow-saffron.btn.disabled,.yellow-saffron.btn.disabled.active,.yellow-saffron.btn.disabled:active,.yellow-saffron.btn.disabled:focus,.yellow-saffron.btn.disabled:hover,.yellow-saffron.btn[disabled],.yellow-saffron.btn[disabled].active,.yellow-saffron.btn[disabled]:active,.yellow-saffron.btn[disabled]:focus,.yellow-saffron.btn[disabled]:hover,fieldset[disabled] .yellow-saffron.btn,fieldset[disabled] .yellow-saffron.btn.active,fieldset[disabled] .yellow-saffron.btn:active,fieldset[disabled] .yellow-saffron.btn:focus,fieldset[disabled] .yellow-saffron.btn:hover{background-color:#F4D03F}.yellow-saffron.btn .badge{color:#F4D03F;background-color:#FFF}.portlet.box.yellow-saffron>.portlet-title,.portlet.yellow-saffron,.portlet>.portlet-body.yellow-saffron{background-color:#F4D03F}.btn.yellow-saffron-stripe{border-left:3px solid #F4D03F}.portlet.solid.yellow-saffron>.portlet-body,.portlet.solid.yellow-saffron>.portlet-title{border:0;color:#FFF}.portlet.solid.yellow-saffron>.portlet-title>.caption>i{color:#FFF}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.yellow-saffron>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.yellow-saffron{border:1px solid #f7dc6f;border-top:0}.portlet.box.yellow-saffron>.portlet-title>.caption,.portlet.box.yellow-saffron>.portlet-title>.caption>i{color:#FFF}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #faeaa9;color:#fbf0c1}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default>i{color:#fcf3d0}.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default.active,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:active,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:focus,.portlet.box.yellow-saffron>.portlet-title>.actions .btn-default:hover{border:1px solid #fdf6d9;color:#fefcf1}.dashboard-stat.yellow-saffron{background-color:#F4D03F}.dashboard-stat.yellow-saffron.dashboard-stat-light:hover{background-color:#f3cb2c}.dashboard-stat.yellow-saffron .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.yellow-saffron .details .number{color:#FFF}.dashboard-stat.yellow-saffron .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.yellow-saffron .more{color:#FFF;background-color:#f3cb2c}.bg-yellow-saffron{border-color:#F4D03F!important;background-image:none!important;background-color:#F4D03F!important;color:#FFF!important}.font-yellow-saffron{color:#F4D03F!important}.progress-bar.yellow-saffron{background:#F4D03F!important;color:#FFF!important}.purple.btn{color:#FFF;background-color:#8E44AD;border-color:""}.open .purple.btn.dropdown-toggle,.purple.btn.active,.purple.btn:active,.purple.btn:focus,.purple.btn:hover{color:#FFF;background-color:#793a93}.purple.btn.active,.purple.btn:active{background-image:none;background-color:#6a3381}.purple.btn.active:hover,.purple.btn:active:hover{background-color:#703688}.open .purple.btn.dropdown-toggle{background-image:none}.purple.btn.disabled,.purple.btn.disabled.active,.purple.btn.disabled:active,.purple.btn.disabled:focus,.purple.btn.disabled:hover,.purple.btn[disabled],.purple.btn[disabled].active,.purple.btn[disabled]:active,.purple.btn[disabled]:focus,.purple.btn[disabled]:hover,fieldset[disabled] .purple.btn,fieldset[disabled] .purple.btn.active,fieldset[disabled] .purple.btn:active,fieldset[disabled] .purple.btn:focus,fieldset[disabled] .purple.btn:hover{background-color:#8E44AD}.purple.btn .badge{color:#8E44AD;background-color:#FFF}.portlet.box.purple>.portlet-title,.portlet.purple,.portlet>.portlet-body.purple{background-color:#8E44AD}.btn.purple-stripe{border-left:3px solid #8E44AD}.portlet.solid.purple>.portlet-body,.portlet.solid.purple>.portlet-title{border:0;color:#FFF}.portlet.solid.purple>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple{border:1px solid #a563c1;border-top:0}.portlet.box.purple>.portlet-title>.caption,.portlet.box.purple>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #bf8ed3;color:#c9a1da}.portlet.box.purple>.portlet-title>.actions .btn-default>i{color:#cfacde}.portlet.box.purple>.portlet-title>.actions .btn-default.active,.portlet.box.purple>.portlet-title>.actions .btn-default:active,.portlet.box.purple>.portlet-title>.actions .btn-default:focus,.portlet.box.purple>.portlet-title>.actions .btn-default:hover{border:1px solid #d4b3e1;color:#dec5e8}.dashboard-stat.purple{background-color:#8E44AD}.dashboard-stat.purple.dashboard-stat-light:hover{background-color:#823e9e}.dashboard-stat.purple .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple .details .number{color:#FFF}.dashboard-stat.purple .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple .more{color:#FFF;background-color:#823e9e}.bg-purple{border-color:#8E44AD!important;background-image:none!important;background-color:#8E44AD!important;color:#FFF!important}.font-purple{color:#8E44AD!important}.progress-bar.purple{background:#8E44AD!important;color:#FFF!important}.purple-plum.btn{color:#FFF;background-color:#8775a7;border-color:""}.open .purple-plum.btn.dropdown-toggle,.purple-plum.btn.active,.purple-plum.btn:active,.purple-plum.btn:focus,.purple-plum.btn:hover{color:#FFF;background-color:#746198}.purple-plum.btn.active,.purple-plum.btn:active{background-image:none;background-color:#685788}.purple-plum.btn.active:hover,.purple-plum.btn:active:hover{background-color:#6d5b8e}.open .purple-plum.btn.dropdown-toggle{background-image:none}.purple-plum.btn.disabled,.purple-plum.btn.disabled.active,.purple-plum.btn.disabled:active,.purple-plum.btn.disabled:focus,.purple-plum.btn.disabled:hover,.purple-plum.btn[disabled],.purple-plum.btn[disabled].active,.purple-plum.btn[disabled]:active,.purple-plum.btn[disabled]:focus,.purple-plum.btn[disabled]:hover,fieldset[disabled] .purple-plum.btn,fieldset[disabled] .purple-plum.btn.active,fieldset[disabled] .purple-plum.btn:active,fieldset[disabled] .purple-plum.btn:focus,fieldset[disabled] .purple-plum.btn:hover{background-color:#8775a7}.purple-plum.btn .badge{color:#8775a7;background-color:#FFF}.portlet.box.purple-plum>.portlet-title,.portlet.purple-plum,.portlet>.portlet-body.purple-plum{background-color:#8775a7}.btn.purple-plum-stripe{border-left:3px solid #8775a7}.portlet.solid.purple-plum>.portlet-body,.portlet.solid.purple-plum>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-plum>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-plum>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-plum>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-plum{border:1px solid #a294bb;border-top:0}.portlet.box.purple-plum>.portlet-title>.caption,.portlet.box.purple-plum>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-plum>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c3bad3;color:#d0c9dd}.portlet.box.purple-plum>.portlet-title>.actions .btn-default>i{color:#d8d2e3}.portlet.box.purple-plum>.portlet-title>.actions .btn-default.active,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:active,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-plum>.portlet-title>.actions .btn-default:hover{border:1px solid #ded9e7;color:#ebe8f0}.dashboard-stat.purple-plum{background-color:#8775a7}.dashboard-stat.purple-plum.dashboard-stat-light:hover{background-color:#7c699f}.dashboard-stat.purple-plum .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-plum .details .number{color:#FFF}.dashboard-stat.purple-plum .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-plum .more{color:#FFF;background-color:#7c699f}.bg-purple-plum{border-color:#8775a7!important;background-image:none!important;background-color:#8775a7!important;color:#FFF!important}.font-purple-plum{color:#8775a7!important}.progress-bar.purple-plum{background:#8775a7!important;color:#FFF!important}.purple-medium.btn{color:#FFF;background-color:#BF55EC;border-color:""}.open .purple-medium.btn.dropdown-toggle,.purple-medium.btn.active,.purple-medium.btn:active,.purple-medium.btn:focus,.purple-medium.btn:hover{color:#FFF;background-color:#b335e8}.purple-medium.btn.active,.purple-medium.btn:active{background-image:none;background-color:#aa1ee6}.purple-medium.btn.active:hover,.purple-medium.btn:active:hover{background-color:#ae27e7}.open .purple-medium.btn.dropdown-toggle{background-image:none}.purple-medium.btn.disabled,.purple-medium.btn.disabled.active,.purple-medium.btn.disabled:active,.purple-medium.btn.disabled:focus,.purple-medium.btn.disabled:hover,.purple-medium.btn[disabled],.purple-medium.btn[disabled].active,.purple-medium.btn[disabled]:active,.purple-medium.btn[disabled]:focus,.purple-medium.btn[disabled]:hover,fieldset[disabled] .purple-medium.btn,fieldset[disabled] .purple-medium.btn.active,fieldset[disabled] .purple-medium.btn:active,fieldset[disabled] .purple-medium.btn:focus,fieldset[disabled] .purple-medium.btn:hover{background-color:#BF55EC}.purple-medium.btn .badge{color:#BF55EC;background-color:#FFF}.portlet.box.purple-medium>.portlet-title,.portlet.purple-medium,.portlet>.portlet-body.purple-medium{background-color:#BF55EC}.btn.purple-medium-stripe{border-left:3px solid #BF55EC}.portlet.solid.purple-medium>.portlet-body,.portlet.solid.purple-medium>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-medium>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-medium>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-medium>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-medium{border:1px solid #d083f1;border-top:0}.portlet.box.purple-medium>.portlet-title>.caption,.portlet.box.purple-medium>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-medium>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #e5baf7;color:#eed1fa}.portlet.box.purple-medium>.portlet-title>.actions .btn-default>i{color:#f3dffb}.portlet.box.purple-medium>.portlet-title>.actions .btn-default.active,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:active,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-medium>.portlet-title>.actions .btn-default:hover{border:1px solid #f6e8fc;color:#fff}.dashboard-stat.purple-medium{background-color:#BF55EC}.dashboard-stat.purple-medium.dashboard-stat-light:hover{background-color:#b843ea}.dashboard-stat.purple-medium .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-medium .details .number{color:#FFF}.dashboard-stat.purple-medium .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-medium .more{color:#FFF;background-color:#b843ea}.bg-purple-medium{border-color:#BF55EC!important;background-image:none!important;background-color:#BF55EC!important;color:#FFF!important}.font-purple-medium{color:#BF55EC!important}.progress-bar.purple-medium{background:#BF55EC!important;color:#FFF!important}.purple-studio.btn{color:#FFF;background-color:#8E44AD;border-color:""}.open .purple-studio.btn.dropdown-toggle,.purple-studio.btn.active,.purple-studio.btn:active,.purple-studio.btn:focus,.purple-studio.btn:hover{color:#FFF;background-color:#793a93}.purple-studio.btn.active,.purple-studio.btn:active{background-image:none;background-color:#6a3381}.purple-studio.btn.active:hover,.purple-studio.btn:active:hover{background-color:#703688}.open .purple-studio.btn.dropdown-toggle{background-image:none}.purple-studio.btn.disabled,.purple-studio.btn.disabled.active,.purple-studio.btn.disabled:active,.purple-studio.btn.disabled:focus,.purple-studio.btn.disabled:hover,.purple-studio.btn[disabled],.purple-studio.btn[disabled].active,.purple-studio.btn[disabled]:active,.purple-studio.btn[disabled]:focus,.purple-studio.btn[disabled]:hover,fieldset[disabled] .purple-studio.btn,fieldset[disabled] .purple-studio.btn.active,fieldset[disabled] .purple-studio.btn:active,fieldset[disabled] .purple-studio.btn:focus,fieldset[disabled] .purple-studio.btn:hover{background-color:#8E44AD}.purple-studio.btn .badge{color:#8E44AD;background-color:#FFF}.portlet.box.purple-studio>.portlet-title,.portlet.purple-studio,.portlet>.portlet-body.purple-studio{background-color:#8E44AD}.btn.purple-studio-stripe{border-left:3px solid #8E44AD}.portlet.solid.purple-studio>.portlet-body,.portlet.solid.purple-studio>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-studio>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-studio>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-studio>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-studio{border:1px solid #a563c1;border-top:0}.portlet.box.purple-studio>.portlet-title>.caption,.portlet.box.purple-studio>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-studio>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #bf8ed3;color:#c9a1da}.portlet.box.purple-studio>.portlet-title>.actions .btn-default>i{color:#cfacde}.portlet.box.purple-studio>.portlet-title>.actions .btn-default.active,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:active,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-studio>.portlet-title>.actions .btn-default:hover{border:1px solid #d4b3e1;color:#dec5e8}.dashboard-stat.purple-studio{background-color:#8E44AD}.dashboard-stat.purple-studio.dashboard-stat-light:hover{background-color:#823e9e}.dashboard-stat.purple-studio .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-studio .details .number{color:#FFF}.dashboard-stat.purple-studio .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-studio .more{color:#FFF;background-color:#823e9e}.bg-purple-studio{border-color:#8E44AD!important;background-image:none!important;background-color:#8E44AD!important;color:#FFF!important}.font-purple-studio{color:#8E44AD!important}.progress-bar.purple-studio{background:#8E44AD!important;color:#FFF!important}.purple-wisteria.btn{color:#FFF;background-color:#9B59B6;border-color:""}.open .purple-wisteria.btn.dropdown-toggle,.purple-wisteria.btn.active,.purple-wisteria.btn:active,.purple-wisteria.btn:focus,.purple-wisteria.btn:hover{color:#FFF;background-color:#8948a3}.purple-wisteria.btn.active,.purple-wisteria.btn:active{background-image:none;background-color:#7a4092}.purple-wisteria.btn.active:hover,.purple-wisteria.btn:active:hover{background-color:#804399}.open .purple-wisteria.btn.dropdown-toggle{background-image:none}.purple-wisteria.btn.disabled,.purple-wisteria.btn.disabled.active,.purple-wisteria.btn.disabled:active,.purple-wisteria.btn.disabled:focus,.purple-wisteria.btn.disabled:hover,.purple-wisteria.btn[disabled],.purple-wisteria.btn[disabled].active,.purple-wisteria.btn[disabled]:active,.purple-wisteria.btn[disabled]:focus,.purple-wisteria.btn[disabled]:hover,fieldset[disabled] .purple-wisteria.btn,fieldset[disabled] .purple-wisteria.btn.active,fieldset[disabled] .purple-wisteria.btn:active,fieldset[disabled] .purple-wisteria.btn:focus,fieldset[disabled] .purple-wisteria.btn:hover{background-color:#9B59B6}.purple-wisteria.btn .badge{color:#9B59B6;background-color:#FFF}.portlet.box.purple-wisteria>.portlet-title,.portlet.purple-wisteria,.portlet>.portlet-body.purple-wisteria{background-color:#9B59B6}.btn.purple-wisteria-stripe{border-left:3px solid #9B59B6}.portlet.solid.purple-wisteria>.portlet-body,.portlet.solid.purple-wisteria>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-wisteria>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-wisteria>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-wisteria{border:1px solid #b07cc6;border-top:0}.portlet.box.purple-wisteria>.portlet-title>.caption,.portlet.box.purple-wisteria>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #caa7d8;color:#d5b9e0}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default>i{color:#dbc3e5}.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default.active,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:active,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-wisteria>.portlet-title>.actions .btn-default:hover{border:1px solid #dfcae8;color:#eadcf0}.dashboard-stat.purple-wisteria{background-color:#9B59B6}.dashboard-stat.purple-wisteria.dashboard-stat-light:hover{background-color:#924dae}.dashboard-stat.purple-wisteria .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-wisteria .details .number{color:#FFF}.dashboard-stat.purple-wisteria .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-wisteria .more{color:#FFF;background-color:#924dae}.bg-purple-wisteria{border-color:#9B59B6!important;background-image:none!important;background-color:#9B59B6!important;color:#FFF!important}.font-purple-wisteria{color:#9B59B6!important}.progress-bar.purple-wisteria{background:#9B59B6!important;color:#FFF!important}.purple-seance.btn{color:#FFF;background-color:#9A12B3;border-color:""}.open .purple-seance.btn.dropdown-toggle,.purple-seance.btn.active,.purple-seance.btn:active,.purple-seance.btn:focus,.purple-seance.btn:hover{color:#FFF;background-color:#7e0f93}.purple-seance.btn.active,.purple-seance.btn:active{background-image:none;background-color:#6a0c7b}.purple-seance.btn.active:hover,.purple-seance.btn:active:hover{background-color:#720d85}.open .purple-seance.btn.dropdown-toggle{background-image:none}.purple-seance.btn.disabled,.purple-seance.btn.disabled.active,.purple-seance.btn.disabled:active,.purple-seance.btn.disabled:focus,.purple-seance.btn.disabled:hover,.purple-seance.btn[disabled],.purple-seance.btn[disabled].active,.purple-seance.btn[disabled]:active,.purple-seance.btn[disabled]:focus,.purple-seance.btn[disabled]:hover,fieldset[disabled] .purple-seance.btn,fieldset[disabled] .purple-seance.btn.active,fieldset[disabled] .purple-seance.btn:active,fieldset[disabled] .purple-seance.btn:focus,fieldset[disabled] .purple-seance.btn:hover{background-color:#9A12B3}.purple-seance.btn .badge{color:#9A12B3;background-color:#FFF}.portlet.box.purple-seance>.portlet-title,.portlet.purple-seance,.portlet>.portlet-body.purple-seance{background-color:#9A12B3}.btn.purple-seance-stripe{border-left:3px solid #9A12B3}.portlet.solid.purple-seance>.portlet-body,.portlet.solid.purple-seance>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-seance>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-seance>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-seance>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-seance{border:1px solid #c217e1;border-top:0}.portlet.box.purple-seance>.portlet-title>.caption,.portlet.box.purple-seance>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-seance>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #d349ed;color:#d960ef}.portlet.box.purple-seance>.portlet-title>.actions .btn-default>i{color:#dc6ef0}.portlet.box.purple-seance>.portlet-title>.actions .btn-default.active,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:active,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-seance>.portlet-title>.actions .btn-default:hover{border:1px solid #de77f1;color:#e48ef4}.dashboard-stat.purple-seance{background-color:#9A12B3}.dashboard-stat.purple-seance.dashboard-stat-light:hover{background-color:#8a10a0}.dashboard-stat.purple-seance .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-seance .details .number{color:#FFF}.dashboard-stat.purple-seance .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-seance .more{color:#FFF;background-color:#8a10a0}.bg-purple-seance{border-color:#9A12B3!important;background-image:none!important;background-color:#9A12B3!important;color:#FFF!important}.font-purple-seance{color:#9A12B3!important}.progress-bar.purple-seance{background:#9A12B3!important;color:#FFF!important}.purple-intense.btn{color:#FFF;background-color:#8775a7;border-color:""}.open .purple-intense.btn.dropdown-toggle,.purple-intense.btn.active,.purple-intense.btn:active,.purple-intense.btn:focus,.purple-intense.btn:hover{color:#FFF;background-color:#746198}.purple-intense.btn.active,.purple-intense.btn:active{background-image:none;background-color:#685788}.purple-intense.btn.active:hover,.purple-intense.btn:active:hover{background-color:#6d5b8e}.open .purple-intense.btn.dropdown-toggle{background-image:none}.purple-intense.btn.disabled,.purple-intense.btn.disabled.active,.purple-intense.btn.disabled:active,.purple-intense.btn.disabled:focus,.purple-intense.btn.disabled:hover,.purple-intense.btn[disabled],.purple-intense.btn[disabled].active,.purple-intense.btn[disabled]:active,.purple-intense.btn[disabled]:focus,.purple-intense.btn[disabled]:hover,fieldset[disabled] .purple-intense.btn,fieldset[disabled] .purple-intense.btn.active,fieldset[disabled] .purple-intense.btn:active,fieldset[disabled] .purple-intense.btn:focus,fieldset[disabled] .purple-intense.btn:hover{background-color:#8775a7}.purple-intense.btn .badge{color:#8775a7;background-color:#FFF}.portlet.box.purple-intense>.portlet-title,.portlet.purple-intense,.portlet>.portlet-body.purple-intense{background-color:#8775a7}.btn.purple-intense-stripe{border-left:3px solid #8775a7}.portlet.solid.purple-intense>.portlet-body,.portlet.solid.purple-intense>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-intense>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-intense>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-intense>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-intense{border:1px solid #a294bb;border-top:0}.portlet.box.purple-intense>.portlet-title>.caption,.portlet.box.purple-intense>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-intense>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c3bad3;color:#d0c9dd}.portlet.box.purple-intense>.portlet-title>.actions .btn-default>i{color:#d8d2e3}.portlet.box.purple-intense>.portlet-title>.actions .btn-default.active,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:active,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-intense>.portlet-title>.actions .btn-default:hover{border:1px solid #ded9e7;color:#ebe8f0}.dashboard-stat.purple-intense{background-color:#8775a7}.dashboard-stat.purple-intense.dashboard-stat-light:hover{background-color:#7c699f}.dashboard-stat.purple-intense .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-intense .details .number{color:#FFF}.dashboard-stat.purple-intense .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-intense .more{color:#FFF;background-color:#7c699f}.bg-purple-intense{border-color:#8775a7!important;background-image:none!important;background-color:#8775a7!important;color:#FFF!important}.font-purple-intense{color:#8775a7!important}.progress-bar.purple-intense{background:#8775a7!important;color:#FFF!important}.purple-sharp.btn{color:#FFF;background-color:#796799;border-color:""}.open .purple-sharp.btn.dropdown-toggle,.purple-sharp.btn.active,.purple-sharp.btn:active,.purple-sharp.btn:focus,.purple-sharp.btn:hover{color:#FFF;background-color:#685884}.purple-sharp.btn.active,.purple-sharp.btn:active{background-image:none;background-color:#5c4e75}.purple-sharp.btn.active:hover,.purple-sharp.btn:active:hover{background-color:#61527b}.open .purple-sharp.btn.dropdown-toggle{background-image:none}.purple-sharp.btn.disabled,.purple-sharp.btn.disabled.active,.purple-sharp.btn.disabled:active,.purple-sharp.btn.disabled:focus,.purple-sharp.btn.disabled:hover,.purple-sharp.btn[disabled],.purple-sharp.btn[disabled].active,.purple-sharp.btn[disabled]:active,.purple-sharp.btn[disabled]:focus,.purple-sharp.btn[disabled]:hover,fieldset[disabled] .purple-sharp.btn,fieldset[disabled] .purple-sharp.btn.active,fieldset[disabled] .purple-sharp.btn:active,fieldset[disabled] .purple-sharp.btn:focus,fieldset[disabled] .purple-sharp.btn:hover{background-color:#796799}.purple-sharp.btn .badge{color:#796799;background-color:#FFF}.portlet.box.purple-sharp>.portlet-title,.portlet.purple-sharp,.portlet>.portlet-body.purple-sharp{background-color:#796799}.btn.purple-sharp-stripe{border-left:3px solid #796799}.portlet.solid.purple-sharp>.portlet-body,.portlet.solid.purple-sharp>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-sharp>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-sharp>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-sharp{border:1px solid #9486ad;border-top:0}.portlet.box.purple-sharp>.portlet-title>.caption,.portlet.box.purple-sharp>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #b4aac6;color:#c2b9d0}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default>i{color:#cac3d6}.portlet.box.purple-sharp>.portlet-title>.actions .btn-default.active,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:active,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-sharp>.portlet-title>.actions .btn-default:hover{border:1px solid #cfc9db;color:#ddd8e5}.dashboard-stat.purple-sharp{background-color:#796799}.dashboard-stat.purple-sharp.dashboard-stat-light:hover{background-color:#6f5f8d}.dashboard-stat.purple-sharp .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-sharp .details .number{color:#FFF}.dashboard-stat.purple-sharp .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-sharp .more{color:#FFF;background-color:#6f5f8d}.bg-purple-sharp{border-color:#796799!important;background-image:none!important;background-color:#796799!important;color:#FFF!important}.font-purple-sharp{color:#796799!important}.progress-bar.purple-sharp{background:#796799!important;color:#FFF!important}.purple-soft.btn{color:#FFF;background-color:#8877a9;border-color:""}.open .purple-soft.btn.dropdown-toggle,.purple-soft.btn.active,.purple-soft.btn:active,.purple-soft.btn:focus,.purple-soft.btn:hover{color:#FFF;background-color:#75629b}.purple-soft.btn.active,.purple-soft.btn:active{background-image:none;background-color:#69588b}.purple-soft.btn.active:hover,.purple-soft.btn:active:hover{background-color:#6e5c91}.open .purple-soft.btn.dropdown-toggle{background-image:none}.purple-soft.btn.disabled,.purple-soft.btn.disabled.active,.purple-soft.btn.disabled:active,.purple-soft.btn.disabled:focus,.purple-soft.btn.disabled:hover,.purple-soft.btn[disabled],.purple-soft.btn[disabled].active,.purple-soft.btn[disabled]:active,.purple-soft.btn[disabled]:focus,.purple-soft.btn[disabled]:hover,fieldset[disabled] .purple-soft.btn,fieldset[disabled] .purple-soft.btn.active,fieldset[disabled] .purple-soft.btn:active,fieldset[disabled] .purple-soft.btn:focus,fieldset[disabled] .purple-soft.btn:hover{background-color:#8877a9}.purple-soft.btn .badge{color:#8877a9;background-color:#FFF}.portlet.box.purple-soft>.portlet-title,.portlet.purple-soft,.portlet>.portlet-body.purple-soft{background-color:#8877a9}.btn.purple-soft-stripe{border-left:3px solid #8877a9}.portlet.solid.purple-soft>.portlet-body,.portlet.solid.purple-soft>.portlet-title{border:0;color:#FFF}.portlet.solid.purple-soft>.portlet-title>.caption>i{color:#FFF}.portlet.solid.purple-soft>.portlet-title>.tools>a.remove{background-image:url(../../assets/images/portlet-remove-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.config{background-image:url(../../assets/images/portlet-config-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.reload{background-image:url(../../assets/images/portlet-reload-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.expand{background-image:url(../../assets/images/portlet-expand-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.collapse{background-image:url(../../assets/images/portlet-collapse-icon-white.png)}.portlet.solid.purple-soft>.portlet-title>.tools>a.fullscreen{color:#fdfdfd}.portlet.box.purple-soft{border:1px solid #a396bd;border-top:0}.portlet.box.purple-soft>.portlet-title>.caption,.portlet.box.purple-soft>.portlet-title>.caption>i{color:#FFF}.portlet.box.purple-soft>.portlet-title>.actions .btn-default{background:0 0!important;border:1px solid #c4bcd4;color:#d2cbde}.portlet.box.purple-soft>.portlet-title>.actions .btn-default>i{color:#dad5e4}.portlet.box.purple-soft>.portlet-title>.actions .btn-default.active,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:active,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:focus,.portlet.box.purple-soft>.portlet-title>.actions .btn-default:hover{border:1px solid #dfdbe8;color:#edebf2}.dashboard-stat.purple-soft{background-color:#8877a9}.dashboard-stat.purple-soft.dashboard-stat-light:hover{background-color:#7d6ba1}.dashboard-stat.purple-soft .visual>i{color:#FFF;opacity:.1;filter:alpha(opacity=10)}.dashboard-stat.purple-soft .details .number{color:#FFF}.dashboard-stat.purple-soft .details .desc{color:#FFF;opacity:1;filter:alpha(opacity=100)}.dashboard-stat.purple-soft .more{color:#FFF;background-color:#7d6ba1}.bg-purple-soft{border-color:#8877a9!important;background-image:none!important;background-color:#8877a9!important;color:#FFF!important}.font-purple-soft{color:#8877a9!important}.progress-bar.purple-soft{background:#8877a9!important;color:#FFF!important}.btn-transparent.btn{background:0 0;color:#888}@-moz-keyframes whirly-loader{0%{-moz-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes whirly-loader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes whirly-loader{0%{-moz-transform:rotate(0);-ms-transform:rotate(0);-webkit-transform:rotate(0);transform:rotate(0)}100%{-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.whirly-loader:not(:required){overflow:hidden;position:relative;text-indent:-9999px;display:inline-block;width:8px;height:8px;background:0 0;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;-moz-box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;-webkit-box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;box-shadow:#FA4C61 0 26px 0 6px,#FA4C61 .91px 26.05px 0 5.93px,#FA4C61 1.82px 26.07px 0 5.87px,#FA4C61 2.74px 26.06px 0 5.8px,#FA4C61 3.66px 26.01px 0 5.73px,#FA4C61 4.57px 25.93px 0 5.67px,#FA4C61 5.49px 25.82px 0 5.6px,#FA4C61 6.4px 25.68px 0 5.53px,#FA4C61 7.31px 25.51px 0 5.47px,#FA4C61 8.22px 25.3px 0 5.4px,#FA4C61 9.12px 25.06px 0 5.33px,#FA4C61 10.01px 24.79px 0 5.27px,#FA4C61 10.9px 24.48px 0 5.2px,#FA4C61 11.78px 24.15px 0 5.13px,#FA4C61 12.64px 23.78px 0 5.07px,#FA4C61 13.5px 23.38px 0 5px,#FA4C61 14.34px 22.95px 0 4.93px,#FA4C61 15.17px 22.49px 0 4.87px,#FA4C61 15.99px 22.01px 0 4.8px,#FA4C61 16.79px 21.49px 0 4.73px,#FA4C61 17.57px 20.94px 0 4.67px,#FA4C61 18.33px 20.36px 0 4.6px,#FA4C61 19.08px 19.76px 0 4.53px,#FA4C61 19.81px 19.13px 0 4.47px,#FA4C61 20.51px 18.47px 0 4.4px,#FA4C61 21.19px 17.78px 0 4.33px,#FA4C61 21.85px 17.07px 0 4.27px,#FA4C61 22.49px 16.34px 0 4.2px,#FA4C61 23.1px 15.58px 0 4.13px,#FA4C61 23.69px 14.8px 0 4.07px,#FA4C61 24.25px 14px 0 4px,#FA4C61 24.78px 13.18px 0 3.93px,#FA4C61 25.29px 12.33px 0 3.87px,#FA4C61 25.76px 11.47px 0 3.8px,#FA4C61 26.21px 10.59px 0 3.73px,#FA4C61 26.62px 9.69px 0 3.67px,#FA4C61 27.01px 8.78px 0 3.6px,#FA4C61 27.36px 7.85px 0 3.53px,#FA4C61 27.69px 6.9px 0 3.47px,#FA4C61 27.98px 5.95px 0 3.4px,#FA4C61 28.23px 4.98px 0 3.33px,#FA4C61 28.45px 4px 0 3.27px,#FA4C61 28.64px 3.01px 0 3.2px,#FA4C61 28.8px 2.01px 0 3.13px,#FA4C61 28.92px 1.01px 0 3.07px,#FA4C61 29px 0 0 3px,#FA4C61 29.05px -1.01px 0 2.93px,#FA4C61 29.06px -2.03px 0 2.87px,#FA4C61 29.04px -3.05px 0 2.8px,#FA4C61 28.98px -4.07px 0 2.73px,#FA4C61 28.89px -5.09px 0 2.67px,#FA4C61 28.76px -6.11px 0 2.6px,#FA4C61 28.59px -7.13px 0 2.53px,#FA4C61 28.39px -8.14px 0 2.47px,#FA4C61 28.15px -9.15px 0 2.4px,#FA4C61 27.88px -10.15px 0 2.33px,#FA4C61 27.57px -11.14px 0 2.27px,#FA4C61 27.22px -12.12px 0 2.2px,#FA4C61 26.84px -13.09px 0 2.13px,#FA4C61 26.43px -14.05px 0 2.07px,#FA4C61 25.98px -15px 0 2px,#FA4C61 25.5px -15.93px 0 1.93px,#FA4C61 24.98px -16.85px 0 1.87px,#FA4C61 24.43px -17.75px 0 1.8px,#FA4C61 23.85px -18.63px 0 1.73px,#FA4C61 23.24px -19.5px 0 1.67px,#FA4C61 22.59px -20.34px 0 1.6px,#FA4C61 21.92px -21.16px 0 1.53px,#FA4C61 21.21px -21.96px 0 1.47px,#FA4C61 20.48px -22.74px 0 1.4px,#FA4C61 19.71px -23.49px 0 1.33px,#FA4C61 18.92px -24.22px 0 1.27px,#FA4C61 18.1px -24.92px 0 1.2px,#FA4C61 17.26px -25.59px 0 1.13px,#FA4C61 16.39px -26.23px 0 1.07px,#FA4C61 15.5px -26.85px 0 1px,#FA4C61 14.58px -27.43px 0 .93px,#FA4C61 13.65px -27.98px 0 .87px,#FA4C61 12.69px -28.5px 0 .8px,#FA4C61 11.71px -28.99px 0 .73px,#FA4C61 10.72px -29.44px 0 .67px,#FA4C61 9.7px -29.86px 0 .6px,#FA4C61 8.67px -30.25px 0 .53px,#FA4C61 7.63px -30.6px 0 .47px,#FA4C61 6.57px -30.91px 0 .4px,#FA4C61 5.5px -31.19px 0 .33px,#FA4C61 4.42px -31.42px 0 .27px,#FA4C61 3.32px -31.63px 0 .2px,#FA4C61 2.22px -31.79px 0 .13px,#FA4C61 1.11px -31.91px 0 .07px,#FA4C61 0 -32px 0 0,#FA4C61 -1.12px -32.05px 0 -.07px,#FA4C61 -2.24px -32.06px 0 -.13px,#FA4C61 -3.37px -32.02px 0 -.2px,#FA4C61 -4.49px -31.95px 0 -.27px,#FA4C61 -5.61px -31.84px 0 -.33px,#FA4C61 -6.74px -31.69px 0 -.4px,#FA4C61 -7.85px -31.5px 0 -.47px,#FA4C61 -8.97px -31.27px 0 -.53px,#FA4C61 -10.07px -31px 0 -.6px,#FA4C61 -11.17px -30.7px 0 -.67px,#FA4C61 -12.26px -30.35px 0 -.73px,#FA4C61 -13.34px -29.96px 0 -.8px,#FA4C61 -14.41px -29.54px 0 -.87px,#FA4C61 -15.46px -29.08px 0 -.93px,#FA4C61 -16.5px -28.58px 0 -1px,#FA4C61 -17.52px -28.04px 0 -1.07px,#FA4C61 -18.53px -27.47px 0 -1.13px,#FA4C61 -19.51px -26.86px 0 -1.2px,#FA4C61 -20.48px -26.21px 0 -1.27px,#FA4C61 -21.43px -25.53px 0 -1.33px,#FA4C61 -22.35px -24.82px 0 -1.4px,#FA4C61 -23.25px -24.07px 0 -1.47px,#FA4C61 -24.12px -23.29px 0 -1.53px,#FA4C61 -24.97px -22.48px 0 -1.6px,#FA4C61 -25.79px -21.64px 0 -1.67px,#FA4C61 -26.58px -20.77px 0 -1.73px,#FA4C61 -27.34px -19.87px 0 -1.8px,#FA4C61 -28.08px -18.94px 0 -1.87px,#FA4C61 -28.78px -17.98px 0 -1.93px,#FA4C61 -29.44px -17px 0 -2px,#FA4C61 -30.08px -15.99px 0 -2.07px,#FA4C61 -30.68px -14.96px 0 -2.13px,#FA4C61 -31.24px -13.91px 0 -2.2px,#FA4C61 -31.77px -12.84px 0 -2.27px,#FA4C61 -32.26px -11.74px 0 -2.33px,#FA4C61 -32.72px -10.63px 0 -2.4px,#FA4C61 -33.13px -9.5px 0 -2.47px,#FA4C61 -33.51px -8.35px 0 -2.53px,#FA4C61 -33.84px -7.19px 0 -2.6px,#FA4C61 -34.14px -6.02px 0 -2.67px,#FA4C61 -34.4px -4.83px 0 -2.73px,#FA4C61 -34.61px -3.64px 0 -2.8px,#FA4C61 -34.78px -2.43px 0 -2.87px,#FA4C61 -34.91px -1.22px 0 -2.93px,#FA4C61 -35px 0 0 -3px,#FA4C61 -35.05px 1.22px 0 -3.07px,#FA4C61 -35.05px 2.45px 0 -3.13px,#FA4C61 -35.01px 3.68px 0 -3.2px,#FA4C61 -34.92px 4.91px 0 -3.27px,#FA4C61 -34.8px 6.14px 0 -3.33px,#FA4C61 -34.63px 7.36px 0 -3.4px,#FA4C61 -34.41px 8.58px 0 -3.47px,#FA4C61 -34.16px 9.79px 0 -3.53px,#FA4C61 -33.86px 11px 0 -3.6px,#FA4C61 -33.52px 12.2px 0 -3.67px,#FA4C61 -33.13px 13.39px 0 -3.73px,#FA4C61 -32.7px 14.56px 0 -3.8px,#FA4C61 -32.24px 15.72px 0 -3.87px,#FA4C61 -31.73px 16.87px 0 -3.93px,#FA4C61 -31.18px 18px 0 -4px,#FA4C61 -30.59px 19.11px 0 -4.07px,#FA4C61 -29.96px 20.21px 0 -4.13px,#FA4C61 -29.29px 21.28px 0 -4.2px,#FA4C61 -28.58px 22.33px 0 -4.27px,#FA4C61 -27.83px 23.35px 0 -4.33px,#FA4C61 -27.05px 24.36px 0 -4.4px,#FA4C61 -26.23px 25.33px 0 -4.47px,#FA4C61 -25.38px 26.28px 0 -4.53px,#FA4C61 -24.49px 27.2px 0 -4.6px,#FA4C61 -23.57px 28.09px 0 -4.67px,#FA4C61 -22.62px 28.95px 0 -4.73px,#FA4C61 -21.63px 29.77px 0 -4.8px,#FA4C61 -20.62px 30.56px 0 -4.87px,#FA4C61 -19.57px 31.32px 0 -4.93px,#FA4C61 -18.5px 32.04px 0 -5px,#FA4C61 -17.4px 32.73px 0 -5.07px,#FA4C61 -16.28px 33.38px 0 -5.13px,#FA4C61 -15.13px 33.98px 0 -5.2px,#FA4C61 -13.96px 34.55px 0 -5.27px,#FA4C61 -12.77px 35.08px 0 -5.33px,#FA4C61 -11.56px 35.57px 0 -5.4px,#FA4C61 -10.33px 36.02px 0 -5.47px,#FA4C61 -9.08px 36.42px 0 -5.53px,#FA4C61 -7.82px 36.78px 0 -5.6px,#FA4C61 -6.54px 37.09px 0 -5.67px,#FA4C61 -5.25px 37.37px 0 -5.73px,#FA4C61 -3.95px 37.59px 0 -5.8px,#FA4C61 -2.64px 37.77px 0 -5.87px,#FA4C61 -1.32px 37.91px 0 -5.93px;-moz-animation:whirly-loader 1.25s infinite linear;-webkit-animation:whirly-loader 1.25s infinite linear;animation:whirly-loader 1.25s infinite linear;-moz-transform-origin:50% 50%;-ms-transform-origin:50% 50%;-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.checker{width:19px;height:19px}.collapse.am-collapse{animation-duration:.3s;animation-timing-function:ease;animation-fill-mode:backwards;overflow:hidden}.message-info{float:right;color:#d3d3d3;margin-right:5px}[ui-view].ng-enter{-webkit-animation:fadeInUpm .5s;animation:fadeInUpm .5s}.steps,.steps-indicator{padding-bottom:20px!important}.ui-sortable,.ui-sortable-handle{cursor:move}.page-header.navbar .search-form .input-group .form-control:hover,.pointer-cursor,button.close{cursor:pointer}.mbottom20,.step .btn:not(.ui-select-toggle,.remove-condition){margin-bottom:10px}button.close{padding:0;background:0 0;border:0;-webkit-appearance:none}.close{font-size:21px;font-weight:700;line-height:1;color:#000;opacity:.2;filter:alpha(opacity=20)}.alert{padding:15px!important;margin-bottom:20px!important;border:1px solid transparent!important;border-radius:4px!important}.alert h4{margin-top:0!important;color:inherit!important}.alert .alert-link{font-weight:700!important}.alert>p,.alert>ul{margin-bottom:0!important}.alert>p+p{margin-top:5px!important}.alert-dismissable,.alert-dismissible{padding-right:35px!important}.alert-dismissable .close,.alert-dismissible .close{position:relative!important;top:-2px!important;right:-21px!important;color:inherit!important}.alert-success{background-color:#dff0d8!important;border-color:#d6e9c6!important;color:#3c763d!important}.alert-success hr{border-top-color:#c9e2b3!important}.alert-success .alert-link{color:#2b542c!important}.alert-info{background-color:#d9edf7!important;border-color:#bce8f1!important;color:#31708f!important}.alert-info hr{border-top-color:#a6e1ec!important}.alert-info .alert-link{color:#245269!important}.alert-warning{background-color:#fcf8e3!important;border-color:#faebcc!important;color:#8a6d3b!important}.alert-warning hr{border-top-color:#f7e1b5!important}.alert-warning .alert-link{color:#66512c!important}.alert-danger{background-color:#f2dede!important;border-color:#ebccd1!important;color:#a94442!important}.alert-danger hr{border-top-color:#e4b9c0!important}.alert-danger .alert-link{color:#843534!important}.alert .close{text-indent:inherit!important;background-image:none!important;width:auto!important}.page-404 .number{position:relative;top:35px;display:inline-block;letter-spacing:-10px;margin-top:0;margin-bottom:10px;line-height:128px;font-size:128px;font-weight:300;color:#7bbbd6;text-align:right}.page-404 .details{margin-left:40px;display:inline-block;padding-top:0;text-align:left}.sounds-title-icon{font-size:17px}.ui-select-multiple input.ui-select-search{width:100%!important}.modal.fade,.over-topbar{z-index:9996!important}.list-group-item-custom{border:none}.select-group-father{font-weight:700!important}.select-group-son{font-style:italic!important}@media (max-height:908px){.modal-body-scroll{max-height:325px;overflow-y:scroll}}.widget .dashboard-stat{margin-bottom:0!important}.widget .panel-body{padding:0}.left-margin{margin-left:20px}.page-header.navbar{background-color:#2b3643}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle>i{color:#79869a}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle .badge.badge-default{background-color:#1caf9a;color:#fff}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle{background-color:#3f4f62}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle:hover>i,.page-header.navbar .top-menu .navbar-nav>li.dropdown.open .dropdown-toggle>i{color:#a4aebb}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu{border-color:#e7eaf0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu:after{border-bottom-color:#eaedf2}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external{background:#eaedf2}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>h3{color:#62878f}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a{color:#5b9bd1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a:hover{color:#3175af;text-decoration:underline}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a{border-bottom:1px solid #EFF2F6!important;color:#888}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a:hover{background:#f8f9fa}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li>a .time{background:#f1f1f1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li>a:hover .time{background:#e4e4e4}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-toggle>.circle{background-color:#1caf9a;color:#fff}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-toggle>.corner{border-color:transparent transparent transparent #1caf9a}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu .dropdown-menu-list .subject .from{color:#5b9bd1}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>.langname,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-toggle>.username,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-toggle>i{color:#c6cfda}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list .progress{background-color:#dfe2e9}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user>.dropdown-menu{width:195px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu{background:#3f4f62;border:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu:after{border-bottom-color:#3f4f62}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external{background:#2f3b49}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external>h3{color:#adbaca}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu>li.external>a:hover{color:#87b6dd}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a{color:#bcc7d4;border-bottom:1px solid #4b5e75!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a>i,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a>i{color:#9dadc0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu .dropdown-menu-list>li a:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a:hover{background:#47596e}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li a{border-bottom:0!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-dark .dropdown-menu.dropdown-menu-default>li.divider{background:#4b5e75}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list>li>a .time{background:#354353}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification.dropdown-dark .dropdown-menu .dropdown-menu-list>li>a:hover .time{background:#2b3643}.page-header.navbar .search-form{background:#232c37}.page-header.navbar .search-form.open,.page-header.navbar .search-form:hover{background:#3f4f62}.page-header.navbar .search-form .input-group .form-control{color:#959fad}.page-header.navbar .search-form .input-group .form-control::-moz-placeholder{color:#929cab;opacity:1}.page-header.navbar .search-form .input-group .form-control:-ms-input-placeholder{color:#929cab}.page-header.navbar .search-form .input-group .form-control::-webkit-input-placeholder{color:#929cab}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit>i{color:#959fad}.page-header.navbar .menu-toggler{background-image:url(../../assets/images/sidebar_toggler_icon_darkblue.png)}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{box-shadow:5px 5px rgba(63,79,98,.2)}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3,.page-header.navbar .hor-menu .navbar-nav>li>a{color:#c6cfda}.page-header.navbar .hor-menu .navbar-nav>li>a>i{color:#788ea8}.page-header.navbar .hor-menu .navbar-nav>li.open>a,.page-header.navbar .hor-menu .navbar-nav>li>a:hover{color:#d5dce4;background:#3f4f62!important}.page-header.navbar .hor-menu .navbar-nav>li.open>a>i,.page-header.navbar .hor-menu .navbar-nav>li>a:hover>i{color:#889bb2}.page-header.navbar .hor-menu .navbar-nav>li.active>a,.page-header.navbar .hor-menu .navbar-nav>li.current>a{color:#fff;background:#1caf9a!important}.page-header.navbar .hor-menu .navbar-nav>li.active>a>i,.page-header.navbar .hor-menu .navbar-nav>li.current>a>i{color:#788ea8}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu{box-shadow:5px 5px rgba(63,79,98,.2);background:#3f4f62}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a>i{color:#c6cfda}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li:hover>a{color:#f1f3f6;background:#47596e}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li:hover>a>i{color:#f1f3f6}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a:hover,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a:hover{color:#f1f3f6;background:#47596e}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a:hover>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.active>a>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a:hover>i,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.current>a>i{color:#f1f3f6}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li.divider{background-color:#495c72}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>a:after{color:#c6cfda}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{box-shadow:5px 5px rgba(102,102,102,.1)}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a{color:#c6cfda}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a>i{color:#788ea8}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a:hover{color:#d5dce4;background:#3f4f62}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>a:hover>i{color:#889bb2}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.open>a{color:#333!important;background:#fff!important}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.open>a>i{color:#333!important}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a:hover,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a:hover{color:#fff;background:#1caf9a}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.active>a>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li.current>a>i{color:#788ea8}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu{box-shadow:5px 5px rgba(102,102,102,.1);background:#fff;border:1px solid #efeff5}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li>a{color:#000}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li>a>i{color:#888}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li:hover>a{color:#000;background:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li:hover>a>i{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a:hover,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a:hover{color:#000;background:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.active>a>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a:hover>i,.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.current>a>i{color:#666}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li .dropdown-menu li.divider{background-color:#f2f2f7}.page-header.navbar .hor-menu.hor-menu-light .navbar-nav>li>.dropdown-menu{border-top:0}.page-sidebar,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover{background-color:#364150}.page-sidebar .page-sidebar-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{color:#b4bcc8}.page-sidebar .page-sidebar-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu>li>a>i[class*=icon-],.page-sidebar .page-sidebar-menu>li>a>i[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i[class*=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i[class^=icon-]{color:#6b788b}.page-sidebar .page-sidebar-menu>li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu>li.heading>h3,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading>h3{color:#708096}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar .page-sidebar-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a{background:#2C3542;color:#b4bcc8}.page-sidebar .page-sidebar-menu>li.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.open>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.open>a>i,.page-sidebar .page-sidebar-menu>li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li:hover>a>.arrow:before,.page-sidebar .page-sidebar-menu>li:hover>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:hover>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu>li.active.open>a,.page-sidebar .page-sidebar-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a{background:#1caf9a;border-top-color:transparent;color:#fff}.page-sidebar .page-sidebar-menu>li.active.open>a:hover,.page-sidebar .page-sidebar-menu>li.active>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a:hover{background:#1caf9a}.page-sidebar .page-sidebar-menu>li.active.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.active.open>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.active.open>a>i,.page-sidebar .page-sidebar-menu>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>i{color:#fff}.page-sidebar .page-sidebar-menu>li.active+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active+li>a{border-top-color:transparent}.page-sidebar .page-sidebar-menu>li.active.open+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active.open+li>a{border-top-color:#3d4957}.page-sidebar .page-sidebar-menu>li:last-child>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li:last-child>a{border-bottom:1px solid transparent!important}.page-sidebar .page-sidebar-menu li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li:hover>a>.arrow:before,.page-sidebar .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>a>.arrow:before{color:#fff}.page-sidebar-closed .page-sidebar .page-sidebar-menu:hover .sub-menu,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu:hover .sub-menu{background-color:#364150}.page-sidebar .page-sidebar-menu .sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a{color:#b4bcc8}.page-sidebar .page-sidebar-menu .sub-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i{color:#606C7D}.page-sidebar .page-sidebar-menu .sub-menu>li>a>i[class*=icon-],.page-sidebar .page-sidebar-menu .sub-menu>li>a>i[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i[class*=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>i[class^=icon-]{color:#6b788b}.page-sidebar .page-sidebar-menu .sub-menu>li>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a{background:#3e4b5c!important}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>i,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>i,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>i{color:#959fae}.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li.open>a>.arrow:before,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>.arrow.open:before,.page-sidebar .page-sidebar-menu .sub-menu>li:hover>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu>li:hover>a>.arrow:before{color:#606C7D}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li:hover>a{background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a{background:#3e4b5c;border-left:4px solid #1caf9a;color:#f1f1f1}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover{border-left:4px solid #1caf9a;background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow.open:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>i,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow.open:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow:before,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li.active>a>i{color:#eee}.page-sidebar .sidebar-search .input-group .input-group-btn .btn>i,.page-sidebar-closed .page-sidebar .sidebar-search.open .remove>i,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .remove>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn>i{color:#4e5c6f}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{background:#3a4656}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a{background:#3e4b5c!important}.page-sidebar .sidebar-toggler,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler{background:url(../assets/images/sidebar_inline_toggler_icon_darkblue.jpg)}.page-sidebar .sidebar-search .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group{border-bottom:1px solid #435060}.page-sidebar .sidebar-search .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control{background-color:#364150;color:#4e5c6f}.page-sidebar .sidebar-search .input-group .form-control::-moz-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-moz-placeholder{color:#4e5c6f;opacity:1}.page-sidebar .sidebar-search .input-group .form-control:-ms-input-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control:-ms-input-placeholder{color:#4e5c6f}.page-sidebar .sidebar-search .input-group .form-control::-webkit-input-placeholder,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control::-webkit-input-placeholder{color:#4e5c6f}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group{border:1px solid #435060}.page-sidebar-closed .page-sidebar .sidebar-search.open .input-group,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.open .input-group{background-color:#364150}.page-sidebar-closed .page-sidebar .sidebar-search.sidebar-search-solid .input-group,.page-sidebar-closed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group{background:0 0}.page-sidebar .sidebar-search.sidebar-search-solid .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group{border:1px solid #2c3541;background:#2c3541}.page-sidebar .sidebar-search.sidebar-search-solid .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid .input-group .form-control{background:#2c3541}.page-sidebar .sidebar-search.sidebar-search-solid.open .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group{border:1px solid #364150;background:#364150}.page-sidebar .sidebar-search.sidebar-search-solid.open .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-solid.open .input-group .form-control{background:#364150}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover{border-left:0;border-right:4px solid #1caf9a}.page-quick-sidebar-wrapper,.page-quick-sidebar-wrapper .page-quick-sidebar{background:#435468}.page-quick-sidebar-toggler{background:#576d87}.page-quick-sidebar-toggler:hover{background:#51667e}.page-quick-sidebar-toggler>i,.page-quick-sidebar-wrapper{color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a:hover{background:#4d6178}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li.open>a{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li.active>a{border:0;background:#435468}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu{border:0;background:#576d87;box-shadow:5px 5px rgba(142,160,182,.1)}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:after,.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:before{border-bottom:7px solid #576d87}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a{color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a>i{color:#ccd1d9}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a:hover{background:#5d7591;color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li>a:hover>i{color:#d4d9e0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li.active>a{background:#59708a;color:#d1d6de}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu>li.divider{background-color:#5d7591}.page-quick-sidebar-wrapper .page-quick-sidebar .list-heading{color:#a5afbd}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li{border-bottom-color:#495c72}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li:hover{background:#495c72}.page-quick-sidebar-wrapper .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list{color:#c9ced7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group{border-bottom:1px solid #435060}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .form-control{background-color:#435468;color:#c9ced7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub{color:#9ca7b7}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small{color:#919cae}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime,.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name{color:#bdc4ce}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message{color:#c9ced7;background:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow{border-right-color:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow{border-left-color:#576d87}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a{color:#b7bfca}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li a .desc{text-decoration:underline}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .desc{color:#b1b9c6}.page-quick-sidebar-wrapper .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .date{color:#919cae}.page-footer .page-footer-inner{color:#98a6ba}.page-footer-fixed .page-footer{background-color:#28303b}@media (min-width:992px){.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-closed>li:hover{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-closed>li:hover.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-closed>li:hover.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu{box-shadow:5px 5px rgba(44,53,66,.2)}.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu.sidebar-search-wrapper,.page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu.sidebar-toggler-wrapper{box-shadow:none}.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li.heading{padding:0;margin-top:15px;margin-bottom:15px;border-top:1px solid #3d4957!important}.page-sidebar-fixed:not(.page-footer-fixed) .page-content{border-bottom:0}.page-sidebar-fixed:not(.page-footer-fixed) .page-footer{background-color:#fff}.page-sidebar-fixed:not(.page-footer-fixed) .page-footer .page-footer-inner{color:#333}.page-boxed{background-color:#303a47!important}.page-boxed .page-container{background-color:#364150;border-left:1px solid #3d4957;border-bottom:1px solid #3d4957}.page-boxed.page-sidebar-reversed .page-container{border-left:0;border-right:1px solid #3d4957}.page-boxed.page-sidebar-fixed .page-container{border-left:0;border-bottom:0}.page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-container{border-left:0;border-right:0;border-bottom:0}.page-boxed.page-sidebar-fixed .page-sidebar{border-left:1px solid #3d4957}.page-boxed.page-sidebar-reversed.page-sidebar-fixed .page-sidebar{border-right:1px solid #3d4957;border-left:0}.page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer{background-color:#303a47!important}.page-boxed.page-sidebar-fixed.page-footer-fixed .page-footer .page-footer-inner{color:#98a6ba}.page-sidebar-menu-hover-submenu li:hover a>.arrow{border-right:8px solid #323c4b}.page-sidebar-reversed .page-sidebar-menu-hover-submenu li:hover a>.arrow{border-left:8px solid #323c4b}.page-sidebar-menu-hover-submenu li:hover>.sub-menu{background:#323c4b!important}}.pace .pace-progress-inner,.page-header.navbar,.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .progress .progress-bar{box-shadow:none}@media (max-width:991px){.page-sidebar{background-color:#28303b}.page-sidebar .page-sidebar-menu>li>a{border-top:1px solid #364150}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar .page-sidebar-menu>li:hover>a{background:#2e3744}.page-sidebar .page-sidebar-menu>li:last-child>a{border-bottom:0!important}.page-sidebar .page-sidebar-menu .sidebar-search input,.page-sidebar .page-sidebar-menu>li .sub-menu{background-color:#28303b!important}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active.open>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.active>a:hover,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li:hover>a{background:#2e3744}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{background:#28303b!important}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.active>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li.open>a,.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu>li:hover>a{background:#2e3744!important}}@media (max-width:480px){.page-header.navbar .top-menu{background-color:#364150}.page-header-fixed-mobile .page-header.navbar .top-menu{background-color:#2b3643}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{background-color:#415265}.page-header-fixed-mobile .page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{background:0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle:hover{background-color:#3f4f62}}body{background-color:#364150}.block-spinner-bar>div,.page-spinner-bar>div{background:#20c5ad}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTQzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTQ7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTSGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTZ6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTfy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTfgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTYjoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300;src:local('Open Sans Light'),local('OpenSans-Light'),url(http://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/TCmDhmS1RRL7aqhqZW19hwLUuEpTyoUstqEm5AMlJo4.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/K88pR3goAWT7BTt32Z01m4X0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/RjgO7rYTmqiVp7vzi-Q5UYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/ttwNtsRpgsxVmgGGmiUOEoX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/LWCjsQkB6EMdfHrEVqA1KYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/xozscpT2726on7jbcb_pAoX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/59ZRklaO5bWGqF5A9baEEYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/u-WUoqrET9fUeobQW7jkRYX0hVgzZQUfRDuZrPvH3D8.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local('Open Sans'),local('OpenSans'),url(http://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSgzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSg7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSiGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSp6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSvy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSvgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNSojoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local('Open Sans Semibold'),local('OpenSans-Semibold'),url(http://fonts.gstatic.com/s/opensans/v13/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzAzyDMXhdD8sAj6OAJTFsBI.woff2) format('woff2')}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzA7aC6SjiAOpAWOKfJDfVRY.woff2) format('woff2');unicode-range:U+0460-052F,U+20B4,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBdwxCXfZpKo5kWAx_74bHs.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzCGUML8f7tzeB6gGvgki0bE.woff2) format('woff2');unicode-range:U+02BC,U+0900-097F,U+1CD0-1CF6,U+1CF8-1CF9,U+200B-200D,U+20A8,U+20B9,U+25CC,U+A830-A839,U+A8E0-A8FB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzJ6vnaPZw6nYDxM4SVEMFKg.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzPy1_HTwRwgtl1cPga3Fy3Y.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzPgrLsWo7Jk1KvZser0olKY.woff2) format('woff2');unicode-range:U+0102-0103,U+1EA0-1EF1,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzIjoYw3YTyktCCer_ilOlhE.woff2) format('woff2');unicode-range:U+0100-024F,U+1E00-1EFF,U+20A0-20AB,U+20AD-20CF,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local('Open Sans Bold'),local('OpenSans-Bold'),url(http://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBampu5_7CjHW5spxoeN3Vs.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2212,U+2215,U+E0FF,U+EFFD,U+F000}@media print{body{background-color:#fff!important}.hidden-print,.page-bar,.page-footer,.page-quick-sidebar-wrapper,.page-sidebar-wrapper,.theme-panel{display:none}.no-page-break{page-break-after:avoid}.page-container{margin:0!important;padding:0!important}.page-content{min-height:300px!important;padding:0 20px 20px!important;margin:0!important}}.page-header.navbar{width:100%;margin:0;border:0;padding:0;height:46px;min-height:46px;filter:none;background-image:none}.page-header.navbar.navbar-fixed-top,.page-header.navbar.navbar-static-top{z-index:9995}.page-header.navbar .page-logo{float:left;display:block;width:235px;height:46px;padding-left:20px;padding-right:20px}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo{padding:0}.page-header.navbar .page-logo>.logo-image,.page-header.navbar .page-logo>a{display:inline-block;float:left}.page-header.navbar .page-logo .logo-default{margin:16px 0 0}.page-header.navbar .page-logo .logo-mini{display:none;margin-left:5px}.page-header.navbar .page-logo .text-logo{padding-left:20px;padding-top:12px}.page-header.navbar .search-form{display:inline-block;width:46px;position:relative;float:left;transition:all .6s}.page-header.navbar .search-form .input-group .form-control{height:46px;border:0;background:0 0!important;font-size:13px;padding-left:0;margin-left:12px;text-indent:-150000px}.page-header.navbar .search-form .input-group .input-group-btn{height:46px}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit{margin-left:-24px;padding:0;width:46px;background:0 0;margin-top:4px;display:block}.page-header.navbar .search-form .input-group .input-group-btn .btn.submit>i{font-size:15px}.page-header.navbar .search-form.open{transition:all .6s;width:300px!important}.page-header.navbar .search-form.open .input-group .form-control{text-indent:0}.page-header.navbar .search-form.open .input-group .form-control:hover{cursor:text}.page-header.navbar .search-form.open .input-group .input-group-btn .btn.submit{margin-left:0}.page-header.navbar .menu-toggler{display:block;cursor:pointer;opacity:.7;filter:alpha(opacity=70);width:24px;height:24px;background-repeat:no-repeat;background-position:center center}.page-header.navbar .menu-toggler:hover,.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a:hover{opacity:1;filter:alpha(opacity=100)}.page-header.navbar .menu-toggler.sidebar-toggler{float:right;margin:11px 0 0}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .menu-toggler.sidebar-toggler{margin-right:10.5px}.page-header.navbar .menu-toggler.responsive-toggler{display:none;float:right;margin:11px 6px 0}.page-header.navbar .top-menu{margin:0;padding:0;float:right}.page-header.navbar .top-menu .navbar-nav{padding:0;margin-right:20px;display:block}.page-header.navbar .top-menu .navbar-nav>li.dropdown{margin:0;padding:0 4px;height:46px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown:last-child{padding-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle{margin:0;padding:17px 10px 9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle:last-child{padding-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>i{font-size:17px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>i.glyphicon{font-size:16px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle>.badge{font-family:"Open Sans",sans-serif;position:absolute;top:10px;right:20px;font-weight:300px;padding:3px 6px}.page-header.navbar .top-menu .navbar-nav>li.dropdown>.dropdown-toggle:focus{background:0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu{margin-top:3px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu:before{position:absolute;top:-7px;right:9px;display:inline-block!important;border-right:7px solid transparent;border-bottom:7px solid #eee;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu:after{position:absolute;top:-6px;right:10px;display:inline-block!important;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-menu>li>a{color:#555}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu{min-width:160px;max-width:275px;width:275px;z-index:9995}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external{display:block;overflow:hidden;padding:15px;letter-spacing:.5px;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>h3{margin:0;padding:0;float:left;font-size:13px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu>li.external>a{display:inline-block;padding:0;background:0 0;clear:inherit;font-size:13px;font-weight:300;position:absolute;right:10px;border:0;margin-top:-1px}.page-bar:after,.page-container:after,.page-footer:after,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after,.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:after{clear:both}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list{padding-right:0!important;padding-left:0;list-style:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li>a{display:block;clear:both;font-weight:300;line-height:20px;white-space:normal;font-size:13px;padding:16px 15px 18px;text-shadow:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended .dropdown-menu .dropdown-menu-list>li:first-child a{border-top:none}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details{overflow:hidden}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon{margin-right:10px;-webkit-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon i{margin-right:2px;margin-left:1px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .details .label-icon .badge{right:15px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu .dropdown-menu-list>li a .time{float:right;max-width:75px;font-size:11px;font-weight:400;opacity:.7;filter:alpha(opacity=70);text-align:right;padding:1px 5px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .photo{float:left;margin:0 6px 6px 0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .photo img{height:40px;width:40px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;-ms-border-radius:50%!important;-o-border-radius:50%!important;border-radius:50%!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject{display:block;margin-left:46px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject .from{font-size:13px;font-weight:600}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .subject .time{font-size:12px;font-weight:400;opacity:.5;filter:alpha(opacity=50);float:right}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox>.dropdown-menu .dropdown-menu-list>li .message{display:block!important;font-size:12px;line-height:1.3;margin-left:46px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task{margin-bottom:5px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task .desc{font-size:13px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .task .percent{float:right;font-weight:600;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu .dropdown-menu-list>li .progress{display:block;height:8px;margin:8px 0 2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{padding:14px 6px 12px 8px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>.username{display:inline-block;font-size:13px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>img{float:left;margin-top:-5px;margin-right:5px;height:29px;display:inline-block}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle>i{display:inline-block;margin:0;font-size:13px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu{width:175px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a{font-size:14px;font-weight:300}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a i{width:15px;display:inline-block;margin-right:9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-menu>li>a .badge{margin-right:10px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language{padding-left:0;padding-right:0;margin:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle{padding:14px 3px 12px 7px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>img{margin-bottom:2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-toggle>i{font-size:14px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-menu>li>a{font-size:13px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language>.dropdown-menu>li>a>img{margin-bottom:2px;margin-right:5px}.page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu:before{border-left:none;border-right:none}.page-header.navbar .top-menu .navbar-nav li.dropdown-dark .dropdown-menu .dropdown-menu-list>li.external a{background:0 0!important;border:none!important}@media (min-width:768px){.page-header.navbar .search-form.search-form-expanded{width:200px}.page-header.navbar .search-form.search-form-expanded .input-group .form-control{text-indent:0}.page-header.navbar .search-form.search-form-expanded .input-group .form-control:hover{cursor:text}.page-header.navbar .search-form.search-form-expanded .input-group .input-group-btn .btn.submit{margin-left:0}}.page-header.navbar .container{position:relative}.page-header.navbar .hor-menu .navbar-nav,.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown{position:static}.page-header.navbar .hor-menu{margin:0;float:left}.page-header.navbar .hor-menu .navbar-nav.navbar-right .dropdown-menu{left:auto;right:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu{left:auto;width:auto}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content{font-family:"Open Sans",sans-serif;padding:15px;margin:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content.mega-menu-responsive-content{padding:10px 18px 10px 45px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu{padding:0;margin:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu:last-child{border-right:0}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li{padding:1px!important;margin:0!important;list-style:none}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>h3{margin-top:5px;padding-left:6px;font-size:15px;font-weight:400}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a{white-space:normal;font-family:"Open Sans",sans-serif;padding:7px;margin:0;font-size:14px;font-weight:300}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a.iconify{padding:7px 7px 7px 30px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a.iconify>i{position:absolute;top:auto!important;margin-left:-24px;font-size:15px;margin-top:3px!important}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a .badge,.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown>.dropdown-menu .mega-menu-content .mega-menu-submenu li>a .label{margin-left:5px}.page-header.navbar .hor-menu .navbar-nav>li.mega-menu-dropdown.mega-menu-full .dropdown-menu{left:20px;right:20px}.page-header.navbar .hor-menu .navbar-nav>li.menu-dropdown .dropdown-menu:after,.page-header.navbar .hor-menu .navbar-nav>li.menu-dropdown .dropdown-menu:before{display:none!important}.page-header.navbar .hor-menu .navbar-nav>li>a{font-size:14px;font-weight:400;padding:13px}.page-header.navbar .hor-menu .navbar-nav>li>a:focus{background:0 0!important}.page-header.navbar .hor-menu .navbar-nav>li.active .selected,.page-header.navbar .hor-menu .navbar-nav>li.current .selected{left:50%;bottom:0;position:absolute;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid transparent;display:inline-block;margin:0 0 -6px -7px;width:0;height:0}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu{margin-top:0;border:none}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a{font-family:"Open Sans",sans-serif;font-size:14px;font-weight:300;padding:9px 10px;white-space:normal}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a .badge,.page-header.navbar .hor-menu .navbar-nav>li .dropdown-menu li>a .label{font-weight:300}.page-header.navbar .hor-menu .navbar-nav>li.classic-menu-dropdown .dropdown-menu{min-width:195px;max-width:235px}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>.dropdown-menu{top:0}.page-header.navbar .hor-menu .navbar-nav>li .dropdown-submenu>a:after{top:9px;right:10px}@media (min-width:992px) and (max-width:1200px){.page-boxed .page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle .langname,.page-boxed .page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile{display:none}}@media (min-width:992px){.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo{padding:0;width:45px}.page-sidebar-closed.page-sidebar-closed-hide-logo .page-header.navbar .page-logo .logo-default{display:none}.page-boxed .page-header.navbar .page-logo{width:236px}.page-boxed .page-header.navbar .top-menu .navbar-nav{margin-right:0}.page-sidebar-closed.page-sidebar-closed-hide-logo.page-boxed .page-header.navbar .page-logo{width:46px}.page-boxed.page-sidebar-fixed .page-header.navbar .page-logo{width:235px}}@media (max-width:991px){.page-header.navbar{padding:0 20px;position:relative;clear:both}.page-header.navbar .page-logo{width:auto;padding:0;margin-right:10px;margin-left:0!important;padding-left:0!important}.page-header.navbar .page-logo img{margin-left:4px!important}.page-header.navbar .menu-toggler.sidebar-toggler{display:none!important}.page-header.navbar .menu-toggler.responsive-toggler{display:inline-block}.page-header.navbar .top-menu .navbar-nav{display:inline-block;margin:0 10px 0 0}.page-header.navbar .top-menu .navbar-nav>li{float:left}.page-header.navbar .top-menu .navbar-nav .nav li.dropdown i{display:inline-block;position:relative;top:1px;right:0}.page-header.navbar .top-menu .navbar-nav .open .dropdown-menu{position:absolute}.page-header-fixed.page-header-fixed-mobile .navbar-fixed-top{position:fixed}.page-boxed .page-header.navbar>.container{max-width:none!important;margin:0!important;padding:0!important}}@media (min-width:768px) and (max-width:991px){.page-boxed .page-header.navbar{margin:auto!important;padding:0}.page-boxed .page-header.navbar>.container{margin:auto!important}}@media (max-width:767px){.page-header.navbar{padding:0 10px}.page-header.navbar .page-logo{width:auto}.page-header.navbar .search-form.open{z-index:3;left:10px;right:10px;position:absolute;width:auto!important}.page-header.navbar .top-menu .navbar-nav>li.dropdown-extended>.dropdown-menu{max-width:255px;width:255px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu{margin-right:-190px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-notification .dropdown-menu:before{margin-right:190px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu{margin-right:-150px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-inbox .dropdown-menu:before{margin-right:150px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu{margin-right:-110px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu:after,.page-header.navbar .top-menu .navbar-nav>li.dropdown-tasks .dropdown-menu:before{margin-right:110px}}@media (max-width:580px){.page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle .langname,.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle .username.username-hide-on-mobile{display:none}}@media (max-width:480px){.page-header-fixed.page-header-fixed-mobile .page-header.navbar{height:92px}.page-header.navbar .top-menu{display:block;clear:both}.page-header.navbar .top-menu .navbar-nav{margin-right:0}.page-header.navbar .top-menu .navbar-nav>li.dropdown .dropdown-toggle{padding:17px 6px 9px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-language .dropdown-toggle{padding:14px 4px 12px 2px}.page-header.navbar .top-menu .navbar-nav>li.dropdown-user .dropdown-toggle{padding:14px 0 12px 2px}}.pace .pace-progress{z-index:10000;top:44px;height:2px}.pace .pace-activity{top:48px;right:22px;border-radius:10px!important}.page-container{margin:0;padding:0;position:relative}.page-container:after,.page-container:before{content:" ";display:table}.page-header-fixed .page-container{margin-top:46px}.page-footer-fixed.page-footer-fixed-mobile .page-container{margin-bottom:20px!important}@media (min-width:992px){.page-footer-fixed .page-container{margin-bottom:20px!important}}@media (max-width:991px){.page-container{margin:0!important;padding:0!important}.page-header-fixed.page-header-fixed-mobile .page-container{margin-top:46px!important}}@media (max-width:480px){.page-header-fixed .pace .pace-progress{top:92px}.page-header-fixed .pace .pace-activity{top:188px;right:15px}.page-header-fixed.page-header-fixed-mobile .page-container{margin-top:92px!important}}.ie8 .page-sidebar{width:235px;float:left;position:relative;margin-right:-100%}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover.navbar-collapse,.page-sidebar.navbar-collapse{padding:0;box-shadow:none}.page-sidebar .page-sidebar-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu{list-style:none;margin:0;padding:0}.page-sidebar .page-sidebar-menu>li,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li{display:block;margin:0;padding:0;border:0}.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper{border:0!important}.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-search-wrapper:before,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar .page-sidebar-menu>li.sidebar-toggler-wrapper:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-search-wrapper:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:after,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.sidebar-toggler-wrapper:before{content:" ";display:table}.page-sidebar .page-sidebar-menu>li.start>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.start>a{border-top-color:transparent!important}.page-sidebar .page-sidebar-menu>li.last>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.last>a{border-bottom-color:transparent!important}.page-sidebar .page-sidebar-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{display:block;position:relative;margin:0;border:0;padding:10px 15px;text-decoration:none;font-size:14px;font-weight:300}.page-sidebar .page-sidebar-menu>li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i{font-size:16px;margin-right:5px;text-shadow:none}.page-sidebar .page-sidebar-menu>li>a>i.glyphicon,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>i.glyphicon{top:3px;margin-left:1px;margin-right:4px}.page-sidebar .page-sidebar-menu>li>a>[class^=icon-],.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a>[class^=icon-]{top:2px;margin-left:1px;margin-right:4px}.page-sidebar-fixed .page-sidebar .page-sidebar-menu>li>a,.page-sidebar-fixed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{transition:all .2s ease}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar .page-sidebar-menu>li>a,.page-sidebar-reversed.page-sidebar-fixed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li>a{transition:none}.page-sidebar .page-sidebar-menu>li.heading,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading{padding:15px}.page-sidebar .page-sidebar-menu>li.heading>h3,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading>h3{margin:0;padding:0;font-size:14px;font-weight:300}.page-sidebar .page-sidebar-menu>li.heading+li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.heading+li>a{border-top:0}.page-sidebar .page-sidebar-menu>li.open>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.open>a{font-size:14px}.page-sidebar .page-sidebar-menu>li.active>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a{border:none;text-shadow:none;font-size:14px}.page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{display:block;float:right;position:absolute;right:0;top:8px;background:0 0;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-right:12px solid #fff}.page-sidebar-reversed .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{right:auto;left:0;border-right:0;border-left:8px solid #fff}.page-container-bg-solid .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-container-bg-solid .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{border-color:transparent #F1F3FA transparent transparent}.page-container-bg-solid.page-sidebar-reversed .page-sidebar .page-sidebar-menu>li.active>a>.selected,.page-container-bg-solid.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu>li.active>a>.selected{border-color:transparent transparent transparent #F1F3FA}.page-sidebar .page-sidebar-menu li>a>.arrow:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow:before{float:right;width:10px;text-align:center;margin-top:-1px;margin-right:5px;margin-left:5px;display:inline;font-size:16px;font-family:FontAwesome;height:auto;content:"\f104";font-weight:300;text-shadow:none}.page-sidebar .page-sidebar-menu li>a>.arrow.open:before,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.arrow.open:before{content:"\f107"}.page-sidebar .page-sidebar-menu li>a>.badge,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li>a>.badge{float:right;margin-top:1px;margin-right:0}.page-sidebar .page-sidebar-menu .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu{list-style:none;display:none;padding:0;margin:8px 0}.page-sidebar .page-sidebar-menu .sub-menu li,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li{background:0 0;margin:0;padding:0;margin-top:1px!important}.page-sidebar .page-sidebar-menu .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a{display:block;margin:0;padding:6px 15px 6px 43px;text-decoration:none;font-size:14px;font-weight:300;background:0 0}.page-sidebar .page-sidebar-menu .sub-menu li>a>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>a>i{font-size:14px}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu{margin:0}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>a{padding-left:60px}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu{margin:0}.page-sidebar .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .sub-menu li>.sub-menu>li>.sub-menu>li>a{padding-left:80px}.page-sidebar .page-sidebar-menu li.active>.sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu li.active>.sub-menu{display:block}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a{border:0;margin:0;padding-left:11px;border-left:4px solid transparent}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu{margin:0;padding:1px 0}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li>a,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li>a{padding-top:8px;padding-bottom:8px}.page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li .sub-menu li:first-child{margin-top:0!important}.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light>li>a,.page-sidebar-reversed .page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu.page-sidebar-menu-light>li>a{padding-left:15px;padding-right:11px;border-left:0;border-right:4px solid transparent}.page-sidebar .sidebar-toggler,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler{display:block;cursor:pointer;opacity:.7;filter:alpha(opacity=70);width:30px;height:27px;margin-top:15px;margin-right:19px;float:right;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-toggler:hover,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-toggler:hover{filter:alpha(opacity=100);opacity:1}.page-sidebar .sidebar-search,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search{padding:0;margin:22px 18px}.page-sidebar .sidebar-search .remove,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove{display:none}.page-sidebar .sidebar-search .remove>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .remove>i{font-size:16px}.page-sidebar .sidebar-search .input-group,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-search .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .form-control{border:0;font-size:14px;padding:0;height:auto;line-height:auto;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar .sidebar-search .input-group .input-group-btn .btn,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn{padding:2px 0 0;background-color:transparent;background-repeat:no-repeat;background-position:100% 3px}.page-sidebar .sidebar-search .input-group .input-group-btn .btn>i,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search .input-group .input-group-btn .btn>i{font-size:15px}.page-sidebar .sidebar-search.sidebar-search-bordered,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered{margin:25px 18px}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group .form-control,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .form-control{font-size:13px;padding:6px 8px}.page-sidebar .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn,.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .sidebar-search.sidebar-search-bordered .input-group .input-group-btn .btn{margin-right:6px}@media (min-width:992px){.page-full-width .page-sidebar,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.open>.sub-menu,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>.sub-menu{display:none!important}.page-sidebar{width:235px;float:left;position:relative;margin-right:-100%}.page-sidebar.navbar-collapse{max-height:none!important}.page-sidebar-reversed .page-sidebar{float:right;margin-right:0;margin-left:-100%}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar{margin-left:-235px}.page-sidebar-reversed.page-sidebar-fixed .page-sidebar-wrapper{position:relative;float:right}.page-sidebar-fixed .page-sidebar{position:fixed!important;margin-left:0;top:46px}.page-sidebar-fixed .page-sidebar-menu>li.last{margin-bottom:15px!important}.page-sidebar-closed .page-sidebar,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed{width:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover{width:256px!important;position:relative!important;z-index:10000;display:block!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;-ms-border-radius:0 4px 0 0;-o-border-radius:0 4px 0 0;border-radius:0 4px 0 0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>i{margin-right:10px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.title{display:inline!important;padding-left:15px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.badge{display:block!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.selected{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover.heading{width:45px!important;box-shadow:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu{width:210px;position:absolute;z-index:2000;left:46px;margin-top:0;top:100%;display:block!important;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>a{padding-left:15px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>.sub-menu>li>a{padding-left:30px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>.sub-menu>li>.sub-menu>li>.sub-menu>li>a{padding-left:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.heading>h3{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper .sidebar-toggler{margin-right:8px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-search-wrapper:hover,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper:hover{width:45px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a{padding-left:11px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a .selected{right:-3px!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.arrow,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.badge,.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>a>.title{display:none!important}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-toggler{margin-left:3px;margin-right:3px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group{border-color:transparent;margin-left:-4px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .form-control{display:none}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search .input-group .input-group-btn .btn{display:block}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.sidebar-search-bordered .input-group{padding:5px 0 3px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open{height:39px;margin-top:14px;margin-bottom:14px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group{width:210px;position:relative;z-index:1;margin-left:24px;padding:0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .form-control{background:0 0;border:0;display:block;padding:8px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn{display:block;margin-right:8px;margin-top:1px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove{background-repeat:no-repeat;width:11px;height:11px;margin:9px -5px 9px -7px;display:block;float:left}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered{height:36px;margin-top:23px;margin-bottom:23px}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open.sidebar-search-bordered .input-group{padding:0}.page-sidebar-closed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li>a{padding-right:11px;padding-left:7px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar{margin-left:-45px;width:45px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li>.sub-menu{left:auto;right:46px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover{margin-left:-211px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a{-webkit-border-radius:4px 0 0;-moz-border-radius:4px 0 0;-ms-border-radius:4px 0 0 0;-o-border-radius:4px 0 0;border-radius:4px 0 0}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>.title{padding-left:0;padding-right:15px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li:hover>a>i{margin-right:0;margin-left:2px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-search-wrapper:hover,.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed>li.sidebar-toggler-wrapper:hover{margin-left:0}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group{margin-left:-227px}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .input-group .input-group-btn .btn{margin-right:10px!important}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-closed .sidebar-search.open .remove{margin:9px 4px 12px -16px!important;float:right!important}.page-sidebar-closed.page-sidebar-reversed .page-sidebar .page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-closed>li>a{padding-right:7px;padding-left:11px}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover{width:235px!important;display:absolute;z-index:10000}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu{width:235px!important}.page-sidebar-closed.page-sidebar-fixed .page-sidebar:hover .page-sidebar-menu .selected{display:none!important}.page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover{width:235px!important;display:absolute;z-index:10000;margin-left:-235px!important}.page-sidebar-closed.page-sidebar-fixed.page-sidebar-reversed .page-sidebar:hover .page-sidebar-menu{width:235px!important}.page-sidebar-closed.page-sidebar-hide .page-sidebar{display:none!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu{display:none;width:210px;z-index:2000;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-sidebar-menu.page-sidebar-menu-hover-submenu li .sub-menu>li>a{margin:3px}.page-sidebar-menu.page-sidebar-menu-hover-submenu li.active .sub-menu,.page-sidebar-menu.page-sidebar-menu-hover-submenu li.open .sub-menu{display:none!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu li a>.arrow{display:none}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow{display:block;float:right;position:absolute;right:0;margin-top:-20px;background:0 0;width:0;height:0;border-style:solid;border-top:12px double transparent;border-bottom:12px double transparent;border-left:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow:after,.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow:before{display:none}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>a>.arrow{right:auto;left:0;border-right:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu li:hover>.sub-menu{display:inline-block!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>a>.arrow{z-index:1;right:0;margin-top:-23px}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>a>.selected{display:none}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:235px;margin-top:-40px}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:-210px!important}.page-sidebar-closed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu{margin-left:0}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li>a{padding-left:15px}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu{margin-left:210px;margin-top:-38px!important}.page-sidebar-reversed .page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu{margin-left:-210px!important}.page-sidebar-menu.page-sidebar-menu-hover-submenu>li:hover>.sub-menu>li .sub-menu>li>a{padding-left:10px;padding-right:10px}.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover>.sub-menu,.page-sidebar-menu.page-sidebar-menu-light.page-sidebar-menu-hover-submenu li:hover>.sub-menu>li>.sub-menu{margin-top:-41px}}@media (max-width:991px){.page-sidebar,.page-sidebar.navbar-collapse.in{border-top:0!important;margin:20px}.page-sidebar .sidebar-toggler{display:none}.page-sidebar .selected,.page-sidebar.navbar-collapse.collapse{display:none!important}.page-sidebar.navbar-collapse{max-height:none}.page-sidebar.navbar-collapse.in{position:relative;overflow:hidden!important;overflow-y:auto!important;display:block!important}.page-sidebar.navbar-collapse.navbar-no-scroll{max-height:none!important}.page-sidebar .mega-menu-responsive-content{padding:10px 18px 10px 45px}.page-full-width .page-sidebar-menu{display:block}}@media (min-width:768px) and (max-width:991px){.page-sidebar .btn-navbar.collapsed .arrow{display:none}.page-sidebar .btn-navbar .arrow{position:absolute;right:25px;width:0;height:0;top:50px;border-bottom:15px solid #5f646b;border-left:15px solid transparent;border-right:15px solid transparent}}.page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle{padding:17px 10px 9px!important}.page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle i{top:0}.page-quick-sidebar-open .page-header .top-menu .dropdown-quick-sidebar-toggler>.dropdown-toggle i:before{content:"\e066"}.page-quick-sidebar-wrapper{transition:right .3s;z-index:9994;position:fixed;top:46px;bottom:0;right:-270px;width:270px;overflow:hidden}.page-quick-sidebar-wrapper.phonebar{top:0}.page-footer-fixed .page-quick-sidebar-wrapper{bottom:33px}.page-quick-sidebar-full-height .page-quick-sidebar-wrapper{top:0;bottom:0}.page-quick-sidebar-open .page-quick-sidebar-wrapper{transition:right .3s;right:0}.page-quick-sidebar-toggler{overflow:hidden;z-index:9994;display:none;width:28px;height:27px;position:fixed;top:19px;right:15px;text-align:center;padding-top:6px}.page-quick-sidebar-open .page-quick-sidebar-toggler{display:inline-block}.page-quick-sidebar-toggler>i{font-size:17px}@media (max-width:480px){.page-sidebar,.page-sidebar.in{margin:0 10px 10px!important}.page-header-fixed.page-header-fixed-mobile .page-sidebar,.page-header-fixed.page-header-fixed-mobile .page-sidebar.in{margin-top:10px!important}.page-quick-sidebar-wrapper{top:92px}.page-quick-sidebar-toggler{top:65px}}.page-content-wrapper,.page-footer,.page-header,.page-sidebar-wrapper{transition:margin .3s}.page-quick-sidebar-open.page-quick-sidebar-push-content .page-content-wrapper,.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{transition:margin-left .3s;margin-left:-270px}.page-quick-sidebar-open.page-quick-sidebar-push-content .page-footer{transition:margin-right .3s;margin-right:270px;margin-left:-270px}.page-sidebar-reversed.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{transition:margin-right .3s;margin-right:270px}.page-quick-sidebar-open.page-quick-sidebar-push-content.page-quick-sidebar-full-height .page-header{transition:margin-left .3s;margin-left:-270px}.page-quick-sidebar-open.page-quick-sidebar-push-content.page-footer-fixed:not(.page-quick-sidebar-full-height) .page-footer{margin-left:0;margin-right:0}.page-quick-sidebar-open.page-quick-sidebar-over-content-transparent .page-quick-sidebar-wrapper{opacity:.9;filter:alpha(opacity=90)}@media (max-width:991px){.page-quick-sidebar-open.page-quick-sidebar-push-content .page-sidebar-wrapper{display:none}}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified{margin:0;padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li{display:table-cell!important;width:1%!important}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a{padding:15px;border:0;height:46px;font-size:13px;text-transform:uppercase;-webkit-border-radius:0;-moz-border-radius:0;-ms-border-radius:0;-o-border-radius:0;border-radius:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a>.badge{position:absolute;top:12px;right:3px}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li>a:hover{border:0}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu{margin-top:8px;margin-right:20px}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:before{position:absolute;top:-7px;right:19px;display:inline-block!important;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,.2);content:''}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>li .dropdown-menu:after{position:absolute;top:-6px;right:20px;display:inline-block!important;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.page-quick-sidebar-wrapper .page-quick-sidebar .nav-justified>.tab-content{margin:0;padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .list-heading{font-size:16px;margin:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items{margin:0;padding:0;list-style:none}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li{margin:0;padding:10px;background:0 0;border-bottom-width:1px;border-bottom-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items>li:last-child{border-bottom:0}.page-quick-sidebar-wrapper .page-quick-sidebar .list-items.borderless li{border:0}.page-quick-sidebar-wrapper .page-quick-sidebar .inner-content{margin:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-list{position:absolute!important;width:270px!important;transition:margin .3s}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item{position:absolute!important;width:270px!important;transition:margin .3s;margin-left:270px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav{padding:0 10px 5px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list{vertical-align:middle;display:inline-block;font-size:14px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-item .page-quick-sidebar-nav .page-quick-sidebar-back-to-list>i{font-size:17px;line-height:17px;vertical-align:top;margin-right:3px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list{transition:margin .3s;margin-left:-270px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollBar,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-list .slimScrollRail{display:none!important}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-content-item-shown .page-quick-sidebar-item{transition:margin .3s;margin-left:0}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media{padding:12px 10px 11px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object{border-radius:50%!important;width:38.57px;opacity:.8;filter:alpha(opacity=80);float:left;margin-right:10px}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search{padding:0;margin:10px 22px}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .form-control{border:0;font-size:14px;padding:0;height:auto}.page-quick-sidebar-wrapper .page-quick-sidebar-chat .page-quick-sidebar-chat-users .quicksidebar-search .input-group .input-group-btn .btn{padding:2px 0 0;background-color:transparent;background-repeat:no-repeat;background-position:100% 3px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:after,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-object:before{content:" ";display:table}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover{cursor:pointer}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media:hover .media-object{opacity:1;filter:alpha(opacity=100)}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading{margin:5px 0 0;font-size:14px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-sub{font-size:11px;text-transform:uppercase}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-body .media-heading-small{font-size:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-users .media-list .media .media-status{margin-top:10px;right:10px;position:absolute;display:inline-block}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages{padding:0 10px;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post{transition:display .3s;padding:5px 0;margin:10px auto;font-size:12px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .body{display:block;word-wrap:break-word}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .avatar{width:38.57px;border-radius:50%!important}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .avatar{float:left;margin-right:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .avatar{float:right;margin-left:10px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .name{font-size:12px;font-weight:300}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .datetime{font-size:12px;font-weight:300;text-style:italic}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post .message{display:block;padding:5px;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message{text-align:left;margin-left:55px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.in .message .arrow{display:block;position:absolute;top:9px;left:-6px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right-width:6px;border-right-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message{margin-right:55px;text-align:right}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .message .arrow{display:block;position:absolute;top:9px;right:-6px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left-width:6px;border-left-style:solid}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .datetime,.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-messages .post.out .name{text-align:right}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form{padding:20px 10px 15px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-chat .page-quick-sidebar-chat-user .page-quick-sidebar-chat-user-form .input-group .form-control{font-size:13px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .label{margin-top:5px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-alerts .page-quick-sidebar-alerts-list .feeds li .desc{padding:0}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list{padding:10px 0;position:relative}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .bootstrap-switch{margin-top:-3px;float:right;border:0;min-width:59px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li .form-control{width:75px!important;padding:4px!important;float:right;border:0;margin-top:-4px}.page-quick-sidebar-wrapper .page-quick-sidebar .page-quick-sidebar-settings .page-quick-sidebar-settings-list .list-items li select.form-control{padding:4px 0!important}.page-title{padding:0;font-size:28px;letter-spacing:-1px;display:block;color:#666;margin:0 0 15px;font-weight:300;font-family:"Open Sans",sans-serif}.page-title small{font-size:14px;letter-spacing:0;font-weight:300;color:#888}.page-container-bg-solid .page-title{color:#666;margin-bottom:20px;margin-top:20px}.page-container-bg-solid .page-title small{color:#666}.page-bar{padding:0;background-color:#f7f7f7;margin-bottom:25px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.page-bar:after,.page-bar:before{content:" ";display:table}.page-bar .page-breadcrumb{display:inline-block;float:left;padding:8px;margin:0;list-style:none}.page-bar .page-breadcrumb>li{display:inline-block}.ie8 .page-bar .page-breadcrumb>li{margin-right:1px}.page-bar .page-breadcrumb>li>a,.page-bar .page-breadcrumb>li>span{color:#888;font-size:14px;text-shadow:none}.page-bar .page-breadcrumb>li>i{color:#aaa;font-size:14px;text-shadow:none}.page-bar .page-breadcrumb>li>i[class*=icon-],.page-bar .page-breadcrumb>li>i[class^=icon-]{color:gray}.page-bar .page-toolbar{display:inline-block;float:right;padding:0}.page-bar .page-toolbar .btn-fit-height{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;-ms-border-radius:0 4px 4px 0;-o-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;padding-top:8px;padding-bottom:8px}.page-container-bg-solid .page-bar{position:relative;padding:0 20px;background-color:#fff;margin:-25px -20px 0}.page-container-bg-solid .page-bar .page-breadcrumb{padding:11px 0}.page-container-bg-solid .page-bar .page-breadcrumb>li>a,.page-container-bg-solid .page-bar .page-breadcrumb>li>span{color:#888}.page-container-bg-solid .page-bar .page-breadcrumb>li>i{color:#aaa}.page-container-bg-solid .page-bar .page-breadcrumb>li>i[class*=icon-],.page-container-bg-solid .page-bar .page-breadcrumb>li>i[class^=icon-]{color:#8c8c8c}.page-container-bg-solid .page-bar .page-toolbar{padding:6px 0}.page-container-bg-solid .page-bar .page-toolbar .btn{margin-top:-2px}.page-container-bg-solid .page-bar .page-toolbar .btn.btn-sm{margin-top:0}.page-content{margin-top:0;padding:0;background-color:#fff}.page-container-bg-solid .page-content{background:#F1F3FA}.page-full-width .page-content{margin-left:0!important}@media (min-width:992px){.page-content-wrapper{float:left;width:100%}.page-content-wrapper .page-content{margin-left:235px;margin-top:0;min-height:600px;padding:25px 20px 10px}.page-content-wrapper .page-content.no-min-height{min-height:auto}.page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content{margin-left:45px}.page-sidebar-reversed .page-content-wrapper .page-content{margin-left:0!important;margin-right:235px!important}.page-sidebar-reversed.page-sidebar-fixed.page-sidebar-hover-on .page-content-wrapper .page-content{margin-left:0;margin-right:45px}.page-sidebar-reversed.page-sidebar-closed .page-content-wrapper .page-content{margin-left:0!important;margin-right:45px!important}.page-sidebar-closed .page-content-wrapper .page-content{margin-left:45px!important}.page-full-width .page-content-wrapper .page-content,.page-sidebar-closed.page-sidebar-hide .page-content-wrapper .page-content{margin-left:0!important}.page-sidebar-closed.page-sidebar-reversed.page-sidebar-hide .page-content-wrapper .page-content{margin-right:0!important}}@media (max-width:991px){.page-container-bg-solid .page-bar{margin-top:-20px}.page-boxed>.container{max-width:none!important;margin:0!important;padding:0!important}.page-content-wrapper .page-content{margin:0!important;padding:20px!important;min-height:280px}}@media (min-width:768px) and (max-width:991px){.page-boxed>.container{margin:auto!important}}@media (max-width:767px){.page-content-wrapper .page-content{padding:20px 10px 10px!important;overflow:hidden}.page-content-wrapper .page-content .page-title{margin-bottom:20px;font-size:18px}.page-content-wrapper .page-content .page-title small{font-size:13px;padding-top:3px}}@media (max-width:480px){.page-content-wrapper .page-content .page-title small{display:block;clear:both}}.page-footer{padding:8px 20px 5px;font-size:12px;height:33px}.page-footer:after,.page-footer:before{content:" ";display:table}.page-footer .page-footer-inner{float:left;display:inline-block}.page-footer-fixed.page-footer-fixed-mobile .page-footer{position:fixed;left:0;right:0;z-index:10000;bottom:0}.page-footer-fixed.page-footer-fixed-mobile.page-sidebar-fixed .page-footer{margin-left:0!important}@media (min-width:992px){.page-footer{clear:left}.page-footer-fixed .page-footer{position:fixed;left:0;right:0;z-index:10000;bottom:0}.page-sidebar-fixed.page-sidebar-closed .page-footer{margin-left:45px}.page-sidebar-fixed.page-footer-fixed .page-footer{margin-left:0!important}.page-sidebar-fixed .page-footer{margin-left:235px;padding:8px 20px 5px}.page-boxed .page-footer{padding:8px 0 5px}.page-boxed.page-sidebar-fixed .page-footer{padding-right:20px;padding-left:20px}.page-sidebar-reversed.page-sidebar-fixed .page-footer{margin-left:0;margin-right:235px;padding:8px 20px 5px}.page-sidebar-reversed.page-sidebar-fixed.page-footer-fixed .page-footer{margin-left:0;margin-right:0}.page-sidebar-reversed.page-sidebar-fixed.page-sidebar-closed .page-footer{margin-right:45px}}.aside .aside-dialog .aside-footer:after,.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.container-fluid:after,.container:after,.dataTable,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after,.scroller-footer:after{clear:both}@media (max-width:991px){.page-boxed .page-footer{padding-left:0;padding-right:0}}@media (max-width:767px){.page-boxed .page-footer,.page-footer{padding-left:10px;padding-right:10px}.page-footer-fixed .page-footer .container{padding-left:0;padding-right:0}}.scroll-to-top{padding:1px;text-align:center;position:fixed;bottom:10px;z-index:10001;display:none;right:10px}.theme-panel>.toggler,.theme-panel>.toggler-close{padding:20px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;top:4px;cursor:pointer}.scroll-to-top>i{display:inline-block;color:#687991;font-size:30px;opacity:.6;filter:alpha(opacity=60)}.scroll-to-top:hover{cursor:pointer}.scroll-to-top:hover>i{opacity:1;filter:alpha(opacity=100)}@media (min-width:992px){.scroll-to-top{right:20px}}@media (max-width:991px){.scroll-to-top{bottom:10px;right:10px}.scroll-to-top>i{font-size:28px}}.theme-panel{width:420px;margin-top:-13px;margin-right:0;z-index:100;float:right;position:relative}.theme-panel>.toggler{right:0;position:absolute;background:url(../img/icon-color.png) center no-repeat #d5dade;border-radius:4px}.theme-panel>.toggler:hover{background-color:#3d3d3d!important}.theme-panel>.toggler-close{display:none;right:0;z-index:101;position:absolute;background:url(../img/icon-color-close.png) center no-repeat #3d3d3d!important;border-radius:4px}.theme-panel>.toggler-close:hover{background-color:#222!important}.theme-panel>.theme-options{top:4px;right:0;display:none;position:absolute;z-index:100;background:#3d3d3d;box-shadow:5px 5px rgba(61,61,61,.1);-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.modal-open .colorpicker,.modal-open .datepicker,.modal-open .daterangepicker,.modal-open .datetimepicker{z-index:10055!important}.theme-panel>.theme-options>.theme-option{color:#cfcfcf;padding:10px;border-top:1px solid #444;margin-top:0;margin-bottom:0}.theme-panel>.theme-options>.theme-option>span{text-transform:uppercase;display:inline-block;width:145px;font-size:13px;font-weight:300}.theme-panel>.theme-options>.theme-option>select.form-control{display:inline;width:135px;padding:2px;text-transform:lowercase}.theme-panel>.theme-options>.theme-option.theme-colors{border-top:0}.theme-panel>.theme-options>.theme-option.theme-colors>span{display:block;width:auto}.theme-panel>.theme-options>.theme-option.theme-colors>ul{list-style:none;padding:0;display:block;margin-bottom:10px!important;margin-top:15px}.colorpicker.dropdown-menu,.daterangepicker.dropdown-menu,.datetimepicker.dropdown-menu{padding:5px}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li{width:40px;height:40px;margin:0 4px;cursor:pointer;list-style:none;float:left;border:1px solid #707070}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li:first-child{margin-left:0}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.current,.theme-panel>.theme-options>.theme-option.theme-colors>ul>li:hover{border:2px solid #d64635}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-default{background:#333438}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-darkblue{background:#2b3643}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-blue{background:#2D5F8B}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-grey{background:#697380}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-light{background:#F9FAFD}.theme-panel>.theme-options>.theme-option.theme-colors>ul>li.color-light2{background:#F1F1F1}.page-container-bg-solid .theme-panel{position:absolute;margin-top:30px;margin-right:20px;right:0}.page-container-bg-solid .theme-panel>.toggler{background:url(../img/icon-color.png) center no-repeat #BFCAD1}.page-container-bg-solid.page-sidebar-reversed .theme-panel{margin-right:255px}.page-on-load{background:#fefefe}.datepicker .active,.datepicker .active:hover,.datepicker .selected,.datepicker .today{background-image:none!important;filter:none!important}.page-on-load .page-container,.page-on-load .page-footer,.page-on-load .page-header,.page-on-load>.clearfix{display:none;transition:all 2s}.input-group.color .input-group-btn i{position:absolute;display:block;cursor:pointer;width:20px;height:20px;right:6px}.datepaginator a{font-family:'Open Sans';font-size:13px;font-weight:300}.datepicker table td,.datepicker table th,.datetimepicker table td,.datetimepicker table th{font-family:'Open Sans'!important}#dp-calendar{right:4px!important}.datepaginator .fa-angle-right:before{content:"\f105"}.datepaginator .fa-angle-left:before{content:"\f104"}.datepicker.dropdown-menu{padding:5px;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #efefef}.datepicker .selected{background-color:#909090!important}.datepicker .active{background-color:#4b8df8!important}.datepicker .active:hover{background-color:#2678FC!important}.datepicker .input-daterange input{text-align:left}.datepicker table td{color:#000;font-weight:300!important}.datepicker table th{color:#333;font-weight:400!important}.daterangepicker{margin-top:4px}.daterangepicker td{text-shadow:none}.daterangepicker td.active{background-color:#4b8df8;background-image:none;filter:none}.datetimepicker .active,.datetimepicker .active:hover{filter:none!important;background-image:none!important}.daterangepicker th{font-weight:400;font-size:14px}.daterangepicker .ranges input[type=text]{width:70px!important;font-size:11px;vertical-align:middle}.daterangepicker .ranges label{font-weight:300;display:block}.daterangepicker .ranges .btn{margin-top:10px}.daterangepicker .ranges li{color:#333}.daterangepicker .ranges li.active,.daterangepicker .ranges li:hover{background:#4b8df8!important;border:1px solid #4b8df8!important;color:#fff}.daterangepicker .range_inputs input{margin-bottom:0!important}.daterangepicker .fa-angle-right:before{content:"\f105"}.daterangepicker .fa-angle-left:before,.datetimepicker .fa-angle-left:before{content:"\f104"}.datetimepicker table td{color:#000;font-weight:300!important}.datetimepicker table th{font-weight:400!important}.datetimepicker .active{background-color:#4b8df8!important}.datetimepicker .active:hover{background-color:#2678FC!important}.datetimepicker .fa-angle-right:before{content:"\f105"}.editable-input table,.editable-input table td,.editable-input table th,.editable-input table tr{border:0!important}.editable-input .combodate select{margin-bottom:5px}.fileinput{margin-bottom:0}.fileinput .close{float:none}.fileinput .input-group{white-space:nowrap;overflow:hidden}.md-input{padding:5px!important;border-bottom:0!important;-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.md-editor{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.md-editor .btn-toolbar{margin-left:0;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.md-editor .btn-toolbar .btn-group .btn-sm.btn{padding-bottom:3px}.md-editor .btn-toolbar .btn-group .btn-primary{padding-top:5px;padding-bottom:7px}.md-editor.active{border:1px solid #999;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important}.has-error .md-editor{border:1px solid #ebccd1!important}.has-success .md-editor{border:1px solid #d6e9c6!important}.has-warning .md-editor{border:1px solid #faebcc!important}.modal-open.page-overflow .modal-scrollable,.modal-open.page-overflow .page-container,.modal-open.page-overflow .page-container .navbar-fixed-bottom,.modal-open.page-overflow .page-container .navbar-fixed-top{overflow-y:auto!important}.modal-scrollable{overflow:hidden!important}.modal-backdrop{position:fixed}.bootstrap-select .btn{border-color:#e5e5e5}.has-error .bootstrap-select .btn{border-color:#ebccd1}.has-success .bootstrap-select .btn{border-color:#d6e9c6}.has-warning .bootstrap-select .btn{border-color:#faebcc}.bootstrap-select.open .btn,.bootstrap-select.open.dropup .btn{border-color:#999}.bootstrap-select .btn:focus{outline:0!important;outline-offset:0}.bootstrap-select.btn-group .dropdown-menu{margin-top:1px}.bootstrap-select.btn-group .dropdown-menu>li>dt>.text{font-weight:600;font-family:'Open Sans';font-size:14px}.bootstrap-select.btn-group .dropdown-menu .text-muted{color:#999!important}.bootstrap-select .caret{border:0;width:auto;height:auto;margin-top:-10px!important}.bootstrap-select .caret:before{content:"\f107";display:inline-block;border:0;font-family:FontAwesome;font-style:normal;font-weight:400}.form-wizard .steps>li>a.step>.desc,.form-wizard .steps>li>a.step>.number{display:inline-block;font-size:16px;font-weight:300}.bootstrap-select .selected i{color:#aaa}.bootstrap-select .dropdown-menu{z-index:9999!important}.bootstrap-switch{border-color:#e5e5e5}.bootstrap-switch.bootstrap-switch-focused{box-shadow:none;border-color:#e5e5e5}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background:#428bca}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-info,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-info{color:#fff;background:#89C4F4}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success{color:#fff;background:#45B6AF}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-warning,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-warning{color:#fff;background:#dfba49}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-danger,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-danger{color:#fff;background:#F3565D}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-default,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-default{color:#444;background:#ececec}.portlet>.portlet-title>.actions>.bootstrap-switch{border-color:transparent;margin-top:0}.bootstrap-timepicker-widget table td a{padding:4px 0}.bootstrap-timepicker-widget input,.bootstrap-timepicker-widget input:focus{outline:0!important;border:0}.modal-open .bootstrap-timepicker-widget{z-index:10055!important}.bootstrap-timepicker-widget.timepicker-orient-bottom:after,.bootstrap-timepicker-widget.timepicker-orient-bottom:before{top:auto}.toast{-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;background-color:#030303}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast .toast-close-button{display:inline-block;margin-top:0;margin-right:0;text-indent:-100000px;width:11px;height:16px;background-repeat:no-repeat!important;background-image:url(../../assets/images/portlet-remove-icon-white.png)!important}.form-wizard .steps,.form-wizard .steps>li>a.step{background-color:#fff;background-image:none;border:0;box-shadow:none;filter:none}.toast-top-center{top:12px;margin:0 auto 0 -150px;left:50%}.toast-bottom-center{bottom:12px;margin:0 auto 0 -150px;left:50%}.form-wizard .progress{margin-bottom:30px}.form-wizard .steps{padding:10px 0;margin-bottom:15px}.form-wizard .steps>li>a.step:hover{background:0 0}.form-wizard .steps>li>a.step>.number{background-color:#eee;text-align:center!important;padding:11px 15px 13px;margin-right:10px;height:45px;width:45px;-webkit-border-radius:50%!important;-moz-border-radius:50%!important;border-radius:50%!important}.form-wizard .steps>li>a.step>.desc>i{display:none}.form-wizard .steps>li.active>a.step .number{background-color:#45B6AF;color:#fff}.form-wizard .steps>li.active>a.step .desc{color:#333}.form-wizard .steps>li.done>a.step .number{background-color:#dfba49;color:#fff}.form-wizard .steps>li.done>a.step .desc{color:#333}.form-wizard .steps>li.done>a.step .desc i{font-size:12px;font-weight:400;color:#999;display:inline-block}@media (min-width:768px) and (max-width:1200px){.form-wizard .step .desc{margin-top:10px;display:block}}.wysihtml5-sandbox{width:100%!important}.wysihtml5-toolbar li{margin:0;height:29px}.wysihtml5-toolbar li .dropdown-menu{margin-top:5px}.has-error .wysihtml5-sandbox{border:1px solid #ebccd1!important}.has-success .wysihtml5-sandbox{border:1px solid #d6e9c6!important}.has-warning .wysihtml5-sandbox{border:1px solid #faebcc!important}.note-editor{border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.note-editor .note-toolbar{border-bottom:1px solid #e5e5e5;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.note-editor .note-statusbar{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.note-editor .note-statusbar .note-resizebar{border-top:1px solid #e5e5e5}.note-editor.fullscreen{z-index:11000;width:100%!important}.note-editor .dropdown-menu:before{left:9px;right:auto}.note-editor .dropdown-menu:after{left:10px;right:auto}.note-link-dialog .checkbox{margin-left:20px}.has-error .note-editor{border:1px solid #ebccd1!important}.has-success .note-editor{border:1px solid #d6e9c6!important}.has-warning .note-editor{border:1px solid #faebcc!important}.bootbox .bootbox-close-button{margin-top:0!important}.cke{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.cke .cke-top{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.cke .cke-bottom{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.cke_bottom,.cke_dialog,.cke_dialog_footer,.cke_dialog_title,.cke_inner,.cke_reset,.cke_top{background-image:none!important;filter:none;border-top:0;border-bottom:0;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;text-shadow:none}.cke_dialog_tab,.cke_dialog_ui_button,.cke_dialog_ui_input_text{filter:none;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;background-image:none!important}.cke_dialog_tab,.cke_dialog_ui_button{box-shadow:none!important;text-shadow:none!important}.cke_dialog_tab:hover,.cke_dialog_ui_button:hover{text-decoration:none;text-shadow:none}.cke_dialog_ui_input_text{box-shadow:none!important}.cke_button,.cke_combo_button,.cke_toolbar,.cke_toolgroup{background-image:none!important;filter:none!important;border:0;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important}.cke_button,.cke_combo_button,.cke_hc.cke_panel_listItem a,.cke_panel_grouptitle{background-image:none!important;filter:none;text-shadow:none}.cke_button:hover,.cke_combo_button:hover{background-color:#ddd}.cke_toolbar_break{background-image:none!important;filter:none!important;border:0;box-shadow:none!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;-ms-box-shadow:none!important;-o-box-shadow:none!important}.has-error .cke{border:1px solid #ebccd1!important}.has-success .cke{border:1px solid #d6e9c6!important}.has-warning .cke{border:1px solid #faebcc!important}.modal-open .clockface{z-index:10055!important}.clockface .cell .inner.active,.clockface .cell .outer.active{background-color:#4b8df8!important;background-image:none;filter:none}.dataTable{width:100%;margin-top:5px}.dataTables_filter .form-control{margin-left:4px}.dataTables_filter label{line-height:32px}.dataTable .row-details{margin-top:3px;display:inline-block;cursor:pointer;width:14px;height:14px}.dataTable .row-details.row-details-close{background:url(../img/datatable-row-openclose.png) no-repeat}.dataTable .row-details.row-details-open{background:url(../img/datatable-row-openclose.png) 0 -23px no-repeat}.dataTable .details{background-color:#eee}.dataTable .details td,.dataTable .details th{padding:4px;background:0 0;border:0}.dataTable .details tr:hover td,.dataTable .details tr:hover th{background:0 0}.dataTable .details tr:nth-child(even) td,.dataTable .details tr:nth-child(even) th,.dataTable .details tr:nth-child(odd) td,.dataTable .details tr:nth-child(odd) th{background-color:#eee}.dataTable>thead>tr>th.sorting,.dataTable>thead>tr>th.sorting_asc,.dataTable>thead>tr>th.sorting_desc{padding-right:18px}.dataTable .table-checkbox{width:8px!important}@media (max-width:768px){.form-wizard .steps>li>a{text-align:left}.dataTables_wrapper .dataTables_filter .form-control,.dataTables_wrapper .dataTables_length .form-control{display:inline-block}.dataTables_wrapper .dataTables_info{top:17px}.dataTables_wrapper .dataTables_paginate{margin-top:-15px}}@media (max-width:480px){.dataTables_wrapper .dataTables_filter .form-control{width:175px!important}.dataTables_wrapper .dataTables_paginate{float:left;margin-top:20px}}.dataTables_processing{position:fixed;top:50%;left:50%;min-width:125px;margin-left:0;padding:7px;text-align:center;color:#333;font-size:13px;border:1px solid #ddd;background-color:#eee;vertical-align:middle;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.1);-moz-box-shadow:0 1px 8px rgba(0,0,0,.1);box-shadow:0 1px 8px rgba(0,0,0,.1)}.dataTables_processing span{line-height:15px;vertical-align:middle}.dataTables_empty{text-align:center}.tabletools-btn-group{margin:0 0 10px}.tabletools-btn-group>.btn{margin-right:5px}.tabletools-btn-group>.btn:last-child{margin-right:0}.tabletools-dropdown-on-portlet{margin-top:-55px;float:right}.tabletools-dropdown-on-portlet>.btn{margin-right:5px}.tabletools-dropdown-on-portlet>.btn:last-child{margin-right:0}.DTTT_Print{background-color:#fff}.DTTT_Print .DTTT_PrintMessage{display:none}@media print{.DTTT_Print .DTTT_PrintMessage{display:inline-block}}.DTTT_Print .DTTT_Print_Info{display:block;position:fixed;top:35px;font-size:18px;width:700px;left:50%;margin-left:-350px;text-align:center}.DTTT_Print .page-footer,.DTTT_Print .page-header,.DTTT_Print .page-sidebar{display:none}.DTTT_Print .page-content-wrapper{float:none}.DTTT_Print .row,.DTTT_Print [class*=col-]{padding:0;margin:0}.DTTT_Print .page-content{margin:50px auto!important;border:0!important;width:800px!important;padding:0!important}.DTTT_Print .page-content .portlet{border:0;padding:0}.DTTT_Print .page-content .portlet .portlet-body{padding:0}.DTTT_Print .page-content .dataTables_wrapper{padding:0;margin:0;box-shadow:5px 5px rgba(102,102,102,.1)}@media print{.DTTT_Print .page-content .dataTables_wrapper{box-shadow:none}}.paging_bootstrap_extended{margin:0!important;padding:0!important;float:none!important;font-size:13px}.dataTables_extended_wrapper .seperator{padding:0 2px}.dataTables_extended_wrapper div.dataTables_info,.dataTables_extended_wrapper div.dataTables_length,.dataTables_extended_wrapper div.dataTables_paginate{display:inline-block;float:none!important;padding:0!important;margin:0!important;position:static!important}@media (max-width:480px){.dataTables_extended_wrapper div.dataTables_info,.dataTables_extended_wrapper div.dataTables_length,.dataTables_extended_wrapper div.dataTables_paginate{display:block;margin-bottom:10px!important}.dataTables_extended_wrapper .seperator{display:none!important}}.dataTables_extended_wrapper div.dataTables_length label{margin:0!important;padding:0!important;font-size:13px;float:none!important;display:inline-block!important}.table-container .table-actions-wrapper{display:none}.dataTables_scroll{margin-bottom:10px}.dataTables_scrollHead{border-bottom:2px solid #ddd!important}.dataTables_scrollHead thead th{border-bottom:0!important}.dataTables_scrollBody{border-bottom:1px solid #ddd!important}.dropzone{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.fancybox-overlay{z-index:100000}.fancybox-opened{z-index:100001}.spinner-buttons.btn-group-vertical .btn{text-align:center;margin:0;height:17px;width:22px;padding-left:6px;padding-right:6px;padding-top:0}.page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-up{border-radius:0;border-top-right-radius:4px!important}.page-style-rounded .spinner-buttons.btn-group-vertical .btn.spinner-down{border-radius:0 0 4px}.external-event{display:inline-block;cursor:move;margin-bottom:5px;margin-left:5px}.fc-scroller{overflow-y:auto;overflow-x:hidden}.fc-month-view .fc-scroller{height:auto!important}.portlet .event-form-title{font-size:14px;margin-top:4px;font-weight:400;margin-bottom:10px}.portlet.calendar .fc-button{box-shadow:none;text-shadow:none;border:0 #ddd;height:35px;padding:6px 8px 7px;margin-left:2px;background:0 0;color:#fff;top:-45px;outline:0!important;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;border-style:none solid}.portlet.calendar .fc-toolbar{margin-bottom:0}.portlet.calendar .fc-toolbar h2{margin-top:3px;font-size:17px}.portlet.calendar .fc-button .fc-icon-left-single-arrow,.portlet.calendar .fc-button .fc-icon-right-single-arrow{font-family:FontAwesome;font-size:16px}.portlet.calendar .fc-header{margin-bottom:-21px}.portlet.calendar .fc-button-prev{padding-right:10px;padding-left:8px}.portlet.calendar .fc-button-next{padding-right:8px;padding-left:10px}.portlet.calendar .fc-button.fc-state-active,.portlet.calendar .fc-button.fc-state-hover{color:#666;background-color:#fff}.portlet.calendar .fc-button.fc-state-disabled{color:#ddd}.portlet.calendar .fc-button .fc-icon-left-single-arrow:after{content:""}.portlet.calendar .fc-button .fc-icon-left-single-arrow:before{content:"\f104"}.portlet.calendar .fc-button .fc-icon-right-single-arrow:after{content:""}.portlet.calendar .fc-button .fc-icon-right-single-arrow:before{content:"\f105"}.portlet.calendar .fc-text-arrow{font-size:22px;font-family:"Courier New",Courier,monospace;vertical-align:baseline}.portlet.calendar .fc-event .fc-time,.portlet.calendar .fc-event .fc-title{text-align:left;color:#fff;font-size:13px;font-weight:300;float:left}.portlet.calendar .fc-event{border:0;background-color:#69a4e0;color:#fff}.portlet.calendar .fc-event .fc-content{border:0}.portlet.calendar .fc-header-title h2{font-size:14px;line-height:20px;font-weight:400;color:#111}.portlet.calendar .fc-widget-header{background-image:none;filter:none;background-color:#eee;text-transform:uppercase;font-weight:300}.portlet.calendar.light .fc-button{top:-60px;color:#666;text-transform:uppercase;font-size:12px;padding-bottom:35px}.portlet.calendar.light .fc-button .fc-text-arrow{margin-top:-6px;display:inline-block}.portlet.calendar.light .fc-button.fc-state-active,.portlet.calendar.light .fc-button.fc-state-hover{color:#333;border-bottom:2px solid #45B6AF}.portlet.calendar.light .fc-button.fc-state-disabled{color:#aaa}.portlet.calendar .mobile .fc-button{padding:0 6px 20px;margin-left:2px;border:0;background-color:#ddd;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;color:#000;text-shadow:none;text-align:center}.portlet.calendar .mobile .fc-button.fc-state-active,.portlet.calendar .mobile .fc-button.fc-state-hover{background-color:#eee}.portlet.calendar .mobile .fc-button.fc-state-disabled{color:#bbb}.portlet.calendar .mobile .fc-button-prev{margin-right:5px;margin-top:-2px}.portlet.calendar .mobile .fc-button-next{margin-right:0;margin-top:-2px}.portlet.calendar .mobile .fc-header-space{margin:0;padding:0;width:0}.portlet.calendar .mobile .fc-header-left{position:absolute;z-index:10}.portlet.calendar .mobile .fc-header-left .fc-button{top:-2px}.portlet.calendar .mobile .fc-header-right{position:relative;right:0}.portlet.calendar .mobile .fc-header-right .fc-button{top:35px}.portlet.calendar .mobile .fc-content{margin-top:53px}.gmaps{height:300px;width:100%}.gmaps img{max-width:none}#gmap_static div{background-repeat:no-repeat;background-position:50% 50%;display:block;height:300px}#gmap_routes_instructions{margin-top:10px;margin-bottom:0}#gritter-notice-wrapper{right:1px!important}.gritter-close{left:auto!important;right:3px!important}.gritter-title{font-family:"Open Sans";font-size:18px;font-weight:300}.easy-pie-chart .number{font-size:14px!important;position:relative;text-align:center;height:75px;line-height:75px}.easy-pie-chart .number canvas{position:absolute;top:0;left:0}.bs-example,.sparkline-chart,.vmaps{position:relative}.blueimp-gallery .close{background-image:url(../../assets/images/portlet-remove-icon-white.png)!important;margin-top:-2px}.blueimp-gallery .next,.blueimp-gallery .prev{border-radius:23px!important}.ms-container .ms-list{border:1px solid #e5e5e5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.ms-container .ms-optgroup-label{font-size:14px}.jquery-notific8-message,.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{font-size:13px}.ms-container .ms-list.ms-focus{border-color:#999;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.ms-container .ms-selectable li.ms-hover,.ms-container .ms-selection li.ms-hover{color:#333;background-color:#eee}.ms-container .form-control{margin-bottom:5px}[class*=jquery-notific8],[class*=jquery-notific8]:after,[class*=jquery-notific8]:before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.left .jquery-notific8-close-sticky span,.right .jquery-notific8-close-sticky span{font-size:10px}.jquery-notific8-heading{font-weight:300;font-size:16px}.password-strength .password-verdict{display:inline-block;margin-top:6px;margin-left:5px}.password-strength .progress{margin-top:5px;margin-bottom:0}.password-strength .progress-bar{padding:2px}.scroller{padding:0 12px 0 0;margin:0;overflow:hidden}.scroller-footer{margin-top:10px}.scroller-footer:after,.scroller-footer:before{content:" ";display:table}.portlet-body .slimScrollBar{margin-right:0}.jqstooltip{width:auto!important;height:auto!important}.easy-pie-chart,.sparkline-chart{text-align:center}.sparkline-chart{margin-top:15px}.easy-pie-chart .number{font-weight:300;width:85px;margin:0 auto}.sparkline-chart .number{width:100px;margin:0 auto 10px}.easy-pie-chart .title,.sparkline-chart .title{display:block;text-align:center;color:#333;font-weight:300;font-size:16px;margin-top:5px;margin-bottom:10px}.easy-pie-chart .title:hover,.sparkline-chart .title:hover{color:#666;text-decoration:none}.easy-pie-chart .title>i,.sparkline-chart .title>i{margin-top:5px}div.tagsinput{min-height:35px;height:auto!important;margin:0;padding:5px 5px 0;overflow:auto}div.tagsinput span.tag{background:#aaa;color:#fff;border:0;padding:3px 6px;margin-top:0;margin-bottom:5px}div.tagsinput input{padding:3px 6px;width:75px!important}div.tagsinput span.tag a{color:#fff}div.tagsinput .not_valid{color:#fff;padding:3px 6px;background-color:#e02222}.slider{border:0;padding:0;display:block;margin:12px 5px;min-height:11px}.vakata-context li a .vakata-contextmenu-sep,.vakata-context li a i,iframe[src="about:blank"]{display:none}.ui-slider-vertical{width:11px}.ui-slider-horizontal .ui-slider-handle{top:-3px}.ui-slider-vertical .ui-slider-handle{left:-3px}.bs-example+.highlight:after,.bs-example:after{left:15px;text-transform:uppercase;letter-spacing:1px}.ui-slider-handle,.ui-slider-vertical{filter:none!important;background-image:none!important}.jqvmap-zoomin,.jqvmap-zoomout{height:16px;width:16px;background-color:#666}.vmaps{overflow:hidden;height:300px}.jstree-default .jstree-clicked{border:0;background-color:#e1e1e1;box-shadow:none}.jstree-default .jstree-hovered{border:0;background-color:#eee;box-shadow:none}.jstree-default .jstree-wholerow-clicked,.jstree-wholerow .jstree-wholerow-clicked{background:#e1e1e1;border:0;box-shadow:none}.jstree-default .jstree-wholerow-hovered,.jstree-wholerow .jstree-wholerow-hovered{border:0;background-color:#eee;box-shadow:none}.jstree-icon.icon-lg{margin-top:1px}.jstree-open>.jstree-anchor>.fa-folder:before{margin-left:2px;content:"\f07c"}.jstree-default.jstree-rtl .jstree-last{background:no-repeat}.vakata-context,.vakata-context ul{padding:0;min-width:125px;background-color:#fff;font-size:14px;font-family:"Segoe UI",Helvetica,Arial,sans-serif;box-shadow:5px 5px rgba(102,102,102,.1);border:1px solid #efefef}.vakata-context li{border:0}.vakata-context li a{padding:0 10px;border:0}.vakata-context .vakata-context-hover>a,.vakata-context li a:hover{background-color:#eee;color:#333;box-shadow:none;margin:0}.vakata-context .vakata-context-hover>a .ins,.vakata-context .vakata-context-hover>a .span,.vakata-context li a:hover .ins,.vakata-context li a:hover .span{border:0!important}.vakata-context li a ins,.vakata-context li a span{display:none;border:0!important}.vakata-context .vakata-context-separator a,.vakata-context-rtl .vakata-context-separator a{margin:0;border:0}.jstree-rename-input{background-color:#fff!important;border:1px solid #e5e5e5!important;outline:0!important;padding:2px 6px!important;margin-right:-4px!important}.noUi-control{margin:9px 0}.noUi-primary .noUi-connect,.noUi-primary.noUi-connect{background:#428bca}.noUi-info .noUi-connect,.noUi-info.noUi-connect{background:#89C4F4}.noUi-success .noUi-connect,.noUi-success.noUi-connect{background:#45B6AF}.noUi-warning .noUi-connect,.noUi-warning.noUi-connect{background:#dfba49}.noUi-danger .noUi-connect,.noUi-danger.noUi-connect{background:#F3565D}.noUi-default .noUi-connect,.noUi-default.noUi-connect{background:#c6c6c6}.form-recaptcha-img{margin-bottom:10px;clear:both;border:1px solid #e5e5e5;padding:5px}.form-control .select2-choice{border:1px solid #e5e5e5;background-color:#fff;background-image:none;filter:none;height:34px;padding:3px 0 0 12px}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#e5e5e5;background-color:#fff;background-image:none;filter:none}.select2-drop{border:1px solid #e5e5e5;background-color:#fff;background-image:none;-webkit-box-shadow:none;box-shadow:none;filter:none;border-top:0}.select2-drop-auto-width{border-top:1px solid #e5e5e5}.select2-drop.select2-drop-above{border-top:1px solid #e5e5e5;-webkit-box-shadow:none;box-shadow:none}.select2-drop-active{border:1px solid #999;border-top:0}.select2-container .select2-choice .select2-arrow{background-image:none;background-color:#fff;filter:none;border-left:1px solid #e5e5e5}.select2-container.select2-container-active .select2-arrow,.select2-container.select2-dropdown-open .select2-arrow{border-left:0!important}.select2-container .select2-choice .select2-arrow b{background-position:0 1px}.select2-search input{background-color:#fff!important;filter:none;margin:5px 0 0;border:1px solid #e5e5e5;webkit-appearance:none!important;color:#333;outline:0;height:auto!important;min-height:26px;padding:6px!important;line-height:20px;font-size:14px;font-weight:400;vertical-align:top;-webkit-box-shadow:none;box-shadow:none}.form-control.select2-container{border:0;height:auto!important;padding:0}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #999!important;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-dropdown-open .select2-choice{border-bottom:0!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #999!important;border-top:0!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-drop.select2-drop-above.select2-drop-active{border:1px solid #999!important;border-bottom:0!important}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}.select2-results{margin:5px 0}.select2-results .select2-highlighted{background:#eee;color:#333}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:0 0}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-selection-limit{padding:3px 7px 4px;background:#f4f4f4;display:list-item}.select2-container-multi,.select2-container-multi .select2-choices{-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.select2-container-multi.select2-dropdown-open,.select2-container-multi.select2-dropdown-open .select2-choices{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ms-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.select2-container-multi.select2-dropdown-open.select2-drop-above,.select2-container-multi.select2-dropdown-open.select2-drop-above .select2-choices{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.select2-container-multi .select2-choices{padding-left:6px;min-height:34px;border:1px solid #e5e5e5;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #999!important;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.select2-container-multi .select2-choices .select2-search-choice{padding:3px 5px 3px 18px;margin:5px 0 3px 5px;border:1px solid #e5e5e5;background-image:none;background-color:#fff;filter:none;-webkit-box-shadow:none!important;box-shadow:none!important}.has-warning .select2-container .select2-choice,.has-warning .select2-container .select2-choices,.has-warning .select2-container.select2-dropdown-open .select2-choice,.has-warning .select2-container.select2-dropdown-open .select2-choices{border-color:#faebcc}.has-warning .select2-container.select2-dropdown-open .select2-choice>span{color:#faebcc}.has-error .select2-container .select2-choice,.has-error .select2-container .select2-choices,.has-error .select2-container.select2-dropdown-open .select2-choice,.has-error .select2-container.select2-dropdown-open .select2-choices{border-color:#ebccd1}.has-error .select2-container.select2-dropdown-open .select2-choice>span{color:#ebccd1}.has-success .select2-container .select2-choice,.has-success .select2-container .select2-choices,.has-success .select2-container.select2-dropdown-open .select2-choice,.has-success .select2-container.select2-dropdown-open .select2-choices{border-color:#d6e9c6}.has-success .select2-container.select2-dropdown-open .select2-choice>span{color:#d6e9c6}.modal-open .select2-drop-mask{z-index:10051}.modal-open .select2-drop{z-index:10052}.modal-open .select2-search{z-index:10053}.form-control.input-lg .select2-choice{height:46px;padding:10px 16px}.select2-container.input-lg .select2-choice .select2-arrow b{background-position:0 7px}.form-control.input-sm .select2-choice{height:30px;padding:1px 10px 5px}.select2-container.input-sm .select2-choice .select2-arrow b{background-position:0 0}.checker{margin-top:-2px!important;margin-right:2px!important}.checker input,.radio input{outline:0!important}.alert,.aside:focus,.btn[bs-select],.timepicker.dropdown-menu button,[tabindex="-1"]{outline:0}div.checker.disabled span,div.checker.disabled.active span{background-position:-152px -260px}div.checker.disabled:hover,div.radio.disabled:hover{cursor:not-allowed}div.checker,div.radio{margin-right:0;margin-left:3px}.portlet-body-morris-fit{margin-right:-20px;margin-left:-20px;margin-bottom:-15px}.portlet-body-morris-fit>svg{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;-ms-border-radius:0 0 4px 4px;-o-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.morris-hover.morris-default-style .morris-hover-row-label{text-align:left;font-weight:400;font-size:15px;color:#7D8C9D;font-family:"Open Sans",sans-serif}.morris-hover.morris-default-style .morris-hover-point{text-align:left;font-size:14px;font-weight:400;font-family:"Open Sans",sans-serif}.icheck-list>label{display:block;margin-bottom:8px}.icheck-list>label:last-child{margin-bottom:0}.form-horizontal .icheck-inline{margin-top:8px}.icheck-inline>label{display:inline-block;margin-left:15px}.icheck-inline>label:first-child{margin-left:0}div[class*=icheckbox_],div[class*=iradio_]{margin-right:5px;top:-1px!important}.icheck-colors{padding:0;margin:0;list-style:none}.icheck-colors>li{padding:0;margin:4px;float:left;display:inline-block;height:20px;width:20px;background:#000;opacity:.6;filter:alpha(opacity=60)}.icheck-colors>li:first-child{margin-left:0}.icheck-colors>li:hover{opacity:1;filter:alpha(opacity=100);cursor:pointer}.icheck-colors>li.active{height:26px;margin-top:0;opacity:.6;filter:alpha(opacity=60)}.icheck-colors>li.red{background:#d54e21}.icheck-colors>li.green{background:#78a300}.icheck-colors>li.blue{background:#0e76a8}.icheck-colors>li.aero{background:#9cc2cb}.icheck-colors>li.grey{background:#73716e}.icheck-colors>li.orange{background:#f70}.icheck-colors>li.yellow{background:#fc0}.icheck-colors>li.pink{background:#ff66b5}.icheck-colors>li.purple{background:#6a5a8c}.ui-select-match-close{margin-top:5px!important;margin-left:5px!important}.modal.disabled{-webkit-animation:noop!important;animation:noop!important}.modal.disabled.am-fade-and-slide-top .modal-dialog{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.modal.disabled.am-fade-and-scale .modal-dialog,.tab-pane.am-fade{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:backwards}.modal.disabled.am-fade-and-slide-top.ng-enter .modal-dialog{visibility:hidden;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.modal.disabled.am-fade-and-slide-top.ng-enter-active .modal-dialog,.modal.disabled.am-fade-and-slide-top.ng-leave-active .modal-dialog{visibility:visible}.modal.disabled.am-fade-and-slide-top.ng-leave .modal-dialog{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop}.modal.disabled.am-fade-and-scale .modal-dialog{animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;animation-fill-mode:backwards;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.modal.disabled.am-fade-and-scale.ng-enter .modal-dialog{visibility:hidden;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.modal.disabled.am-fade-and-scale.ng-enter-active .modal-dialog,.modal.disabled.am-fade-and-scale.ng-leave-active .modal-dialog{visibility:visible}.modal.disabled.am-fade-and-scale.ng-leave .modal-dialog{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut}@-webkit-keyframes noop{from,to{opacity:1}}@keyframes noop{from,to{opacity:1}}.bs-example{padding:45px 15px 15px;margin:0 -15px 15px;background-color:#fafafa;box-shadow:inset 0 3px 6px rgba(0,0,0,.05);border-color:#e5e5e5 #eee #eee;border-style:solid;border-width:1px 0}.bs-example:after{content:"Example";position:absolute;top:15px;font-size:12px;font-weight:700;color:#bbb}.bs-example+.highlight{margin:-15px -15px 15px;border-radius:0;border-width:0 0 1px}@media (min-width:768px){.bs-example,.bs-example+.highlight{margin-left:0;margin-right:0;border-width:1px}.bs-example{background-color:#fff;border-color:#ddd;border-radius:4px 4px 0 0;box-shadow:none}.bs-example+.highlight{margin-top:-16px;border-bottom-left-radius:4px;border-bottom-right-radius:4px}}.bs-example .container{width:auto}.bs-example>.alert:last-child,.bs-example>.form-control:last-child,.bs-example>.jumbotron:last-child,.bs-example>.list-group:last-child,.bs-example>.navbar:last-child,.bs-example>.panel:last-child,.bs-example>.progress:last-child,.bs-example>.table-responsive:last-child>.table,.bs-example>.table:last-child,.bs-example>.well:last-child,.bs-example>blockquote:last-child,.bs-example>ol:last-child,.bs-example>p:last-child,.bs-example>ul:last-child{margin-bottom:0}.bs-example>p>.close{float:none}.bs-example .nav-tabs{margin-bottom:15px}.bs-footer{padding-top:40px;padding-bottom:30px;margin-top:100px;color:#787878;text-align:center;border-top:1px solid #e6e6e6}.bs-docs-nav .navbar-brand,.bs-masthead-links a{color:#fff}.bs-docs-nav,.bs-docs-nav .navbar-collapse{border-color:#a33f3e}.footer-links{margin:10px 0;padding-left:0}.footer-links li{display:inline;padding:0 2px}.footer-links li:first-child{padding-left:0}@media (min-width:768px){.bs-footer{text-align:left}.bs-footer p{margin-bottom:0}}.bs-masthead{position:relative;padding:30px 15px;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.15)}.bs-masthead h1{font-size:50px;line-height:1;color:#fff}.bs-masthead .btn-outline-inverse{margin:10px}.bs-masthead-links{margin-top:20px;margin-bottom:40px;padding:0 15px;list-style:none;text-align:center}.bs-masthead-links li{display:inline}.bs-masthead-links li+li{margin-left:20px}@media (min-width:768px){.bs-masthead{text-align:left;padding-top:140px;padding-bottom:140px}.bs-masthead h1{font-size:100px}.bs-masthead .lead{margin-right:25%;font-size:30px}.bs-masthead .btn-outline-inverse{width:auto;margin:20px 5px 20px 0;padding:18px 24px;font-size:21px}.bs-masthead-links{padding:0;text-align:left}}.bs-docs-nav{background-color:#b94846;box-shadow:0 1px 0 rgba(255,255,255,.1);text-shadow:0 -1px 0 rgba(0,0,0,.15)}.bs-docs-nav .navbar-nav>li>a{-webkit-transition:color .15s linear;transition:color .15s linear;color:#f9f1f1}.bs-docs-nav .navbar-nav>li>a:hover{color:#fff}.bs-docs-nav .navbar-nav>.active>a,.bs-docs-nav .navbar-nav>.active>a:hover{background-color:#a33f3e;color:#fff}.bs-docs-nav .navbar-toggle{border-color:#b94846}.bs-docs-nav .navbar-toggle:hover{border-color:#a33f3e;background-color:#a33f3e}.bs-old-docs{padding:15px 20px;color:#787878;background-color:#fafafa;border-top:1px solid #fff;border-bottom:1px solid #e6e6e6}.bs-old-docs strong{color:#545454}@media (max-width:991px){.navbar-toggle{margin-left:15px;display:block!important;float:left}.bs-sidebar.affix{position:static!important}}.bs-header .container,.select.dropdown-menu.select-multiple li{position:relative}.bs-sidenav{margin-top:40px;margin-bottom:20px;width:124px}.bs-sidebar .nav>li>a{display:block;font-size:13px;font-weight:500;color:#999;padding:4px 15px;text-align:right}.bs-sidebar .nav>li>a:focus,.bs-sidebar .nav>li>a:hover{padding-right:14px;color:#b94846;text-decoration:none;background-color:transparent;border-right:1px solid #b94846}.bs-sidebar .nav>.active:focus>a,.bs-sidebar .nav>.active:hover>a,.bs-sidebar .nav>.active>a{padding-right:13px;font-weight:700;color:#b94846;background-color:transparent;border-right:2px solid #b94846}.bs-sidebar .nav .nav{display:none;padding-bottom:10px}.bs-sidebar .nav .nav>li>a{padding-top:2px;padding-bottom:2px;padding-right:30px;font-size:12px;font-weight:400}.bs-sidebar .nav .nav>li>a:focus,.bs-sidebar .nav .nav>li>a:hover{padding-right:29px}.bs-sidebar .nav .nav>.active:focus>a,.bs-sidebar .nav .nav>.active:hover>a,.bs-sidebar .nav .nav>.active>a{font-weight:500;padding-right:28px}@media (min-width:992px){.bs-sidebar .nav>.active>ul{display:block}.bs-sidebar.affix .bs-sidenav,.bs-sidebar.affix-bottom .bs-sidenav{margin-top:0;margin-bottom:0}}h1[id],h2[id]{margin-top:-45px}@media (min-width:1200px){.bs-sidebar{margin-right:30px}}.am-fade.aside-backdrop,.am-fade.modal-backdrop{background-color:rgba(0,0,0,.5)}.bs-docs-aside{min-width:200px}h1[id]{padding-top:80px}h2[id]{padding-top:60px}.bs-header{padding:30px 15px 40px;font-size:16px;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.15)}.bs-header h1{color:#fff}.bs-header p{font-weight:300;line-height:1.5}@media (min-width:768px){.bs-header{font-size:21px;text-align:left}.bs-header h1{font-size:60px;line-height:1}}@media (min-width:992px){.bs-header h1,.bs-header p{margin-right:300px}}.highlight{display:none;padding:9px 14px;margin-bottom:14px;background-color:#f6f6f8;border:1px solid #e2e2e9;border-radius:4px}.highlight pre{padding:0;margin-top:0;margin-bottom:0;background-color:transparent;border:0;white-space:nowrap}.highlight pre code{font-size:inherit;color:#333}.highlight pre .lineno{display:inline-block;width:22px;padding-right:5px;margin-right:10px;text-align:right;color:#bebec5}@media (min-width:481px){.highlight{display:block}}input.ng-dirty.ng-invalid,select.ng-dirty.ng-invalid,textarea.ng-dirty.ng-invalid{color:#b94a48;border-color:#ee5f5b}input.ng-dirty.ng-invalid:focus,select.ng-dirty.ng-invalid:focus,textarea.ng-dirty.ng-invalid:focus{border-color:#e9322d;box-shadow:0 0 6px #f8b9b7}input:focus.ng-pristine.ng-invalid,select:focus.ng-pristine.ng-invalid,textarea:focus.ng-pristine.ng-invalid{color:#555;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}input:focus.ng-pristine.ng-invalid:focus,select:focus.ng-pristine.ng-invalid:focus,textarea:focus.ng-pristine.ng-invalid:focus{border-color:rgba(82,168,236,.8);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}body .modal{overflow-y:hidden}body.modal-open{overflow-y:visible!important}.lt-ie9 .bs-sidebar{display:none!important}.modal-backdrop{z-index:1040;bottom:0}.select.dropdown-menu.select-multiple li>i{color:#fff;display:none;position:absolute;top:5px;right:10px}.bs-example+.highlight,body{position:relative}.alert.bottom-right,.alert.top,.alert.top-right{right:0}.select.dropdown-menu.select-multiple li.active>i{display:block}body{padding-top:50px}.bs-example-scope{font-size:85%}.bs-example-scope+.bs-example{margin:-15px -15px 15px}.bs-example-scope+.bs-example+.highlight>pre{border-radius:0 0 4px 4px}.aside.bs-docs-aside .aside-header{background:#b94846}.aside.bs-docs-aside .nav{margin:0}.bs-docs-social{max-height:200px}.bs-docs-social ul{list-style:none;padding:1em 0 0}.bs-docs-social ul li{height:30px}@media (max-width:991px){.bs-docs-social ul li{display:inline-block}}.bs-docs-home,.bs-header{color:#fff;background:url(../assets/images/triangular-red.png) #b94846;padding-bottom:20px}pre>code{background:0 0}.bs-example+.highlight code{padding:2.5em .5em 1em}.alert.bottom-right .close,.alert.top-right .close{padding-left:10px}.alert.bottom-left .close,.alert.top-left .close{padding-right:10px}.bs-example+.highlight:after{content:"Source";position:absolute;top:15px;font-size:12px;font-weight:700;color:#bbb}.edit-plunkr,.panel-heading[role=tab] .panel-title a,a[ng-click],input[type=checkbox]{cursor:pointer}.twitter-follow-button{position:relative;top:5px;margin-left:10px}.tab-pane.am-fade{animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards;opacity:1}.am-collapse,.panel-collapse.am-collapse{-webkit-animation-duration:.3s;-webkit-animation-fill-mode:backwards;overflow:hidden}.panel-collapse.am-collapse{animation-duration:.3s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards}.am-collapse,.am-flip-x{-webkit-animation-timing-function:ease}.panel-collapse.am-collapse2{-webkit-transition:.3s ease max-height;transition:.3s ease max-height;max-height:100px;overflow:hidden}.panel-collapse.am-collapse2.in-remove{max-height:100px;display:block}.panel-collapse.am-collapse2.in-add{max-height:0}@-webkit-keyframes expand{from{max-height:0}to{max-height:100px}}@keyframes expand{from{max-height:0}to{max-height:100px}}@-webkit-keyframes collapse{from{max-height:100px}to{max-height:0}}@keyframes collapse{from{max-height:100px}to{max-height:0}}.am-collapse{animation-duration:.3s;animation-timing-function:ease;animation-fill-mode:backwards;opacity:1}.am-fade,.am-flip-x{-webkit-animation-fill-mode:backwards}.am-collapse.am-collapse-add,.am-collapse.ng-hide-remove,.am-collapse.ng-move{-webkit-animation-name:expand;animation-name:expand}.am-collapse.am-collapse-remove,.am-collapse.ng-hide{-webkit-animation-name:collapse;animation-name:collapse}.am-collapse.ng-enter{visibility:hidden;-webkit-animation-name:expand;animation-name:expand;-webkit-animation-play-state:paused;animation-play-state:paused}.am-collapse.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-collapse.ng-leave{-webkit-animation-name:collapse;animation-name:collapse;-webkit-animation-play-state:paused;animation-play-state:paused}.am-collapse.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes expand{from{max-height:0}to{max-height:500px}}@keyframes expand{from{max-height:0}to{max-height:500px}}@-webkit-keyframes collapse{from{max-height:500px}to{max-height:0}}@keyframes collapse{from{max-height:500px}to{max-height:0}}.panel-collapse.am-collapse.in-remove{-webkit-animation-name:collapse;animation-name:collapse;display:block}.panel-collapse.am-collapse.in-add{-webkit-animation-name:expand;animation-name:expand}.am-fade{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:linear;animation-timing-function:linear;animation-fill-mode:backwards;opacity:1}.am-fade.am-fade-add,.am-fade.ng-hide-remove,.am-fade.ng-move{-webkit-animation-name:fadeIn;animation-name:fadeIn}.am-fade.am-fade-remove,.am-fade.ng-hide{-webkit-animation-name:fadeOut;animation-name:fadeOut}.am-fade.ng-enter{visibility:hidden;-webkit-animation-name:fadeIn;animation-name:fadeIn;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade.ng-leave{-webkit-animation-name:fadeOut;animation-name:fadeOut;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}.tab-pane.am-fade.active-remove{display:none!important}.tab-pane.am-fade.active-add{-webkit-animation-name:fadeIn;animation-name:fadeIn}.aside-backdrop.am-fade,.modal-backdrop.am-fade{background:rgba(0,0,0,.5);-webkit-animation-duration:.15s;animation-duration:.15s}.aside-backdrop.am-fade.ng-leave,.modal-backdrop.am-fade.ng-leave{-webkit-animation-delay:.3s;animation-delay:.3s}.am-flip-x{-webkit-animation-duration:.4s;animation-duration:.4s;animation-timing-function:ease;animation-fill-mode:backwards}.am-flip-x-linear,.am-slide-top{-webkit-animation-fill-mode:backwards}.am-flip-x.am-flip-x-add,.am-flip-x.ng-hide-remove,.am-flip-x.ng-move{-webkit-animation-name:flipInXBounce;animation-name:flipInXBounce}.am-flip-x.am-flip-x-remove,.am-flip-x.ng-hide{-webkit-animation-name:flipOutX;animation-name:flipOutX}.am-flip-x.ng-enter{visibility:hidden;-webkit-animation-name:flipInXBounce;animation-name:flipInXBounce;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x.ng-leave{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x-linear{-webkit-animation-duration:.4s;animation-duration:.4s;-webkit-animation-timing-function:ease;animation-timing-function:ease;animation-fill-mode:backwards}.am-slide-right,.am-slide-top{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-flip-x-linear.am-flip-x-add,.am-flip-x-linear.ng-hide-remove,.am-flip-x-linear.ng-move{-webkit-animation-name:flipInX;animation-name:flipInX}.am-flip-x-linear.am-flip-x-remove,.am-flip-x-linear.ng-hide{-webkit-animation-name:flipOutX;animation-name:flipOutX}.am-flip-x-linear.ng-enter{visibility:hidden;-webkit-animation-name:flipInX;animation-name:flipInX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x-linear.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-flip-x-linear.ng-leave{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-animation-play-state:paused;animation-play-state:paused}.am-flip-x-linear.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes flipInX{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@keyframes flipInX{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@-webkit-keyframes flipInXBounce{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@keyframes flipInXBounce{from{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}to{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}}@-webkit-keyframes flipOutX{from{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}@keyframes flipOutX{from{opacity:1;-webkit-transform:perspective(400px) rotateX(0);transform:perspective(400px) rotateX(0)}to{opacity:0;-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg)}}.am-slide-top{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-slide-bottom,.am-slide-right{-webkit-animation-fill-mode:backwards}.am-slide-top.am-slide-top-add,.am-slide-top.ng-hide-remove,.am-slide-top.ng-move{-webkit-animation-name:slideFromTop;animation-name:slideFromTop}.am-slide-top.am-slide-top-remove,.am-slide-top.ng-hide{-webkit-animation-name:slideToTop;animation-name:slideToTop}.am-slide-top.ng-enter{visibility:hidden;-webkit-animation-name:slideFromTop;animation-name:slideFromTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-top.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-top.ng-leave{-webkit-animation-name:slideToTop;animation-name:slideToTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-top.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-right{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-slide-bottom,.am-slide-left{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-slide-right.am-slide-right-add,.am-slide-right.ng-hide-remove,.am-slide-right.ng-move{-webkit-animation-name:slideFromRight;animation-name:slideFromRight}.am-slide-right.am-slide-right-remove,.am-slide-right.ng-hide{-webkit-animation-name:slideToRight;animation-name:slideToRight}.am-slide-right.ng-enter{visibility:hidden;-webkit-animation-name:slideFromRight;animation-name:slideFromRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-right.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-right.ng-leave{-webkit-animation-name:slideToRight;animation-name:slideToRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-right.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-bottom{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-top,.am-slide-left{-webkit-animation-fill-mode:backwards}.am-slide-bottom.am-slide-bottom-add,.am-slide-bottom.ng-hide-remove,.am-slide-bottom.ng-move{-webkit-animation-name:slideFromBottom;animation-name:slideFromBottom}.am-slide-bottom.am-slide-bottom-remove,.am-slide-bottom.ng-hide{-webkit-animation-name:slideToBottom;animation-name:slideToBottom}.am-slide-bottom.ng-enter{visibility:hidden;-webkit-animation-name:slideFromBottom;animation-name:slideFromBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-bottom.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-bottom.ng-leave{-webkit-animation-name:slideToBottom;animation-name:slideToBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-bottom.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-slide-left{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-right,.am-fade-and-slide-top{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-slide-left.am-slide-left-add,.am-slide-left.ng-hide-remove,.am-slide-left.ng-move{-webkit-animation-name:slideFromLeft;animation-name:slideFromLeft}.am-slide-left.am-slide-left-remove,.am-slide-left.ng-hide{-webkit-animation-name:slideToLeft;animation-name:slideToLeft}.am-slide-left.ng-enter{visibility:hidden;-webkit-animation-name:slideFromLeft;animation-name:slideFromLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-left.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-slide-left.ng-leave{-webkit-animation-name:slideToLeft;animation-name:slideToLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-slide-left.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes slideFromTop{from{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideFromTop{from{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes slideToTop{to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes slideToTop{to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes slideFromRight{from{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideFromRight{from{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes slideToRight{to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slideToRight{to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes slideFromBottom{from{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideFromBottom{from{-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes slideToBottom{to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes slideToBottom{to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@-webkit-keyframes slideFromLeft{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideFromLeft{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@-webkit-keyframes slideToLeft{to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slideToLeft{to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.am-fade-and-slide-top{animation-duration:.3s;animation-timing-function:ease-in-out;animation-fill-mode:backwards}.am-fade-and-slide-top.am-fade-and-slide-top-add,.am-fade-and-slide-top.ng-hide-remove,.am-fade-and-slide-top.ng-move{-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop}.am-fade-and-slide-top.am-fade-and-slide-top-remove,.am-fade-and-slide-top.ng-hide{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop}.am-fade-and-slide-top.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromTop;animation-name:fadeAndSlideFromTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-top.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-top.ng-leave{-webkit-animation-name:fadeAndSlideToTop;animation-name:fadeAndSlideToTop;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-top.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-right{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-bottom,.am-fade-and-slide-left{-webkit-animation-duration:.3s;-webkit-animation-timing-function:ease-in-out}.am-fade-and-slide-right.am-fade-and-slide-right-add,.am-fade-and-slide-right.ng-hide-remove,.am-fade-and-slide-right.ng-move{-webkit-animation-name:fadeAndSlideFromRight;animation-name:fadeAndSlideFromRight}.am-fade-and-slide-right.am-fade-and-slide-right-remove,.am-fade-and-slide-right.ng-hide{-webkit-animation-name:fadeAndSlideToRight;animation-name:fadeAndSlideToRight}.am-fade-and-slide-right.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromRight;animation-name:fadeAndSlideFromRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-right.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-right.ng-leave{-webkit-animation-name:fadeAndSlideToRight;animation-name:fadeAndSlideToRight;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-right.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-bottom{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-bottom.am-fade-and-slide-bottom-add,.am-fade-and-slide-bottom.ng-hide-remove,.am-fade-and-slide-bottom.ng-move{-webkit-animation-name:fadeAndSlideFromBottom;animation-name:fadeAndSlideFromBottom}.am-fade-and-slide-bottom.am-fade-and-slide-bottom-remove,.am-fade-and-slide-bottom.ng-hide{-webkit-animation-name:fadeAndSlideToBottom;animation-name:fadeAndSlideToBottom}.am-fade-and-slide-bottom.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromBottom;animation-name:fadeAndSlideFromBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-bottom.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-bottom.ng-leave{-webkit-animation-name:fadeAndSlideToBottom;animation-name:fadeAndSlideToBottom;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-bottom.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-left{animation-duration:.3s;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-slide-left.am-fade-and-slide-left-add,.am-fade-and-slide-left.ng-hide-remove,.am-fade-and-slide-left.ng-move{-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;-webkit-animation-name:fadeAndSlideFromLeft;animation-name:fadeAndSlideFromLeft}.am-fade-and-slide-left.am-fade-and-slide-left-remove,.am-fade-and-slide-left.ng-hide{-webkit-animation-name:fadeAndSlideToLeft;animation-name:fadeAndSlideToLeft}.am-fade-and-slide-left.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndSlideFromLeft;animation-name:fadeAndSlideFromLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-left.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-slide-left.ng-leave{-webkit-animation-name:fadeAndSlideToLeft;animation-name:fadeAndSlideToLeft;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-slide-left.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeAndSlideFromTop{from{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}to{opacity:1}}@keyframes fadeAndSlideFromTop{from{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToTop{from{opacity:1}to{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}}@keyframes fadeAndSlideToTop{from{opacity:1}to{opacity:0;-webkit-transform:translateY(-20%);transform:translateY(-20%)}}@-webkit-keyframes fadeAndSlideFromRight{from{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}to{opacity:1}}@keyframes fadeAndSlideFromRight{from{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToRight{from{opacity:1}to{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}}@keyframes fadeAndSlideToRight{from{opacity:1}to{opacity:0;-webkit-transform:translateX(20%);transform:translateX(20%)}}@-webkit-keyframes fadeAndSlideFromBottom{from{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1}}@keyframes fadeAndSlideFromBottom{from{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToBottom{from{opacity:1}to{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}}@keyframes fadeAndSlideToBottom{from{opacity:1}to{opacity:0;-webkit-transform:translateY(20%);transform:translateY(20%)}}@-webkit-keyframes fadeAndSlideFromLeft{from{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}to{opacity:1}}@keyframes fadeAndSlideFromLeft{from{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}to{opacity:1}}@-webkit-keyframes fadeAndSlideToLeft{from{opacity:1}to{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}}@keyframes fadeAndSlideToLeft{from{opacity:1}to{opacity:0;-webkit-transform:translateX(-20%);transform:translateX(-20%)}}.am-fade-and-scale{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards}.am-fade-and-scale.am-fade-and-scale-add,.am-fade-and-scale.ng-enter,.am-fade-and-scale.ng-hide-remove,.am-fade-and-scale.ng-move{-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn}.am-fade-and-scale.am-fade-and-scale-remove,.am-fade-and-scale.ng-hide,.am-fade-and-scale.ng-leave{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut}.am-fade-and-scale.ng-enter{visibility:hidden;-webkit-animation-name:fadeAndScaleIn;animation-name:fadeAndScaleIn;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-scale.ng-enter.ng-enter-active{visibility:visible;-webkit-animation-play-state:running;animation-play-state:running}.am-fade-and-scale.ng-leave{-webkit-animation-name:fadeAndScaleOut;animation-name:fadeAndScaleOut;-webkit-animation-play-state:paused;animation-play-state:paused}.am-fade-and-scale.ng-leave.ng-leave-active{-webkit-animation-play-state:running;animation-play-state:running}@-webkit-keyframes fadeAndScaleIn{from{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1}}@keyframes fadeAndScaleIn{from{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}to{opacity:1}}@-webkit-keyframes fadeAndScaleOut{from{opacity:1}to{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}}@keyframes fadeAndScaleOut{from{opacity:1}to{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}}.alert.bottom,.alert.bottom-left,.alert.bottom-right,.alert.top,.alert.top-left,.alert.top-right{position:fixed;z-index:1050;margin:20px}.alert.top,.alert.top-left,.alert.top-right{top:50px}.alert.top{left:0}.alert.top-left{left:0}.alert.bottom,.alert.bottom-left,.alert.bottom-right{bottom:0}.alert.bottom{right:0;left:0}.alert.bottom-left{left:0}.aside .aside-dialog .aside-footer:after,.aside .aside-dialog .aside-footer:before,.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.aside{position:fixed;top:0;bottom:0;z-index:1049;overflow:auto;min-width:320px;background:#fff}@media (max-width:991px){.aside{min-width:240px}}.aside.left{right:auto;left:0}.aside.right{right:0;left:auto}.aside .aside-dialog .aside-header{border-bottom:1px solid #e5e5e5;min-height:16.43px;padding:6px 15px;background:#337ab7;color:#fff}.aside .aside-dialog .aside-header .close{margin-right:-8px;padding:4px 8px;color:#fff;font-size:25px;opacity:.8}.aside .aside-dialog .aside-body{position:relative;padding:15px}.aside .aside-dialog .aside-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.aside .aside-dialog .aside-footer .btn+.btn{margin-left:5px;margin-bottom:0}.aside .aside-dialog .aside-footer .btn-group .btn+.btn{margin-left:-1px}.aside .aside-dialog .aside-footer .btn-block+.btn-block{margin-left:0}.aside-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.aside-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.aside-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.datepicker.dropdown-menu{width:250px;height:270px}.datepicker.dropdown-menu button{outline:0;border:0}.datepicker.dropdown-menu tbody{height:180px}.datepicker.dropdown-menu tbody button{padding:6px}.datepicker.dropdown-menu.datepicker-mode-1 tbody button,.datepicker.dropdown-menu.datepicker-mode-2 tbody button{height:65px}.callout{margin:20px 0;padding:20px;border-left:3px solid #eee}.callout h4{margin-top:0;margin-bottom:5px}.popover.top-left,.popover.top-right{margin-top:-10px}.callout p:last-child{margin-bottom:0}.callout-danger{border-color:#eed3d7;background-color:#fdf7f7}.callout-danger h4{color:#b94a48}.callout-warning{border-color:#faebcc;background-color:#faf8f0}.callout-warning h4{color:#8a6d3b}.callout-info{border-color:#bce8f1;background-color:#f4f8fa}.callout-info h4{color:#34789a}.modal.center .modal-dialog{position:fixed;top:40%;left:50%;min-width:320px;max-width:630px;width:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.popover.top-left .arrow{margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px;left:10%}.popover.top-left .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.bottom-left,.popover.bottom-right{margin-top:10px}.popover.top-right .arrow{margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px;left:90%}.popover.top-right .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.bottom-left .arrow{margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px;left:10%}.popover.bottom-left .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.bottom-right .arrow{margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px;left:90%}.popover.bottom-right .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.timepicker.dropdown-menu{padding:0 4px}.timepicker.dropdown-menu button{border:0}.timepicker.dropdown-menu tbody button{padding:6px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-group-xs>.btn{font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px}.btn-group-xs>.btn{padding:1px 5px}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.tooltip.tooltip-info.top .tooltip-arrow,.tooltip.tooltip-info.top-left .tooltip-arrow,.tooltip.tooltip-info.top-right .tooltip-arrow{border-top-color:#d9edf7}.tooltip.tooltip-info.right .tooltip-arrow{border-right-color:#d9edf7}.tooltip.tooltip-info.bottom .tooltip-arrow,.tooltip.tooltip-info.bottom-left .tooltip-arrow,.tooltip.tooltip-info.bottom-right .tooltip-arrow{border-bottom-color:#d9edf7}.tooltip.tooltip-info.left .tooltip-arrow{border-left-color:#d9edf7}.tooltip.tooltip-info .tooltip-inner{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.tooltip.tooltip-info .tooltip-inner hr{border-top-color:#a6e1ec}.tooltip.tooltip-info .tooltip-inner .alert-link{color:#245269}.tooltip.tooltip-success.top .tooltip-arrow,.tooltip.tooltip-success.top-left .tooltip-arrow,.tooltip.tooltip-success.top-right .tooltip-arrow{border-top-color:#dff0d8}.tooltip.tooltip-success.right .tooltip-arrow{border-right-color:#dff0d8}.tooltip.tooltip-success.bottom .tooltip-arrow,.tooltip.tooltip-success.bottom-left .tooltip-arrow,.tooltip.tooltip-success.bottom-right .tooltip-arrow{border-bottom-color:#dff0d8}.tooltip.tooltip-success.left .tooltip-arrow{border-left-color:#dff0d8}.tooltip.tooltip-success .tooltip-inner{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.tooltip.tooltip-success .tooltip-inner hr{border-top-color:#c9e2b3}.tooltip.tooltip-success .tooltip-inner .alert-link{color:#2b542c}.tooltip.tooltip-danger.top .tooltip-arrow,.tooltip.tooltip-danger.top-left .tooltip-arrow,.tooltip.tooltip-danger.top-right .tooltip-arrow{border-top-color:#f2dede}.tooltip.tooltip-danger.right .tooltip-arrow{border-right-color:#f2dede}.tooltip.tooltip-danger.bottom .tooltip-arrow,.tooltip.tooltip-danger.bottom-left .tooltip-arrow,.tooltip.tooltip-danger.bottom-right .tooltip-arrow{border-bottom-color:#f2dede}.tooltip.tooltip-danger.left .tooltip-arrow{border-left-color:#f2dede}.tooltip.tooltip-danger .tooltip-inner{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.tooltip.tooltip-danger .tooltip-inner hr{border-top-color:#e4b9c0}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;border-width:5px 5px 0;border-top-color:#000;margin-left:-5px}.tooltip.tooltip-danger .tooltip-inner .alert-link{color:#843534}.tooltip.top-left{margin-top:-3px;padding:5px 0}.tooltip.top-left .tooltip-arrow{left:10%}.tooltip.top-right{margin-top:-3px;padding:5px 0}.tooltip.bottom-left,.tooltip.bottom-right{margin-top:3px;padding:5px 0}.tooltip.top-right .tooltip-arrow{left:90%}.tooltip.bottom-left .tooltip-arrow{top:0;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;left:10%}.tooltip.bottom-right .tooltip-arrow{top:0;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000;left:90%}
\ No newline at end of file
diff --git a/public/app/f18fc4d6.app.js b/public/app/f18fc4d6.app.js
new file mode 100644
index 0000000..f26adc8
--- /dev/null
+++ b/public/app/f18fc4d6.app.js
@@ -0,0 +1,46 @@
+"use strict";angular.module("xCallyShuttleApp",["adf","adf.structures.base","adf.widget.clock","adf.widget.iframe","adf.widget.counter","adf.widget.table","adf.widget.pie-chart","angular-md5","angular.filter","angularFileUpload","btford.socket-io","chart.js","checklist-model","colorpicker.module","frapontillo.bootstrap-switch","infinite-scroll","LocalStorageModule","mgo-angular-wizard","ng-slide-down","ngAnimate","ngCookies","ngCsv","ngMap","ngResource","ngSanitize","notification","oc.lazyLoad","pascalprecht.translate","pdf","remoteValidation","smart-table","sprintf","textAngular","toastr","ui-notification","ui.bootstrap.modal","ui.bootstrap.dropdown","ui.bootstrap.popover","ui.bootstrap.timepicker","ui.bootstrap.tooltip","ui.bootstrap.tpls","ui.router","ui.navbar","ui.select","ui.sortable","xeditable","ngAudio","truncate","ngScrollbars","ngEmoticons"]).config(["$stateProvider","$urlRouterProvider","$locationProvider","$httpProvider","$translateProvider","localStorageServiceProvider","dashboardProvider","ScrollBarsProvider",function(a,b,c,d,e,f,g,h){b.otherwise("/login"),e.useStaticFilesLoader({prefix:"assets/languages/locale-",suffix:".json"}),e.preferredLanguage("en_EN"),e.useLocalStorage(),e.useSanitizeValueStrategy("sanitize"),c.html5Mode(!0),d.interceptors.push("authInterceptor"),g.structure("4-4-4",{rows:[{columns:[{styleClass:"col-md-4"},{styleClass:"col-md-4"},{styleClass:"col-md-4"}]}]}).structure("3-3-3-3",{rows:[{columns:[{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"},{styleClass:"col-md-3"}]}]}),f.setPrefix("xcally"),h.defaults={scrollButtons:{scrollAmount:"auto",enable:!0},axis:"y"}}]).factory("settings",["$rootScope",function(a){var b={layout:{pageSidebarClosed:!1,pageQuickSidebarOpened:!1,pageBodySolid:!1,pageAutoScrollOnLoad:1e3}};return a.settings=b,b}]).factory("authInterceptor",["$rootScope","$q","$cookieStore",function(a,b,c){return{request:function(a){return a.headers=a.headers||{},c.get("token")&&(a.headers.Authorization="Bearer "+c.get("token")),a}}}]).run(["$rootScope","$location","$state","$stateParams","$window","$http","Auth","editableThemes","editableOptions",function(a,b,c,d,e,f,g,h,i){a.$state=c,a.$stateParams=d,h.bs3.inputClass="input-sm",h.bs3.buttonsClass="btn-xs",i.theme="bs3",a.online=navigator.onLine,e.addEventListener("offline",function(){a.$apply(function(){a.online=!1})},!1),e.addEventListener("online",function(){a.$apply(function(){a.online=!0})},!1),a.$on("$stateChangeStart",function(a,c){g.isLoggedInAsync(function(a){c.authenticate&&!a&&b.path("/login")})}),a.updateTableConfig=function(a,b){var c=_.find(a,{name:"All"});c&&(c.value=b)}}]),angular.module("xCallyShuttleApp").factory("Agent",["$resource",function(a){return a("/api/agents/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents",{url:"/agents",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AgentListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.agents={checked:[]},a.check=function(b,c){c?a.agents.checked=angular.copy(_.pluck(a.displayedAgents,"id")):a.agents.checked=[]},a.getAgents=function(b){return _.map(a.displayedAgents,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("agent"),b.url="/api/agents",h.getPage(b).then(function(d){a.displayedAgents=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.agentsByPage,a.displayedAgents.length),c.updateTableConfig(a.conf.agentsByPage,a.displayedAgents.length)}),f.socket.on("agent:save",function(){a.initList(b)}),f.socket.on("agent:remove",function(c){a.agents.checked=_.without(a.agents.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/agents/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/agents",{params:{id:a.agents.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.list",{url:"/list",templateUrl:"app/agent/list/list.html",controller:"AgentListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("AgentViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","socket","FileUploader","Auth",function(a,b,c,d,e,f,g,h,i){a.Auth=i,a.updatePassword=function(){var f,g;i.isAdmin()?(f="/api/agents/password/"+e.id+"/reset",g={newPassword:a.agent.newPwd}):(f="/api/agents/password/",g={oldPassword:a.agent.currentPwd,newPassword:a.agent.newPwd}),b.put(f,g).success(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})};var j=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});j.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),j.onSuccessItem=function(b,e,f,g){a.agent.userpic=e.userpic,a.agent.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},j.onErrorItem=function(a,b,e,f){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},j.onCompleteAll=function(){j.clearQueue()},a.initView=function(){b.get("/api/agents/"+e.id).success(function(b){a.agent=b,a.agent.transport=a.agent.transport?a.agent.transport.split(","):[],a.agent.allow=a.agent.allow?a.agent.allow.split(";"):[]}).error(function(a){c.show(a.message,"danger")})},a.updateItem=function(){var f=angular.copy(a.agent),g=angular.copy(a.agent);delete f.password,delete f.md5secret,f.transport=f.transport.join(","),f.allow=f.allow.join(";"),b.put("/api/agents/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.agent=g,b.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.view",{url:"/view/:id",templateUrl:"app/agent/view/view.html",controller:"AgentViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.agents.view.account",{url:"/account",templateUrl:"app/agent/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("AgentWizardCtrl",["$scope","$http","xAlert","$location","WizardHandler","$translate",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"agent",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){b.post("/api/agents/validate/",a.item).success(function(a){console.log(a),a.length?c.show(f.instant("MESSAGE_EXIST_INTERNAL"),"danger"):e.wizard().next()}).error(function(a){c.show(f.instant(a.message),"danger")})},a.getFirstFreeInternal=function(){b.get("/api/settings/internal").success(function(b){a.item.internal=b.value}).error(function(a){c.show(f.instant(a.message),"danger")})},a.exitValidation=function(a){return a},a.createItem=function(){a.item.transport&&(a.item.transport=a.item.transport.join(",")),a.item.allow&&(a.item.allow=a.item.allow.join(";")),b.post("/api/agents/",a.item).success(function(){d.path("/agents/list")}).error(function(a){a.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.agents.wizard",{url:"/wizard",templateUrl:"app/agent/wizard/wizard.html",controller:"AgentWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("AutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={AutomationsByPage:{name:"10",value:10}},a.AutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.Automations={checked:[]},a.check=function(b,c){c?a.Automations.checked=angular.copy(_.pluck(a.displayedAutomations,"id")):a.Automations.checked=[]},a.getAutomations=function(b){return _.map(a.displayedAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("automation"),b.url="/api/automations",e.getPage(b).then(function(c){a.displayedAutomations=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.AutomationsByPage,a.displayedAutomations.length),d.updateTableConfig(a.conf.AutomationsByPage,a.displayedAutomations.length)}),g.socket.on("automation:save",function(){a.initList(b)}),g.socket.on("automation:remove",function(c){a.Automations.checked=_.without(a.Automations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/automations",{params:{id:a.Automations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/automations/"+a,{status:d}).success(function(a){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.list",{url:"/list",templateUrl:"app/automation/list/list.html",controller:"AutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("AutomationViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","automations",function(a,b,c,d,e,f){a.$automations=f,a.forms={info:{}},a.fields={},a.properties=f.properties,a.initView=function(){c.get("/api/automations/"+b.id).success(function(b){a.automation=b,a.conditionsFilter=JSON.parse(b.conditions),a.actionsFilter=JSON.parse(b.actions),a.fields.conditions=a.$automations.automations[b.channel].conditions,a.fields.actions=a.$automations.automations[b.channel].actions}).error(function(a){e.show(a.message,"danger")})},a.updateAutomation=function(){c.put("/api/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description,conditions:angular.toJson(a.conditionsFilter),actions:angular.toJson(a.actionsFilter)}).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.view",{url:"/view/:id",templateUrl:"app/automation/view/view.html",controller:"AutomationViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.automations.view.settings",{url:"/settings",templateUrl:"app/automation/view/view.settings.html"}).state("main.automations.view.routes",{url:"/routes",templateUrl:"app/automation/view/view.routes.html"}).state("main.automations.view.application",{url:"/application",templateUrl:"app/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("AutomationWizardCtrl",["$scope","$http","$location","xAlert","automations","WizardHandler",function(a,b,c,d,e,f){a.$automations=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={},a.fields={},a.properties=e.properties,a.forms={general:{}};var g={group:{"boolean":"AND",rules:[],type:"CONDITION",main:!0}},h={group:{rules:[],type:"ACTION"}};a.conditionsFilter=_.clone(g,!0),a.actionsFilter=_.clone(h,!0),a.$watch("item.channel",function(b,c){c&&(a.tempData[c].conditionsFilter=_.clone(a.conditionsFilter,!0),a.tempData[c].actionsFilter=_.clone(a.actionsFilter,!0)),a.conditionsFilter=a.tempData[b].conditionsFilter?a.tempData[b].conditionsFilter:_.clone(g,!0),a.actionsFilter=a.tempData[b].actionsFilter?a.tempData[b].actionsFilter:_.clone(h,!0),a.fields.conditions=a.$automations.automations[b].conditions,a.fields.actions=a.$automations.automations[b].actions},!0),a.item.channel="mail",a.createItem=function(){a.item.conditions=angular.toJson(a.conditionsFilter),a.item.actions=angular.toJson(a.actionsFilter),b.post("/api/automations",a.item).success(function(){c.path("/automations/list")}).error(function(a){d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.automations.wizard",{url:"/wizard",templateUrl:"app/automation/wizard/wizard.html",controller:"AutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat",{url:"/chat",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("ChatMessage",["$resource",function(a){return a("/api/chat/messages/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").factory("ChatRoom",["$resource",function(a){return a("/api/chat/rooms/:id/:controller",{id:"@id"},{me:{method:"GET",isArray:!0,params:{id:"me"}},users:{method:"GET",params:{id:"users"}},externals:{method:"GET",isArray:!0,params:{id:"type",controller:"external"}},groups:{method:"GET",isArray:!0,params:{id:"groups"}},update:{method:"PUT"}})}]),angular.module("xCallyShuttleApp").directive("preview",function(){return{templateUrl:"app/chat/preview/preview.html",restrict:"EA",link:function(a,b,c){}}}),angular.module("xCallyShuttleApp").controller("ChatQueueListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","stResource",function(a,b,c,d,e,f,g,h){a.conf={chatQueuesByPage:{name:"10",value:10}},a.chatQueuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.chatQueues={checked:[]},a.check=function(b,c){c?a.chatQueues.checked=angular.copy(_.pluck(a.displayedChatQueues,"id")):a.chatQueues.checked=[]},a.initList=function(b){e.unsyncUpdates("chat_queue"),b.url="/api/chat/queues/",h.getPage(b).then(function(c){a.displayedChatQueues=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(c.queuesByPage,a.displayedChatQueues.length),g.updateTableConfig(a.conf.queuesByPage,a.displayedChatQueues.length)}),e.socket.on("chat_queue:save",function(){a.initList(b)}),e.socket.on("chat_queue:remove",function(c){a.chatQueues.checked=_.without(a.chatQueues.checked,c.id),a.initList(b)})},a.getChatQueues=function(b){return _.map(a.displayedChatQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/chat/queues/"+a).success(function(){c.show(d.instant("MESSAGE_CHAT_QUEUE_DELETE_SUCCESS")+"!","success")}).error(function(){c.show(d.instant("MESSAGE_CHAT_QUEUE_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/chat/queues/",{params:{id:a.chatQueues.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.$on("$destroy",function(){e.unsyncUpdates("chat_queue")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.list",{url:"/list",templateUrl:"app/chat/queue/list/list.html",controller:"ChatQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/chat/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/chat/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/chat/queues/"+e.id).success(function(b){a.queue=b}).error(function(a){console.error(a)})},a.updateChatQueue=function(){var f=angular.copy(a.queue);b.put("/api/chat/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){a.queue=f,b.errors.forEach(function(a){c.show(a.message,"danger")})})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/chat/user_has_queues",method:"GET",params:{ChatQueueId:a.queue.id}}).success(function(a){ComponentsDropdowns.bindChatQueue(c.rows,_.pluck(a,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.view",{url:"/view/:id",templateUrl:"app/chat/queue/view/view.html",controller:"ChatQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.chat.queues.view.settings",{url:"/settings",templateUrl:"app/chat/queue/view/view.settings.html"}).state("main.chat.queues.view.agents",{url:"/agents",templateUrl:"app/chat/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("ChatQueueWizardCtrl",["$scope","$http","$location","xAlert","WizardHandler","$translate",function(a,b,c,d,e,f){a.forms={},a.item={},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/chat/queues",a.item).success(function(){d.show(f.instant("MESSAGE_WELL_DONE"),"success"),c.path("/chat/queues/list")}).error(function(a){d.show(f.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.queues.wizard",{url:"/wizard",templateUrl:"app/chat/queue/wizard/wizard.html",controller:"ChatQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewAgentCtrl",["$scope","$http","socket",function(a,b,c){console.log("ChatRealtimeViewAgentCtrl"),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")}),a.initAgents=function(){b.get("/api/report/chats").success(function(b){a.agents=b,c.socket.on("report_chat:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_chat:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewSessionCtrl",["$scope","$http","socket",function(a,b,c){a.conf={sessionsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.sessionsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_chat:save"),c.unsyncUpdates("report_chat:update")}),a.initChats=function(){b.get("/api/report/chat/sessions").success(function(b){a.sessions=b,c.socket.on("report_chat_session:save",function(b){var c=_.find(a.sessions,{id:b.id}),d=a.sessions.indexOf(c);c?_.merge(a.sessions[d],b):a.sessions.push(b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("ChatRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.chat.realtime.view.agents"}],a.sessions=[{name:"View1",link:"main.chat.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.realtime.view",{url:"/view",templateUrl:"app/chat/realtime/view/view.html",controller:"ChatRealtimeViewCtrl"}).state("main.chat.realtime.view.agents",{url:"/agents",controller:"ChatRealtimeViewAgentCtrl",templateUrl:"app/chat/realtime/view/agent/agent.html"}).state("main.chat.realtime.view.sessions",{url:"/sessions",controller:"ChatRealtimeViewSessionCtrl",templateUrl:"app/chat/realtime/view/session/session.html"})}]),angular.module("xCallyShuttleApp").controller("ChatStatisticCtrl",["$scope","$http","$stateParams","xAlert","socket","$location","$translate","$filter",function(a,b,c,d,e,f,g,h){a.conf={chatVisitorsByPage:10,chatRoomsByPage:10,chatEnquiriesByPage:10},a.$location=f,a.$translate=g,a.$filter=h,a.initList=function(){b.get("api/chat/visitors").success(function(b){a.chatVisitors=b,e.syncUpdates("chat_visitor",a.chatVisitors)}),b.get("api/chat/rooms").success(function(b){a.chatRooms=b,e.syncUpdates("chat_room",a.chatRooms)}),b.get("api/chat/enquiries").success(function(b){a.chatEnquiries=b,e.syncUpdates("chat_enquery",a.chatEnquiries)})},a.initVisitorView=function(){b.get("api/chat/visitors/"+c.id).success(function(b){a.chatVisitor=b}).error(function(a){d.show(g.instant(a.message),"danger")})},a.initEnquiryView=function(){b.get("api/chat/enquiries/"+c.id).success(function(b){a.chatEnquiry=b}).error(function(a){d.show(g.instant(a.message),"danger")})},a.initRoomView=function(){console.log(c),b.get("api/chat/rooms/"+c.id).success(function(b){a.chatRoom=b}).error(function(a){d.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.statistics",{url:"/statistics",templateUrl:"app/chat/statistic/statistic.html",controller:"ChatStatisticCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]},{name:"ui.select",insertBefore:"#ng_load_plugins_before",files:["assets/plugins/ui-select/select.min.css","assets/plugins/ui-select/select.min.js"]}])}]}}).state("main.chat.statistics.summary",{url:"/summary",templateUrl:"app/chat/statistic/statistic.summary.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile-old.css"]})}]}}).state("main.chat.statistics.enquiries",{url:"/enquiries",templateUrl:"app/chat/statistic/statistic.enquiry.html"}).state("main.chat.statistics.enquiry",{url:"/enquiry/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.enquiry.view.html"}).state("main.chat.statistics.conversations",{url:"/conversations",templateUrl:"app/chat/statistic/statistic.conversation.html"}).state("main.chat.statistics.conversation",{url:"/conversation/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.conversation.view.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]})}]}}).state("main.chat.statistics.visitors",{url:"/visitors",templateUrl:"app/chat/statistic/statistic.visitor.html"}).state("main.chat.statistics.visitor",{url:"/visitor/:id",controller:"ChatStatisticCtrl",templateUrl:"app/chat/statistic/statistic.visitor.view.html"})}]),angular.module("xCallyShuttleApp").controller("ChatTimelineListCtrl",["$scope","$http","socket",function(a,b,c){function d(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/chat").success(function(a){a.forEach(d),c.socket.on("event:chat:save",d)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.timeline.list",{url:"/list",templateUrl:"app/chat/timeline/list/list.html",controller:"ChatTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","stResource",function(a,b,c,d,e,f,g,h){a.conf={chatWebsitesByPage:{name:"10",value:10}},a.chatWebsitesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.chatWebsites={checked:[]},a.check=function(b,c){c?a.chatWebsites.checked=angular.copy(_.pluck(a.displayedChatWebsites,"id")):a.chatWebsites.checked=[]},a.getChatWebsites=function(b){return _.map(a.displayedChatWebsites,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("chat_website"),b.url="/api/chat/websites",h.getPage(b).then(function(c){a.displayedChatWebsites=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(a.chatWebsitesByPage,a.displayedChatWebsites.length),g.updateTableConfig(a.conf.chatWebsitesByPage,a.displayedChatWebsites.length)}),e.socket.on("chat_website:save",function(){a.initList(b)}),e.socket.on("chat_website:remove",function(c){a.chatWebsites.checked=_.without(a.chatWebsites.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/chat/websites/"+a).success(function(){c.show(d.instant("MESSAGE_CHAT_WEBSITE_DELETE_SUCCESS")+"!","success")}).error(function(){c.show(d.instant("MESSAGE_CHAT_WEBSITE_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/chat/websites",{params:{id:a.chatWebsites.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(a.message,"danger")})}),a.$on("$destroy",function(){e.unsyncUpdates("chat_website")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.list",{url:"/list",templateUrl:"app/chat/website/list/list.html",controller:"ChatWebsiteListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionListCtrl",["$scope","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g){a.initActons=function(){console.log(d),a.sortableOptions={stop:function(){console.log("stop",_.pluck(a.chatApplications,"id")),b.post("api/chat/websites/"+d.websiteId+"/applications",{applications:_.pluck(a.chatApplications,"id")}).success(function(b){angular.copy(b,a.chatApplications)}).error(function(a){console.error(a)})}},b.get("/api/chat/applications",{params:{ChatWebsiteId:d.websiteId}}).success(function(b){a.chatApplications=b,e.socket.on("chat_application:remove",function(b){_.remove(a.chatApplications,{id:b.id})})})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/chat/applications/"+a).success(function(){f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.list",{url:"/list",templateUrl:"app/chat/website/view/action/list/list.html",controller:"chatWebsiteViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/chat/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),console.log(c),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){b.get("/api/chat/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,chatAccountId:c.id};switch(a.application.app){case"agent":
+g.UserId=a.application.UserId;break;case"queue":g.chatQueueId=a.application.chatQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/chat/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.view",{url:"/view/:actionId",templateUrl:"app/chat/website/view/action/view/view.html",controller:"chatWebsiteViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewActionWizardCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){console.log(c),a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){b.get("/api/chat/queues",{params:{page:0,per_page:1e3}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:1e3}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.createItem=function(){var d=["*","*","*","*"],f={app:a.application.app,timeout:a.application.timeout,ChatWebsiteId:c.websiteId};switch(a.application.app){case"agent":f.UserId=a.application.UserId;break;case"queue":f.ChatQueueId=a.application.ChatQueueId}switch(a.application.intType){case"always":f.interval=d.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(d[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),d[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",d[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",d[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",f.interval=d.join(","),delete a.application.IntervalId;break;case"list":f.IntervalId=a.application.IntervalId}b.post("/api/chat/applications",f).success(function(){e.path("/chat/websites/view/"+c.websiteId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){g.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.actions.wizard",{url:"/wizard",templateUrl:"app/chat/website/view/action/wizard/wizard.html",controller:"chatWebsiteViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.snippet",{url:"/snippet",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("chatWebsiteViewSnippetViewCtrl",["$scope","$http","$stateParams","$translate",function(a,b,c,d){a.$translate=d,a.statePreview={state:"online"},a.lang={HeaderCurrentlyChatting:"Live Chat",HeaderOffline:"Contact us",OperatorOfflineMessage:"It appears as if all operators are currently offline.",OfflineMessage:"<strong>We're not online.</strong><br/>It doesn't mean we're not there to help - leave your message below and we'll be in touch as soon as possible.",EnquiryMessagePlaceholder:"Your message...",EnquiryButtonText:"Leave message",EnquirySubmitSuccess:"Your message was sucessfully submitted - we will contact you as soon as possible.",OperatorComposing:"{fullname} is typing...",FirstMessageText:"",ExitChatButtonText:"Exit Chat",ExitChatQuestionText:"Are you sure?",ExitChatButtonConfirmText:"Yes",ExitChatButtonCancelText:"No",MessagePlaceholderText:"Your message...",MessageSendButtonText:"Send",ValidationEmailRequired:"Please enter your email address",ValidationEmailInvalid:"Please enter a valid email address",ValidationEmailMaxLength:"The email address may not exceed 85 characters",ValidationUsernameRequired:"Please enter your name",ValidationUsernameMaxLength:"The name may not exceed 45 characters",ValidationEnquiryRequired:"Please enter your enquiry",ValidationEnquiryMaxLength:"The enquiry may not exceed 1500 characters",ValidationMessageRequired:"Please enter your message",ValidationMessageMaxLength:"The message may not exceed 750 characters"},a.getSnippetCode=function(){b.get("api/chat/websites/"+c.websiteId+"/snippet").success(function(b){a.snippetCode=b})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view.snippet.view",{url:"/view",templateUrl:"app/chat/website/view/snippet/view/view.html",controller:"chatWebsiteViewSnippetViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteViewCtrl",["$scope","xAlert","$http","$location","$stateParams","$translate","WizardHandler",function(a,b,c,d,e,f,g){a.initApplication=function(){a.forms={},a.application={}},a.goNext=function(){g.wizard().next()},a.formValidation=function(a){return a},a.deleteItem=function(a){c["delete"]("api/chat/applications/"+a).error(function(){b.show(f.instant("Something went wrong!"),"danger")})},a.initView=function(){c.get("/api/chat/websites/"+e.websiteId).success(function(b){a.chatWebsite=b}).error(function(a){b.show(a.message,"danger")})},a.updateItem=function(){c.put("/api/chat/websites/"+a.chatWebsite.id,a.chatWebsite).success(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_SUCCESS")+"!","success")}).error(function(){b.show(f.instant("MESSAGE_CHAT_WEBSITE_UPDATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.view",{url:"/view/:websiteId",templateUrl:"app/chat/website/view/view.html",controller:"ChatWebsiteViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites",{url:"/websites",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ChatWebsiteWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert",function(a,b,c,d,e,f){a.$translate=d,a.forms={formSetting:void 0,formAppearance:void 0,formLabel:void 0,formFunctionality:void 0},a.next=function(){e.wizard().next()},a.exitValidation=function(a){return a},a.item={},a.createItem=function(){b.post("api/chat/websites",a.item).success(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_SUCCESS"),"success"),c.path("/chat/websites/list")}).error(function(){f.show(d.instant("MESSAGE_CHAT_WEBSITE_CREATE_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.chat.websites.wizard",{url:"/wizard",templateUrl:"app/chat/website/wizard/wizard.html",controller:"ChatWebsiteWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("ContactManagerCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager",{url:"/contactmanager",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ContactManagerListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={contactsByPage:{name:"10",value:10},labels:["mailbox","fullname","email"]},a.contactsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.contacts={checked:[]},a.check=function(b,c){c?a.contacts.checked=angular.copy(_.pluck(a.displayedContacts,"id")):a.contacts.checked=[]},a.getContacts=function(b){return _.map(a.displayedContacts,function(a){return b.forEach(function(b){contact[b]=a[b]}),contact})},a.initList=function(b){f.unsyncUpdates("contact_manager"),b.url="/api/contactmanager",h.getPage(b).then(function(c){a.displayedContacts=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.contactsByPage,a.displayedContacts.length),d.updateTableConfig(a.conf.contactsByPage,a.displayedContacts.length)}),f.socket.on("contact_manager:save",function(){a.initList(b)}),f.socket.on("contact_manager:remove",function(c){a.contacts.checked=_.without(a.contacts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/contactmanager/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/contactmanager",{params:{id:a.contacts.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.list",{url:"/list",templateUrl:"app/contactmanager/list/list.html",controller:"ContactManagerListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ContactManagerViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location",function(a,b,c,d,e,f,g,h,i){a.getContact=function(){b.get("/api/contactmanager/"+e.id).success(function(b){delete b.password,delete b.stamp,a.contact=b}).error(function(a){console.error(a),i.path("/contactmanager/list")})},a.updateContact=function(){var f=angular.copy(a.contact);b.put("/api/contactmanager/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.contact=f})},a.getHistory=function(){b.get("/api/contactmanager/"+e.id+"/history/").success(function(b){a.contactHistory=b,f.syncUpdates("contact_history",a.contactHistory)}).error(function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.view",{url:"/view/:id",templateUrl:"app/contactmanager/view/view.html",controller:"ContactManagerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.contactmanager.view.settings",{url:"/settings",templateUrl:"app/contactmanager/view/view.settings.html"}).state("main.contactmanager.view.history",{url:"/messages",templateUrl:"app/contactmanager/view/view.history.html"})}]),angular.module("xCallyShuttleApp").controller("ContactManagerWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={}},a.next=function(){b.post("/api/contactmanager/validate/",a.item).success(function(a){a.length?e.show(g.instant("MESSAGE_EXIST_MAILBOX"),"danger"):c.wizard().next()}).error(function(a){e.show(a.message,"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){a.item.customer_id=a.item.mailbox,b.post("/api/contactmanager/",a.item).success(function(){d.path("/contactmanager/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.contactmanager.wizard",{url:"/wizard",templateUrl:"app/contactmanager/wizard/wizard.html",controller:"ContactManagerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("DashboardCtrl",["$scope","$translate",function(a,b){a.voice=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.voice"}],a.mail=[{name:b.instant("APPLICATION_QUEUE"),link:"main.dashboard.mail"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.dashboard",{"abstract":!0,url:"/dashboard",templateUrl:"app/dashboard/dashboard.html",controller:"DashboardCtrl"}).state("main.dashboard.voice",{url:"/voice",controller:"DashboardVoiceCtrl",templateUrl:"app/dashboard/voice/voice.html"}).state("main.dashboard.mail",{url:"/mail",controller:"DashboardMailCtrl",templateUrl:"app/dashboard/mail/mail.html"})}]),angular.module("xCallyShuttleApp").controller("DashboardMailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").controller("DashboardVoiceCtrl",["$scope","$http","xAlert","socket",function(a,b,c,d){function e(b,c){console.log("element in check Function is",b);var d;return!b.queuecallerjoinAt||b.queuecallerleaveAt||b.queuecallercompleteAt||b.queuecallerabandonAt?b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="activeCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&b.queuecallercompleteAt&&!b.queuecallerabandonAt?d="completedCalls":b.queuecallerjoinAt&&b.queuecallerleaveAt&&!b.queuecallercompleteAt&&b.queuecallerabandonAt&&(d="abandonedCalls"):d="waitCalls",console.log("result type is",d),c?d:void(d&&a.queueStats[d]++)}a.queueStats={abandonedCalls:0,completedCalls:0,waitCalls:0,activeCalls:0},a.getQueueStats=function(){b.get("/api/report/queues").then(function(b){a.queueReports=b.data,a.queueReports.forEach(function(a){e(a,!1)}),d.socket.on("report_queue:save",function(b){console.log("report save or update");var c=_.find(a.queueReports,{id:b.id}),d=a.queueReports.indexOf(c);if(c){console.log("found item, is an update");var f=e(c,!0);console.log("old item value is "+f+", decrementing..."),f&&a.queueStats[f]--,_.merge(a.queueReports[d],b)}else console.log("item not found in collection, is a create"),a.queueReports.unshift(b);console.log("checking new item type and increasing..."),e(b,!1)})})["catch"](function(a){c.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountListCtrl",["$scope","$http","xAlert","$translate","socket","Modal","$rootScope","$log","stResource",function(a,b,c,d,e,f,g,h,i){a.conf={faxAccountsByPage:{name:"10",value:10}},a.faxAccountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.fax_accounts={checked:[]},a.check=function(b,c){c?a.fax_accounts.checked=angular.copy(_.pluck(a.displayedFaxAccounts,"id")):a.fax_accounts.checked=[]},a.initList=function(b){e.unsyncUpdates("fax_account"),b.url="/api/fax/accounts",i.getPage(b).then(function(c){a.displayedFaxAccounts=c.rows,b.pagination.numberOfPages=c.total_pages,g.updateTableConfig(a.faxAccountsByPage,a.displayedFaxAccounts.length),g.updateTableConfig(a.conf.faxAccountsByPage,a.displayedFaxAccounts.length)}),e.socket.on("fax_account:save",function(){a.initList(b)}),e.socket.on("fax_account:remove",function(c){a.fax_accounts.checked=_.without(a.fax_accounts.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("api/fax/accounts/"+a).success(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_SUCCESS"),"success")}).error(function(){c.show(d.instant("MESSAGE_FAX_ACCOUNT_DELETE_FAILURE"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/fax/accounts",{params:{id:a.fax_accounts.checked}}).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.getFaxAccounts=function(b){return _.map(a.faxAccountsByPage,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.$on("$destroy",function(){e.unsyncUpdates("fax_account")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.list",{url:"/list",templateUrl:"app/fax/account/list/list.html",controller:"FaxAccountListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.forms={},a.sortableOptions={stop:function(){b.post("api/fax/accounts/"+c.id+"/applications",{applications:_.pluck(a.faxApplications,"id")}).success(function(b){a.faxApplications=b}).error(function(a){console.error(a)})},"ui-floating":!0},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.initApplication=function(){a.forms={},a.application={}},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("api/fax/applications/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.getAppdata=function(b,c){switch(b){case"agent":return a.agents?_.find(a.agents,{id:c}).name:c;case"queue":return a.faxQueues?_.find(a.faxQueues,{id:c}).name:c}return"UNKNOWN"},a.createItem=function(){switch(a.application.appdata=a.application.appdata.id,a.application.app){case"agent":a.application.UserId=parseInt(a.application.appdata,10);break;case"queue":a.application.FaxQueueId=parseInt(a.application.appdata,10)}a.application.FaxAccountId=c.id,b.post("api/fax/applications",a.application).success(function(){e.path("fax/accounts/view/"+c.id+"/routes")}).error(function(){h.show("Something went wrong!","danger")})},a.$watch("application.app",function(c){if(c){var d;switch(c){case"agent":d="api/agents";break;case"queue":d="api/fax/queues"}b.get(d).success(function(b){a.items=b.rows})}},!0),a.initView=function(){b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.log(a)}),b.get("/api/fax/accounts/"+c.id).success(function(b){a.account=b}).error(function(){})},a.getAgents=function(){b.get("api/fax/agents").success(function(b){a.agents=b})},a.getFaxApplications=function(){b.get("/api/fax/applications",{params:{FaxAccountId:c.id}}).success(function(b){a.faxApplications=b,g.socket.on("fax_application:remove",function(b){_.remove(a.faxApplications,{id:b.id})})}),b.get("/api/agents").success(function(b){a.agents=b.rows}),b.get("/api/fax/queues").success(function(b){a.faxQueues=b.rows})},a.updateItemFaxAccount=function(){b.put("/api/fax/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_SUCCESS")+".","success")}).error(function(){h.show(d.instant("MESSAGE_FAX_ACCOUNT_UPDATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.view",{url:"/view/:id",templateUrl:"app/fax/account/view/view.html",controller:"FaxAccountViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.fax.accounts.view.settings",{url:"/settings",templateUrl:"app/fax/account/view/view.settings.html",authenticate:!0}).state("main.fax.accounts.view.routes",{url:"/routes",templateUrl:"app/fax/account/view/view.routes.html",authenticate:!0}).state("main.fax.accounts.view.applications",{url:"/applications",templateUrl:"app/fax/account/view/view.applications.html",authenticate:!0})}]),angular.module("xCallyShuttleApp").controller("FaxAccountWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.ecm=!1,a.item.minrate="9600",a.item.maxrate="33600",b.get("/api/trunks").success(function(b){a.trunks=b.rows}).error(function(a){console.error(a)})},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/fax/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_SUCCESS")+".","success"),c.path("/fax/accounts/list")}).error(function(){e.show(d.instant("MESSAGE_FAX_ACCOUNT_CREATE_FAILURE")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.accounts.wizard",{url:"/wizard",templateUrl:"app/fax/account/wizard/wizard.html",controller:"FaxAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={faxAutomationsByPage:{name:"10",value:10}},a.faxAutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.faxAutomations={checked:[]},a.check=function(b,c){c?a.faxAutomations.checked=angular.copy(_.pluck(a.displayedFaxAutomations,"id")):a.faxAutomations.checked=[]},a.getFaxAutomations=function(b){return _.map(a.displayedFaxAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("fax_business_automation"),b.url="/api/fax/business/automations",e.getPage(b).then(function(c){a.displayedFaxAutomations=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.faxAutomationsByPage,a.displayedFaxAutomations.length),d.updateTableConfig(a.conf.faxAutomationsByPage,a.displayedFaxAutomations.length)}),g.socket.on("fax_business_automation:save",function(){a.initList(b)}),g.socket.on("fax_business_automation:remove",function(c){a.faxAutomations.checked=_.without(a.faxAutomations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/fax/business/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/fax/business/automations",{params:{id:a.faxAutomations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/fax/business/automations/"+a,{status:d}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.$on("$destroy",function(){g.unsyncUpdates("fax_business_automation")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.list",{url:"/list",templateUrl:"app/fax/automation/list/list.html",controller:"FaxAutomationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationViewCtrl",["$scope","$stateParams","$http","automation","socket","xAlert","$translate","$log",function(a,b,c,d,e,f,g,h){a.initView=function(){a.forms={info:{}},a.automations=d.automations,c.get("/api/fax/business/automations/"+b.id).success(function(c){h.debug(c),a.test=c,a.automation=c,e.syncUpdatesByAttributes("business_condition",{FaxBusinessAutomationId:b.id},c.BusinessConditions)}).error(function(){f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateAutomation=function(){c.put("/api/fax/business/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description}).success(function(a){h.debug(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),h.error(a)})},a.getOperatorsByCondition=function(a){var b=[],c=_.find(d.automations.conditions,{key:a});return c.operators&&c.operators.length&&(b=c.operators),b},a.getAttributesByCondition=function(a){var b=[],c=_.find(d.automations.conditions,{key:a});if(c.attributes&&c.attributes.length)switch(c.key){case"createdAt":b=_.map(c.attributes,function(a){return a.value=parseInt(a.value,10),a});break;default:b=c.attributes}return b},a.addNewCondition=function(b){c.post("/api/business/conditions",{type:b,condition:"status",FaxBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessConditions.push(b)}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addNewAction=function(){c.post("/api/business/actions",{condition:"status",FaxBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessActions.push(b)}).error(function(a){console.error(a)})},a.removeCondition=function(a){c["delete"]("/api/business/conditions/"+a).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.removeAction=function(b){c["delete"]("/api/business/actions/"+b).success(function(b){console.log(b),a.automation.BusinessActions=_.reject(a.automation.BusinessActions,{id:b.id})}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateCondition=function(a,b,d){var e={};e[b]=d,c.put("/api/business/conditions/"+a,e).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateAction=function(a,b,d){var e={};e[b]=d,c.put("/api/business/actions/"+a,e).success(function(a){console.log(a),f.show(g.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.view",{url:"/view/:id",templateUrl:"app/fax/automation/view/view.html",controller:"FaxAutomationViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.fax.automations.view.settings",{url:"/settings",templateUrl:"app/fax/automation/view/view.settings.html",authenticate:!0}).state("main.fax.automations.view.routes",{url:"/routes",templateUrl:"app/fax/automation/view/view.routes.html",authenticate:!0}).state("main.fax.automations.view.application",{url:"/application",templateUrl:"app/fax/automation/view/view.application.html",authenticate:!0})}]),angular.module("xCallyShuttleApp").controller("FaxAutomationWizardCtrl",["$scope","$http","$location","automation","WizardHandler","xAlert","$translate",function(a,b,c,d,e,f,g){a.forms={},a.automations={or:[],and:[],actions:[]},a.addNewChoice=function(b){var c=angular.copy(d.automations);a.automations[b].push(c)},a.removeChoice=function(b,c){a.automations[b].splice(c)},a.goNext=function(){e.wizard().next()},a.createItem=function(){a.automations.or.forEach(function(a){a.condition=a.condition.key,a.type="or",delete a.conditions,delete a.actions}),a.automations.and.forEach(function(a){a.condition=a.condition.key,a.type="and",delete a.conditions,delete a.actions}),a.automations.actions.forEach(function(a){a.condition=a.condition.key,delete a.conditions,delete a.actions}),b.post("api/fax/business/automations",a.automations).success(function(){f.show(g.instant("MESSAGE_WELL_DONE"),"success"),c.path("/fax/automations/list")}).error(function(a){console.error(a),f.show(g.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.automations.wizard",{url:"/wizard",templateUrl:"app/fax/automation/wizard/wizard.html",controller:"FaxAutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax",{url:"/fax",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxInboxComposeCtrl",["$scope","$http","FileUploader","$location","Auth","xAlert","$cookieStore","$translate",function(a,b,c,d,e,f,g,h){a.forms={},a.form={to:[],sto:[]},b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),a.isNewMessageFromEmpty=!0;var i=a.uploader=new c({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+g.get("token")}});i.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),i.onBeforeUploadItem=function(b){b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html?a.form.html:""})},i.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},i.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d)},i.onCompleteAll=function(){i.clearQueue(),f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/fax/inbox/incoming")},i.onWhenAddingFileFailed=function(){f.show(h.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.sendFax=function(){return a.form.sto.length?void(i.queue.length?i.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:e.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){f.show(h.instant("MESSAGE_WELL_DONE"),"success"),d.path("/fax/inbox/incoming")}).error(function(a){f.show(h.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.cancel=function(){a.form.sto=[],delete a.form.from}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.compose",{url:"/compose",templateUrl:"app/fax/inbox/room/room.html",controller:"FaxInboxComposeCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxCtrl",["$scope","$http","$location","$translate","$timeout","$notification","Auth","socket","$interval",function(a,b,c,d,e,f,g,h,i){a.go=function(a,d,e){e?b.put("/api/fax/rooms/"+d,{status:e}).success(function(){c.path(a)}).error(function(a){console.error(a)}):c.path(a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox",{url:"/inbox",templateUrl:"app/fax/inbox/inbox.html",controller:"FaxInboxCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",
+files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/inbox.css","assets/css/todo.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("FaxInboxIncomingCtrl",["$scope","$http","$location","socket","Auth","xAlert",function(a,b,c,d,e,f){a.$location=c,a.getRooms=function(){e.isAdmin()?b.get("api/fax/rooms").success(function(b){a.faxRooms=b,d.syncUpdates("fax_room",a.faxRooms)}).error(function(a){console.error(a),f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")}):b.get("api/fax/rooms/agent/"+e.getCurrentUser().id).success(function(b){a.faxRooms=b,d.socket.on("fax_room:update",function(b){b.UserId===e.getCurrentUser().id&&a.faxRooms.push(b)})}).error(function(a){f.show($translate.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.incoming",{url:"/incoming",templateUrl:"app/fax/inbox/incoming/incoming.html",controller:"FaxInboxIncomingCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxInboxRoomCtrl",["$scope","$http","$stateParams","$location","FileUploader","socket","Auth","xAlert","$translate","$cookieStore",function(a,b,c,d,e,f,g,h,i,j){function k(){a.lastMessage=_.reject(a.faxRoom.FaxMessages,function(a){return"RECEIVED"!==a.status}),a.lastMessage=_.sortByOrder(a.lastMessage,["id"],["desc"])[0],a.lastMessage&&(console.log(a.faxRoom),a.form.from=a.faxRoom.FaxAccount,a.form.to=[a.lastMessage.From.phone],a.form.sto=[a.lastMessage.From.phone])}var l=a.uploader=new e({url:"api/fax/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+j.get("token")}});l.filters.push({name:"pdfFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|pdf|".indexOf(b)}}),l.onBeforeUploadItem=function(b){console.log(a.form.from.id,a.form.sto[0],a.isNewMessageFromEmpty,c.id,g.getCurrentUser().id),b.formData.push({accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,roomId:c.id,userId:g.getCurrentUser().id,html:a.form.html}),console.log(b)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",b,c,d)},l.onCompleteAll=function(){l.clearQueue(),h.show(i.instant("MESSAGE_WELL_DONE"),"success")},l.onWhenAddingFileFailed=function(){h.show(i.instant("MESSAGE_WRONG_FORMAT"),"danger")},a.initRoomView=function(){a.isNewMessageFromEmpty=!0,a.Auth=g,a.forms={},a.form={to:[],sto:[]},b.get("api/agents").success(function(b){a.agents=b}),b.get("api/fax/accounts").success(function(b){a.faxAccounts=b.rows}),c.id&&b.get("/api/fax/rooms/"+c.id).success(function(b){a.faxRoom=b,a.isNewMessageFromEmpty=!1,f.syncUpdates("fax_message",[],function(b,c){"created"===b&&c.FaxRoomId===a.faxRoom.id&&(a.faxRoom.FaxMessages.push(c),k())}),k()}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.sendFax=function(){return a.form.sto.length?void(l.queue.length?l.uploadAll():b.post("api/fax/messages",{accountId:a.form.from.id,toNum:a.form.sto[0],isNewRoom:a.isNewMessageFromEmpty,userId:g.getCurrentUser().id,html:a.form.html,onlyText:!0}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"success"),console.log("Fax Message sent")}).error(function(a){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),console.error(a)})):(a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0))},a.assignAgent=function(a){b.put("/api/fax/rooms/"+c.id,{UserId:a}).success(function(){h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateStatus=function(d){b.put("/api/fax/rooms/"+c.id,{status:d}).success(function(b){a.faxRoom.status=b.status,h.show(i.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(a){console.error(a),h.show(i.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.cancel=function(){a.form.sto=[],delete a.form.from,l.clearQueue()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.inbox.room",{url:"/room/:id",templateUrl:"app/fax/inbox/room/room.html",controller:"FaxInboxRoomCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxQueueListCtrl",["$scope","$rootScope","$http","$translate","socket","Modal","xAlert","stResource",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("fax_queue")}),a.conf={queuesByPage:{name:"10",value:10}},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.faxQueues={checked:[]},a.check=function(b,c){c?a.faxQueues.checked=angular.copy(_.pluck(a.displayedFaxQueues,"id")):a.faxQueues.checked=[]},a.getFaxQueues=function(b){return _.map(a.displayedFaxQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(c){e.unsyncUpdates("fax_queue"),c.url="/api/fax/queues",h.getPage(c).then(function(d){a.displayedFaxQueues=d.rows,c.pagination.numberOfPages=d.total_pages,b.updateTableConfig(d.queuesByPage,a.displayedFaxQueues.length),b.updateTableConfig(a.conf.queuesByPage,a.displayedFaxQueues.length)}),e.socket.on("fax_queue:save",function(){a.initList(c)}),e.socket.on("fax_queue:remove",function(b){a.faxQueues.checked=_.without(a.faxQueues.checked,b.id),a.initList(c)})},a.deleteItem=f.confirm["delete"](function(a){c["delete"]("/api/fax/queues/"+a).success(function(){g.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){g.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){c["delete"]("/api/fax/queues/",{params:{id:a.faxQueues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})}),a.deleteItems=f.confirm["delete"](function(){c["delete"]("/api/fax/queues/",{params:{id:a.faxQueues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.list",{url:"/list",templateUrl:"app/fax/queue/list/list.html",controller:"FaxQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("FaxQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/fax/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/fax/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/fax/queues/"+d.id).success(function(b){a.queue=b}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateFaxQueue=function(){var f=angular.copy(a.queue);b.put("/api/fax/queues/"+d.id,f).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger"),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/fax/user_has_queues",method:"GET",params:{FaxQueueId:a.queue.id}}).success(function(b){ComponentsDropdowns.bindFaxQueue(a.teams,_.pluck(b,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.view",{url:"/view/:id",templateUrl:"app/fax/queue/view/view.html",controller:"FaxQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.fax.queues.view.settings",{url:"/settings",templateUrl:"app/fax/queue/view/view.settings.html"}).state("main.fax.queues.view.agents",{url:"/agents",templateUrl:"app/fax/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("FaxQueueWizardCtrl",["$scope","$http","WizardHandler","xAlert","$translate","$location",function(a,b,c,d,e,f){a.forms={},a.item={},a.next=function(){c.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/fax/queues",a.item).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success"),f.path("/fax/queues/list")}).error(function(a){d.show(e.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.queues.wizard",{url:"/wizard",templateUrl:"app/fax/queue/wizard/wizard.html",controller:"FaxQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("FaxTimelineListCtrl",["$scope","$http","socket","xAlert","$translate",function(a,b,c,d,e){function f(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/fax").success(function(a){a.forEach(f),c.socket.on("event:fax:save",f)}).error(function(a){console.error(a),d.show(e.instant("MESSAGE_FAX_ACCOUNT_GET_FAILURE"),"danger")})},a.$on("$destroy",function(){c.socket.removeAllListeners("event:fax:save")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.timeline.list",{url:"/list",templateUrl:"app/fax/timeline/list/list.html",controller:"FaxTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.fax.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations",{url:"/integrations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").factory("Integration",["$resource",function(a){return a("/api/integrations/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").controller("IntegrationListCtrl",["$scope","Modal","socket","FileUploader","Integration","xAlert",function(a,b,c,d,e,f){a.integrationsByPage=10;var g=a.uploader=new d({url:"api/integrations",autoUpload:!0,removeAfterUpload:!0});g.filters.push({name:"zipFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|zip|".indexOf(b)}}),g.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(b.name,"success")},g.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),b.errors.forEach(function(a){f.show(a.message,"danger")})},a.deleteItem=b.confirm["delete"](function(a){e["delete"]({id:a},function(){f.show("Integration Removed","success")},function(a){f.show(a.data.errors,"danger")})}),a.initList=function(){a.integrations=e.query({},function(a){c.syncUpdates("integration",a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.integrations.list",{url:"/list",templateUrl:"app/integration/list/list.html",controller:"IntegrationListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals",{url:"/intervals",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("IntervalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={intervalsByPage:{name:"10",value:10},labels:["name"]},a.intervalsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.intervals={checked:[]},a.check=function(b,c){c?a.intervals.checked=angular.copy(_.pluck(a.displayedIntervals,"id")):a.intervals.checked=[]},a.getIntervals=function(b){return _.map(a.displayedIntervals,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("interval"),b.url="/api/intervals",h.getPage(b).then(function(c){a.displayedIntervals=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.intervalsByPage,a.displayedIntervals.length),e.updateTableConfig(a.conf.intervalsByPage,a.displayedIntervals.length)}),c.socket.on("interval:save",function(){a.initList(b)}),c.socket.on("interval:remove",function(c){a.intervals.checked=_.without(a.intervals.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/intervals/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){f.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(d.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/intervals",{params:{id:a.intervals.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.list",{url:"/list",templateUrl:"app/interval/list/list.html",controller:"IntervalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("IntervalViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","interval",function(a,b,c,d,e,f,g,h,i,j){a.$translate=d,a.$interval=j.interval,a.forms={subinterval:void 0,general:void 0},a.initSubInterval=function(){a.subinterval={IntervalId:e.id},a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0}},a.next=function(){b.post("/api/intervals/validate/",a.subinterval).success(function(a){console.log(a),a.length?c.show(d.instant("MESSAGE_EXIST_SUBINTERVAL"),"danger"):h.wizard().next()}).error(function(a){c.show(d.instant(a.message),"danger")})},a.previous=function(){h.wizard().previous()},a.exitValidation=function(a){return a},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from,a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to)):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from,a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to)):e="*",b+","+c+","+d+","+e},a.getInterval=function(){b.get("/api/intervals/"+e.id).success(function(b){a.interval=b,a.subIntervals=b.SubIntervals,f.unsyncUpdates("interval"),f.socket.on("interval:remove",function(b){b.id&&_.remove(a.subIntervals,function(a){return b.id===a.id})}),f.socket.on("interval:update",function(b){var c=_.find(a.subIntervals,{id:b.id});c.interval=b.interval}),f.socket.on("interval:save",function(b){if(b.IntervalId===e.id){var c=_.find(a.subIntervals,{id:b.id});c||a.subIntervals.push(b)}})}).error(function(a){console.error(a),g.path("/intervals/list")})},a.updateInterval=function(){var f=angular.copy(a.interval);b.put("/api/intervals/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.interval=f})},a.getSubInterval=function(){b.get("/api/intervals/"+e.appId).success(function(b){a.splittedInterval={t_from:moment(new Date),t_to:moment(new Date)},a.subinterval=b;var c,d=b.interval?b.interval.split(","):["*","*","*","*"];d.forEach(function(b,d){switch(d){case 0:"*"!==b?(c=b.split("-"),a.splittedInterval.t_from=moment(c[0],"HH:mm"),a.splittedInterval.t_to=moment(c[1],"HH:mm"),a.splittedInterval.alwaysTime=!1):(a.splittedInterval.t_from=moment(new Date),a.splittedInterval.t_to=moment(new Date),a.splittedInterval.alwaysTime=!0);break;case 1:"*"!==b?(c=b.split("-"),a.splittedInterval.wd_from=_.capitalize(c[0]),a.splittedInterval.wd_to=c[1]?_.capitalize(c[1]):"always"):(a.splittedInterval.wd_from="always",a.splittedInterval.wd_to="always");break;case 2:"*"!==b?(c=b.split("-"),a.splittedInterval.md_from=c[0],a.splittedInterval.md_to=c[1]?c[1]:"always"):(a.splittedInterval.md_from="always",a.splittedInterval.md_to="always");break;case 3:"*"!==b?(c=b.split("-"),a.splittedInterval.m_from=_.capitalize(c[0]),a.splittedInterval.m_to=c[1]?_.capitalize(c[1]):"always"):(a.splittedInterval.m_from="always",a.splittedInterval.m_to="always")}})}).error(function(a){console.error(a),g.path("/intervals/view/"+e.id+"/subintervals")})},a.createItem=function(){a.subinterval.interval=a.joinInterval(a.splittedInterval),b.post("/api/intervals/",a.subinterval).success(function(){g.path("/intervals/view/"+e.id+"/subintervals")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.updateItem=function(){a.subinterval.interval=a.joinInterval(a.splittedInterval),b.put("/api/intervals/"+e.appId,a.subinterval).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),g.path("/intervals/view/"+e.id+"/subintervals")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.deleteItem=i.confirm["delete"](function(a){b["delete"]("/api/intervals/"+a).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){console.log(a),c.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.view",{url:"/view/:id",templateUrl:"app/interval/view/view.html",controller:"IntervalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.intervals.view.settings",{url:"/settings",templateUrl:"app/interval/view/view.settings.html"}).state("main.intervals.view.subintervals",{url:"/subintervals",templateUrl:"app/interval/view/view.subintervals.html",cache:!1}).state("main.intervals.view.subinterval",{url:"/subinterval",templateUrl:"app/interval/view/view.subinterval.html",authenticate:!0}).state("main.intervals.view.subintervals.settings",{url:"/settings/:appId",templateUrl:"app/interval/view/view.subintervalSettings.html",authenticate:!0,controller:"IntervalViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("IntervalWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={interval:void 0},a.item={},a.next=function(){b.post("/api/intervals/validate/",a.item).success(function(a){console.log(a),a.length?e.show(f.instant("MESSAGE_EXIST_INTERVAL"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/intervals/",a.item).success(function(a){d.path("/intervals/view/"+a.id+"/subintervals")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.intervals.wizard",{url:"/wizard",templateUrl:"app/interval/wizard/wizard.html",controller:"IntervalWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("LoginCtrl",["$scope","Auth","$location","$window","$rootScope",function(a,b,c,d,e){a.userLogin={},a.userSignUp={},a.loginSubmitted=!1,a.signupSubmitted=!1,a.errorLogin=!1,a.errorSignup=!1,a.errorLog="",a.flagLogin1=!1,a.toogleLogin=function(){a.flagLogin1=!a.flagLogin1},e.bodyLayout="login",a.$on("$viewContentLoaded",function(){Metronic.init(),Layout.init()}),a.login=function(d){a.loginSubmitted=!0,d.$valid?b.login({name:a.userLogin.name,password:a.userLogin.password,remember:a.userLogin.remember}).then(function(){c.path("/dashboard/voice")})["catch"](function(b){a.errorLog=b.message,a.errorLogin=!0}):a.errorLogin=!0},a.signup=function(d){a.signupSubmitted=!0,d.$valid?b.createUser({email:a.userSignUp.email,fullname:a.userSignUp.fullname,name:a.userSignUp.name,password:a.userSignUp.password,role:a.userSignUp.role,online:!0}).then(function(){c.path("/")})["catch"](function(b){a.errorLog=b.message,a.errorSignup=!0}):a.errorSignup=!0},a.loginOauth=function(a){d.location.href="/auth/"+a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("login",{url:"/login",templateUrl:"app/login/login.html",controller:"LoginCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/login.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts",{url:"/accounts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountListCtrl",["$scope","$http","socket","$translate","$rootScope","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.conf={mailAccountsByPage:{name:"10",value:10}},a.mailAccountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailAccounts={checked:[]},a.check=function(b,c){c?a.mailAccounts.checked=angular.copy(_.pluck(a.displayedMailAccounts,"id")):a.mailAccounts.checked=[]},a.getMailAccounts=function(b){return _.map(a.displayedMailAccounts,function(a){var c={};return b.forEach(function(b){_.isObject(b)?_.forIn(b,function(b,d){c[b]=a[d][b]}):c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("mail_server_in"),c.unsyncUpdates("mail_account"),b.url="/api/mail/accounts",g.getPage(b).then(function(c){a.displayedMailAccounts=c.rows,b.pagination.numberOfPages=c.total_pages}),c.socket.on("mail_server_in:save",function(){a.initList(b)}),c.socket.on("mail_account:save",function(){a.initList(b)}),c.socket.on("mail_account:remove",function(c){a.mailAccounts.checked=_.without(a.mailAccounts.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/accounts/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/accounts",{params:{id:a.mailAccounts.checked}}).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(d.instant(a.message),"danger")})}),a.restart=function(a){c.socket.emit("IMAP:"+a+":RESTART",{msg:"IMAP:"+a+":RESTART"})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.list",{url:"/list",templateUrl:"app/mail/account/list/list.html",controller:"MailAccountListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions",{url:"/actions",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionListCtrl",["$scope","$http","$translate","$stateParams","socket","xAlert","Modal",function(a,b,c,d,e,f,g){a.initActons=function(){console.log(d),a.sortableOptions={stop:function(){console.log("stop",_.pluck(a.mailApplications,"id")),b.post("api/mail/accounts/"+d.accountId+"/applications",{applications:_.pluck(a.mailApplications,"id")}).success(function(b){angular.copy(b,a.mailApplications)}).error(function(a){console.error(a)})}},b.get("/api/mail/applications",{params:{MailAccountId:d.accountId}}).success(function(b){a.mailApplications=b,e.socket.on("mail_application:remove",function(b){_.remove(a.mailApplications,{id:b.id})})})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/mail/applications/"+a).success(function(){f.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.list",{url:"/list",templateUrl:"app/mail/account/view/action/list/list.html",controller:"MailAccountViewActionListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initAction=function(){a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],b.get("/api/mail/applications/"+c.actionId).success(function(b){if(a.application=b,a.application.alwaysTime=!1,a.application.IntervalId)a.application.intType="list";else switch(a.application.interval){case"*,*,*,*":a.application.intType="always";break;default:a.application.intType="custom"}var c=a.application.interval.split(",");"*"===c[0]?a.application.alwaysTime=!0:(a.application.t_from=moment(new Date),a.application.t_to=moment(new Date),a.application.t_from.hour(c[0].split("-")[0].split(":")[0]),a.application.t_from.minute(c[0].split("-")[0].split(":")[1]),a.application.t_to.hour(c[0].split("-")[1].split(":")[0]),a.application.t_to.minute(c[0].split("-")[1].split(":")[1])),"*"===c[1]?(a.application.wd_from="always",a.application.wd_to="always"):(a.application.wd_from=c[1].split("-")[0],a.application.wd_to=c[1].split("-")[1]),"*"===c[2]?(a.application.md_from="always",a.application.md_to="always"):(a.application.md_from=c[2].split("-")[0],a.application.md_to=c[2].split("-")[1]),"*"===c[3]?(a.application.m_from="always",a.application.m_to="always"):(a.application.m_from=c[3].split("-")[0],a.application.m_to=c[3].split("-")[1]),console.log(c),a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})}).error(function(a){console.error(a)})},a.getQueues=function(){b.get("/api/mail/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.updateItem=function(){var e=["*","*","*","*"],g={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.id};switch(a.application.app){case"agent":g.UserId=a.application.UserId;break;case"queue":g.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":g.interval=e.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(e[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),e[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",e[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",e[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",g.interval=e.join(","),delete a.application.IntervalId;break;case"list":g.IntervalId=a.application.IntervalId}b.put("/api/mail/applications/"+c.actionId,g).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.view",{url:"/view/:actionId",templateUrl:"app/mail/account/view/action/view/view.html",controller:"MailAccountViewActionViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewActionWizardCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert","WizardHandler","socket","application","interval",function(a,b,c,d,e,f,g,h,i,j){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){console.log(c),a.apps=[{name:"Queue",value:"queue"},{name:"Agent",value:"agent"}],a.$application=i.application,a.$stateParams=c,a.$interval=j.interval,a.forms={},a.application={alwaysTime:!0},a.$watch("application.t_from",function(b){a.application.t_from_hm=moment(b).format("HH:mm")}),a.$watch("application.t_to",function(b){a.application.t_to_hm=moment(b).format("HH:mm")})},a.getQueues=function(){b.get("/api/mail/queues",{params:{page:0,per_page:500}}).success(function(b){a.queues=b.rows}).error(function(a){console.error(a)})},a.getAgents=function(){b.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=b.rows}).error(function(a){console.error(a)})},a.getIntervals=function(){b.get("/api/intervals",{params:{page:0,per_page:500}}).success(function(b){a.intervals=b.rows}).error(function(a){console.error(a)})},a.createItem=function(){var d=["*","*","*","*"],f={app:a.application.app,timeout:a.application.timeout,MailAccountId:c.accountId};switch(a.application.app){case"agent":f.UserId=a.application.UserId;break;case"queue":f.MailQueueId=a.application.MailQueueId}switch(a.application.intType){case"always":f.interval=d.join(","),delete a.application.IntervalId;break;case"custom":a.application.alwaysTime||(d[0]=a.application.alwaysTime?"*":a.application.t_from_hm+"-"+a.application.t_to_hm),d[1]=a.application.wd_from&&a.application.wd_to?a.application.wd_from+"-"+a.application.wd_to:"*",d[2]=a.application.md_from&&a.application.md_to?a.application.md_from+"-"+a.application.md_to:"*",d[3]=a.application.m_from&&a.application.m_to?a.application.m_from+"-"+a.application.m_to:"*",f.interval=d.join(","),delete a.application.IntervalId;break;case"list":f.IntervalId=a.application.IntervalId}b.post("/api/mail/applications",f).success(function(){e.path("/mail/accounts/view/"+c.accountId+"/actions/list")}).error(function(a){console.error(a)})},a.formValidation=function(a){return a},a.next=function(){g.wizard().next()}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view.actions.wizard",{url:"/wizard",templateUrl:"app/mail/account/view/action/wizard/wizard.html",controller:"MailAccountViewActionWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAccountViewCtrl",["$scope","$http","$stateParams","$translate","$location","xAlert",function(a,b,c,d,e,f){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initView=function(){b.get("/api/mail/accounts/"+c.accountId).success(function(b){a.account=b})},a.updateItemMailAccount=function(){b.put("/api/mail/accounts/"+c.accountId,{name:a.account.name,description:a.account.description,address:a.account.address}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateItemMailServerIn=function(){b.put("/api/mail/servers/in/"+a.account.MailServerIn.id,a.account.MailServerIn).success(function(){
+f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.updateItemMailServerOut=function(){b.put("/api/mail/servers/out/"+a.account.MailServerOut.id,a.account.MailServerOut).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.view",{url:"/view/:accountId",templateUrl:"app/mail/account/view/view.html",controller:"MailAccountViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.mail.accounts.view.settings",{url:"/settings",templateUrl:"app/mail/account/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("MailAccountWizardCtrl",["$scope","$http","$location","$translate","WizardHandler","xAlert",function(a,b,c,d,e,f){a.isActive=!0,a.size="small",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.initWizard=function(){a.forms={},a.info={},a["in"]={"delete":!1,ssl:!0,protocol:"IMAP",port:993,mailbox:"INBOX",filter:"UNSEEN"},a.out={ssl:!0,port:465},a.$translate=d},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a},a.createItem=function(){var e={name:a.info.name,address:a.info.address,description:a.info.description,incoming:a["in"],outgoing:a.out};b.post("api/mail/accounts",e).success(function(){c.path("/mail/accounts/list")}).error(function(a){console.log(a),f.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.accounts.wizard",{url:"/wizard",templateUrl:"app/mail/account/wizard/wizard.html",controller:"MailAccountWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations",{url:"/automations",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailAutomationListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={mailAutomationsByPage:{name:"10",value:10}},a.mailAutomationsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.mailAutomations={checked:[]},a.check=function(b,c){c?a.mailAutomations.checked=angular.copy(_.pluck(a.displayedMailAutomations,"id")):a.mailAutomations.checked=[]},a.getMailAutomations=function(b){return _.map(a.displayedMailAutomations,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("mail_business_automation"),b.url="/api/mail/business/automations",e.getPage(b).then(function(c){a.displayedMailAutomations=c.mailAutomations,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.mailAutomationsByPage,a.displayedMailAutomations.length),d.updateTableConfig(a.conf.mailAutomationsByPage,a.displayedMailAutomations.length)}),g.socket.on("mail_business_automation:save",function(){a.initList(b)}),g.socket.on("mail_business_automation:remove",function(c){a.mailAutomations.checked=_.without(a.mailAutomations.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/business/automations/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"danger")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/business/automations",{params:{id:a.mailAutomations.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/mail/business/automations/"+a,{status:d}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.list",{url:"/list",templateUrl:"app/mail/automation/list/list.html",controller:"MailAutomationListCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailAutomationViewCtrl",["$scope","$stateParams","$http","$translate","automation","socket","xAlert",function(a,b,c,d,e,f,g){a.initView=function(){a.forms={info:{}},a.automations=e.automations,c.get("/api/mail/business/automations/"+b.id).success(function(c){a.test=c,a.automation=c,f.syncUpdatesByAttributes("business_condition",{MailBusinessAutomationId:b.id},c.BusinessConditions)}).error(function(){})},a.updateAutomation=function(){c.put("/api/mail/business/automations/"+a.automation.id,{name:a.automation.name,description:a.automation.description}).success(function(a){g.show(d.instant("MESSAGE_WELL_DONE"),"success"),console.log(a)}).error(function(a){console.error(a)})},a.getOperatorsByCondition=function(a){var b=[],c=_.find(e.automations.conditions,{key:a});return c.operators&&c.operators.length&&(b=c.operators),b},a.getAttributesByCondition=function(a){var b=[],c=_.find(e.automations.conditions,{key:a});if(c.attributes&&c.attributes.length)switch(c.key){case"createdAt":b=_.map(c.attributes,function(a){return a.value=parseInt(a.value,10),a});break;default:b=c.attributes}return b},a.addNewCondition=function(b){c.post("/api/business/conditions",{type:b,condition:"status",MailBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessConditions.push(b)}).error(function(a){console.error(a)})},a.removeCondition=function(a){c["delete"]("/api/business/conditions/"+a).success(function(a){console.log(a)}).error(function(a){console.error(a)})},a.addNewAction=function(){c.post("/api/business/actions",{condition:"status",MailBusinessAutomationId:a.automation.id}).success(function(b){a.automation.BusinessActions.push(b)}).error(function(a){console.error(a)})},a.removeAction=function(b){c["delete"]("/api/business/actions/"+b).success(function(b){a.automation.BusinessActions=_.reject(a.automation.BusinessActions,{id:b.id})}).error(function(a){console.error(a)})},a.updateCondition=function(a,b,d){var e={};e[b]=d,c.put("/api/business/conditions/"+a,e).error(function(a){console.error(a)})},a.updateAction=function(a,b,d){var e={};e[b]=d,c.put("/api/business/actions/"+a,e).success(function(a){console.log(a)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.view",{url:"/view/:id",templateUrl:"app/mail/automation/view/view.html",controller:"MailAutomationViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.mail.automations.view.settings",{url:"/settings",templateUrl:"app/mail/automation/view/view.settings.html"}).state("main.mail.automations.view.routes",{url:"/routes",templateUrl:"app/mail/automation/view/view.routes.html"}).state("main.mail.automations.view.application",{url:"/application",templateUrl:"app/mail/automation/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("MailAutomationWizardCtrl",["$scope","$http","$location","$translate","automation","WizardHandler","xAlert",function(a,b,c,d,e,f,g){a.forms={},a.automations={or:[],and:[],actions:[]},a.addNewChoice=function(b){var c=angular.copy(e.automations);a.automations[b].push(c)},a.removeChoice=function(b,c){a.automations[b].splice(c)},a.goNext=function(){return a.automations.actions.length?a.automations.or.length||a.automations.and.length?void f.wizard().next():(g.show(d.instant("MESSAGE_INSERT_AT_LEAST_ONE_CONDITION"),"danger"),!1):(g.show(d.instant("MESSAGE_INSERT_AT_LEAST_ONE_ACTION"),"danger"),!1)},a.createItem=function(){a.automations.or.forEach(function(a){a.condition=a.condition.key,a.type="or",delete a.conditions,delete a.actions}),a.automations.and.forEach(function(a){a.condition=a.condition.key,a.type="and",delete a.conditions,delete a.actions}),a.automations.actions.forEach(function(a){a.condition=a.condition.key,delete a.conditions,delete a.actions}),b.post("api/mail/business/automations",a.automations).success(function(){c.path("/mail/automations/list")}).error(function(){g.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG","danger"))})},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.automations.wizard",{url:"/wizard",templateUrl:"app/mail/automation/wizard/wizard.html",controller:"MailAutomationWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailComposeCtrl",["$scope","$http","$location","$cookieStore","$translate","xAlert","FileUploader",function(a,b,c,d,e,f,g){var h=a.uploader=new g({url:"api/mail/messages",withCredentials:!0,headers:{Authorization:"Bearer "+d.get("token")},queueLimit:1});h.onBeforeUploadItem=function(b){b.formData.push({mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,attachment:!0})},h.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success")},h.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_FAILURE"),"danger")},h.onCompleteAll=function(){console.log("onCompleteAll"),c.path("/mail/inbox/incoming")},a.forms={},a.form={to:[],sto:[],cc:[],scc:[]},b.get("api/mail/accounts").success(function(b){a.mailAccounts=b.rows}),a.sendMail=function(){if(h.queue.length)console.log("file"),h.uploadAll();else{console.log("no file");var d={mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null};b.post("/api/mail/messages",d).success(function(){f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),c.path("/mail/inbox/incoming")}).error(function(){f.show(e.instant("MESSAGE_MAIL_MESSAGE_SEND_FAILURE"),"danger")})}},a.cancel=function(){a.form.sto=[],a.form.scc=[],delete a.form.from,delete a.form.text,delete a.form.html}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.compose",{url:"/compose",templateUrl:"app/mail/inbox/room/room.html",controller:"MailComposeCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailInboxCtrl",["$scope","$http","$location",function(a,b,c){a.go=function(a){c.path(a)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox",{url:"/inbox",templateUrl:"app/mail/inbox/inbox.html",controller:"MailInboxCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css","assets/css/todo.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("MailIncomingCtrl",["$scope","$http","$location","$translate","$timeout","socket","xAlert","Auth","stResource","Modal",function(a,b,c,d,e,f,g,h,i,j){a.$location=c,a.conf={mailRoomsByPage:{name:"10",value:10},labels:["fullname","name","email"],test:"OPEN"},a.mailRoomsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailRooms={checked:[]},a.check=function(b,c){c?a.mailRooms.checked=angular.copy(_.pluck(a.displayedMailRooms,"id")):a.mailRooms.checked=[]},a.initList=function(b){f.unsyncUpdates("mail_room"),b.search.predicateObject||(b.search.predicateObject={}),b.sort.predicate="createdAt",b.sort.reverse=!0,h.isAdmin()?(f.socket.on("mail_room:save",function(){e(function(){g.show(d.instant("MESSAGE_MAIL_NEW_INCOMING_MAIL"),"success"),a.initList(b)},2e3)}),f.socket.on("mail_room:remove",function(c){a.mailRooms.checked=_.without(a.mailRooms.mailRooms,c.id),a.initList(b)})):(f.socket.on("mail_room:save",function(c){c.UserId===h.getCurrentUser().id&&a.initList(b)}),f.socket.on("mail_room:remove",function(c){c.UserId===h.getCurrentUser().id&&(a.mailRooms.checked=_.without(a.mailRooms.checked,c.id),a.initList(b))}),b.search.predicateObject.UserId=h.getCurrentUser().id),b.url="/api/mail/rooms",i.getPage(b).then(function(c){a.displayedMailRooms=c.mailRooms,b.pagination.numberOfPages=c.total_pages})},a.deleteItems=j.confirm["delete"](function(){b["delete"]("/api/mail/rooms",{params:{id:a.mailRooms.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})}),a.$on("$destroy",function(){f.unsyncUpdates("mail_room")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.incoming",{url:"/incoming",templateUrl:"app/mail/inbox/incoming/incoming.html",controller:"MailIncomingCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/inbox.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("MailRoomCtrl",["$scope","$http","$stateParams","$timeout","$cookieStore","$location","$translate","$log","xAlert","Auth","socket","FileUploader",function(a,b,c,d,e,f,g,h,i,j,k,l){function m(){a.lastMessage=_.reject(a.mailRoom.MailMessages,function(a){return"RECEIVED"!==a.status}),a.lastMessage=_.sortByOrder(a.lastMessage,["id"],["desc"])[0],a.lastMessage&&(a.form.subject=a.mailRoom.subject,a.form.from=a.mailRoom.MailAccount,a.form.to=[a.lastMessage.From.email],a.form.cc=a.lastMessage.To.concat(a.lastMessage.Cc),a.form.cc=_.pluck(a.form.cc,"email"),a.form.cc=_.remove(a.form.cc,function(b){return a.mailRoom.MailAccount?b!==a.mailRoom.MailAccount.address:void 0}),a.form.cc=a.form.cc,a.form.inReplyTo=a.lastMessage.messageId,a.form.MailRoomId=a.lastMessage.MailRoomId)}var n=a.uploader=new l({url:"api/mail/messages",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+e.get("token")}});n.onBeforeUploadItem=function(b){var c={mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,MailRoomId:a.mailRoom.id};a.mailRoom.roomId&&(c.inReplyTo=a.mailRoom.roomId),b.formData.push(c)},n.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d)},n.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d)},n.onCompleteAll=function(){console.log("onCompleteAll"),f.path("/mail/inbox/incoming")},a.initRoomView=function(){a.Auth=j,a.forms={},a.form={to:[],sto:[],cc:[],scc:[]},b.get("/api/agents").success(function(b){a.agents=b.rows}),b.get("/api/mail/accounts").success(function(b){a.mailAccounts=b.rows}),b.get("/api/mail/rooms/"+c.id).success(function(c){a.mailRoom=c,k.syncUpdatesByAttributes("mail_message",{MailRoomId:a.mailRoom.id},a.mailRoom.MailMessages),"NEW"===a.mailRoom.status&&b.put("/api/mail/rooms/"+a.mailRoom.id,{status:"OPEN"}),m()}).error(function(){f.path("/mail/inbox/incoming")})},a.getMailString=function(a){return a.fullname?a.fullname+" <"+a.email+">":"<"+a.email+">"},a.sendMail=function(){if(n.queue.length)n.uploadAll();else{if(!a.form.to.length)return a.forms.compose.to.$valid=!1,void(a.forms.compose.to.$invalid=!0);a.forms.compose.to.$valid=!0,a.forms.compose.to.$invalid=!1;var c={mailAccountId:a.form.from.id,status:"SENDING",roomStatus:"OPEN",from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,MailRoomId:a.mailRoom.id};a.mailRoom.roomId&&(c.inReplyTo=a.mailRoom.roomId),h.debug(c),b.post("/api/mail/messages",c).success(function(){i.show(g.instant("MESSAGE_MAIL_MESSAGE_SEND_SUCCESS"),"success"),Metronic.scrollTop()}).error(function(){i.show(g.instant("MESSAGE_MAIL_MESSAGE_SEND_FAILURE"),"danger")})}},a.cancel=function(){a.form.sto=[],a.form.scc=[],delete a.form.text},a.updateStatus=function(d){b.put("/api/mail/rooms/"+c.id,{status:d}).success(function(b){a.mailRoom.status=b.status,i.show(g.instant("MESSAGE_STATUS_UPDATE_SUCCESS"),"success")}).error(function(){i.show(g.instant("MESSAGE_STATUS_UPDATE_FAILURE"),"danger")})},a.assignAgent=function(a){b.put("/api/mail/rooms/"+c.id,{UserId:a}).success(function(){i.show(g.instant("MESSAGE_MAIL_MESSAGE_ASSIGNEMNT_SUCCESS"),"success")}).error(function(){i.show(g.instant("MESSAGE_MAIL_MESSAGE_ASSIGNEMNT_FAILURE"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.inbox.room",{url:"/room/:id",templateUrl:"app/mail/inbox/room/room.html",controller:"MailRoomCtrl",authenticate:!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail",{url:"/mail",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailQueueListCtrl",["$scope","$http","$translate","$rootScope","socket","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("mail_queue")}),a.conf={queuesByPage:{name:"10",value:10}},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailQueues={checked:[]},a.check=function(b,c){c?a.mailQueues.checked=angular.copy(_.pluck(a.displayedMailQueues,"id")):a.mailQueues.checked=[]},a.getMailQueues=function(b){return _.map(a.displayedMailQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("mail_queue"),b.url="/api/mail/queues/",g.getPage(b).then(function(c){a.displayedMailQueues=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(c.queuesByPage,a.displayedMailQueues.length),d.updateTableConfig(a.conf.queuesByPage,a.displayedMailQueues.length)}),e.socket.on("mail_queue:save",function(){a.initList(b)}),e.socket.on("mail_queue:remove",function(c){a.mailQueues.checked=_.without(a.mailQueues.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/queues/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/queues/",{params:{id:a.mailQueues.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.list",{url:"/list",templateUrl:"app/mail/queue/list/list.html",controller:"MailQueueListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailQueueViewCtrl",["$scope","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e){var f=function(){return{select:function(c){b.post("/api/mail/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/mail/queues/"+a.queue.id+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/mail/queues/"+d.id).success(function(b){a.queue=b}).error(function(a){console.error(a)})},a.updateMailQueue=function(){var f=angular.copy(a.queue);b.put("/api/mail/queues/"+d.id,f).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){e.show(b.message,"success"),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b.get("/api/mail/user_has_queues",{params:{MailQueueId:a.queue.id}}).success(function(b){ComponentsDropdowns.bindMailQueue(a.teams,_.pluck(b,"UserId"),f)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.view",{url:"/view/:id",templateUrl:"app/mail/queue/view/view.html",controller:"MailQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.mail.queues.view.settings",{url:"/settings",templateUrl:"app/mail/queue/view/view.settings.html"}).state("main.mail.queues.view.agents",{url:"/agents",templateUrl:"app/mail/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailQueueWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert",function(a,b,c,d,e){a.forms={},a.item={},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/mail/queues",a.item).success(function(){c.path("/mail/queues/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.queues.wizard",{url:"/wizard",templateUrl:"app/mail/queue/wizard/wizard.html",controller:"MailQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewAgentCtrl",["$scope","$http","socket",function(a,b,c){console.log("MailRealtimeViewAgentCtrl"),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initAgents=function(){b.get("/api/report/mails").success(function(b){a.agents=b,c.socket.on("report_mail:save",function(b){var c=_.find(a.agents,{id:b.id});c||a.agents.unshift(b)}),c.socket.on("report_mail:update",function(b){var c=_.find(a.agents,{id:b.id}),d=a.agents.indexOf(c);c&&_.merge(a.agents[d],b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewSessionCtrl",["$scope","$http","socket",function(a,b,c){a.conf={sessionsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.sessionsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){c.unsyncUpdates("report_mail:save"),c.unsyncUpdates("report_mail:update")}),a.initMails=function(){b.get("/api/report/mail/sessions").success(function(b){a.sessions=b,c.socket.on("report_mail_session:save",function(b){var c=_.find(a.sessions,{id:b.id}),d=a.sessions.indexOf(c);c?_.merge(a.sessions[d],b):a.sessions.unshift(b)})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("MailRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.mail.realtime.view.agents"}],a.sessions=[{name:"View1",link:"main.mail.realtime.view.sessions"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.realtime.view",{url:"/view",templateUrl:"app/mail/realtime/view/view.html",controller:"MailRealtimeViewCtrl"}).state("main.mail.realtime.view.agents",{url:"/agents",controller:"MailRealtimeViewAgentCtrl",templateUrl:"app/mail/realtime/view/agent/agent.html"}).state("main.mail.realtime.view.sessions",{url:"/sessions",controller:"MailRealtimeViewSessionCtrl",templateUrl:"app/mail/realtime/view/session/session.html"})}]),angular.module("xCallyShuttleApp").controller("MailStatisticsCtrl",["$scope","$http","$translate","socket",function(a,b,c,d){a.message="Hello",a.$translate=c,b.get("api/mail/rooms").success(function(b){a.mailRooms=b,d.syncUpdates("mail_room",a.mailRooms)}),b.get("api/mail/messages").success(function(b){a.mailMessages=b,d.syncUpdates("mail_message",a.mailMessages)})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.statistics",{url:"/statistics",templateUrl:"app/mail/statistics/statistics.html",controller:"MailStatisticsCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.mail.statistics.summary",{url:"/summary",templateUrl:"app/mail/statistics/statistics.summary.html",controller:"MailStatisticsCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile-old.css"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailTemplateListCtrl",["$scope","$http","$translate","$rootScope","socket","Modal","stResource","xAlert",function(a,b,c,d,e,f,g,h){a.$on("$destroy",function(){e.unsyncUpdates("mail_template")}),a.conf={templatesByPage:{name:"10",value:10}},a.templatesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mailTemplates={checked:[]},a.check=function(b,c){c?a.mailTemplates.checked=angular.copy(_.pluck(a.displayedMailTemplates,"id")):a.mailTemplates.checked=[]},a.getMailTemplates=function(b){return _.map(a.displayedMailTemplates,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){e.unsyncUpdates("mail_template"),b.url="/api/mail/templates/",g.getPage(b).then(function(c){a.displayedMailTemplates=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(c.templatesByPage,a.displayedMailTemplates.length),d.updateTableConfig(a.conf.templatesByPage,a.displayedMailTemplates.length)}),e.socket.on("mail_template:save",function(){a.initList(b)}),e.socket.on("mail_template:remove",function(c){a.mailTemplates.checked=_.without(a.mailTemplates.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/mail/templates/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){h.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/mail/templates/",{params:{id:a.mailTemplates.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.templates.list",{url:"/list",templateUrl:"app/mail/template/list/list.html",controller:"MailTemplateListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.templates",{url:"/templates",template:"<div ui-view></div>","abstract":!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailTemplateViewCtrl",["$scope","$http","$translate","$stateParams","xAlert",function(a,b,c,d,e){a.items={},a.initItem=function(){b.get("/api/mail/accounts").success(function(c){a.mailAccounts=c.rows,b.get("/api/mail/templates/"+d.id).success(function(b){var c=_.find(a.mailAccounts,{address:b.from});a.item={name:b.name,description:b.description,subject:b.subject,from:{address:c.address,name:c.name,id:c.id},to:[],sto:b.to.split(";"),cc:[],scc:b.cc.split(";"),html:b.html,text:b.text,MailAccountId:b.MailAccountId}}).error(function(a){e.show(a.message,"danger")})})},a.updateItem=function(){var f={name:a.item.name,description:a.item.description,from:a.item.from.address,to:a.item.sto.join(";"),cc:a.item.scc.join(";"),subject:a.item.subject||null,html:a.item.html||null,text:a.item.text||null,MailAccountId:a.item.from.id};b.put("/api/mail/templates/"+d.id,f).success(function(a){console.log(a),e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.templates.view",{url:"/view/:id",templateUrl:"app/mail/template/view/view.html",controller:"MailTemplateViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.mail.templates.view.settings",{url:"/settings",templateUrl:"app/mail/template/view/view.settings.html"}).state("main.mail.templates.view.agents",{url:"/agents",templateUrl:"app/mail/template/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("MailTemplateWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert",function(a,b,c,d,e){a.form={to:[],sto:[],cc:[],scc:[]},b.get("api/mail/accounts").success(function(b){a.mailAccounts=b.rows}),a.forms={},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.saveTemplate=function(){var d={name:a.form.name,description:a.form.description,from:a.form.from.address,to:a.form.sto.join(";"),cc:a.form.scc.join(";"),subject:a.form.subject||null,html:a.form.html||null,text:a.form.text||null,MailAccountId:a.form.from.id};b.post("/api/mail/templates",d).success(function(){c.path("/mail/templates/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.templates.wizard",{url:"/wizard",templateUrl:"app/mail/template/wizard/wizard.html",controller:"MailTemplateWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("MailTimelineListCtrl",["$scope","$http","socket",function(a,b,c){function d(b){a.events>50&&a.events.pop(),a.events.unshift(b)}a.initList=function(){a.events=[],b.get("/api/events/channel/mail").success(function(a){a.forEach(d),c.socket.on("event:chat:save",d)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.timeline.list",{url:"/list",templateUrl:"app/mail/timeline/list/list.html",controller:"MailTimelineListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/timeline.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.mail.timeline",{url:"/timeline",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("MainCtrl",["$scope","$http","$rootScope","$cookies","$translate","$interval","socket","Auth",function(a,b,c,d,e,f,g,h){a.awesomeThings=[],a.isLoggedIn=h.isLoggedIn,a.isAdmin=h.isAdmin,a.getCurrentUser=h.getCurrentUser,
+c.workspaces=[],c.mainTab={active:!0},a.$on("$viewContentLoaded",function(){Metronic.init()}),c.language=e.use(),a.changeLanguage=function(a){e.use(a).then(function(a){c.language=a})["catch"](function(a){console.error(a)})},a.$on("$destroy",function(){})}]),angular.module("xCallyShuttleApp").directive("ngSpinnerBar",["$rootScope",function(a){return{link:function(b,c){c.addClass("hide"),a.$on("$stateChangeStart",function(){"spinner-page"===c[0].id&&c.removeClass("hide")}),a.$on("$stateChangeSuccess",function(){"spinner-page"===c[0].id&&(c.addClass("hide"),$("body").removeClass("page-on-load"),Layout.setSidebarMenuActiveLink("match"),setTimeout(function(){Metronic.scrollTop()},1e3))}),a.$on("$spinnerStart",function(){"spinner-request"===c[0].id&&c.removeClass("hide")}),a.$on("$spinnerStop",function(){"spinner-request"===c[0].id&&c.addClass("hide")}),a.$on("$stateNotFound",function(){"spinner-page"===c[0].id&&c.addClass("hide")}),a.$on("$stateChangeError",function(){"spinner-page"===c[0].id&&c.addClass("hide")})}}}]).directive("a",function(){return{restrict:"E",link:function(a,b,c){(c.ngClick||""===c.href||"#"===c.href)&&b.on("click",function(a){a.preventDefault()})}}}).directive("nxEqual",function(){return{require:"ngModel",link:function(a,b,c,d){return c.nxEqual?(a.$watch(c.nxEqual,function(a){d.$setValidity("nxEqual",a===d.$viewValue)}),void d.$parsers.push(function(b){var e=b===a.$eval(c.nxEqual);return d.$setValidity("nxEqual",e),e?b:void 0})):void console.error("nxEqual expects a model as an argument!")}}}).directive("ngEnter",function(){return function(a,b,c){b.bind("keydown keypress",function(b){13===b.which&&(a.$apply(function(){a.$eval(c.ngEnter)}),b.preventDefault())})}}).directive("dropdownMenuHover",function(){return{link:function(a,b){b.dropdownHover()}}}).directive("uiSelectRequired",function(){return{require:"ngModel",link:function(a,b,c,d){d.$validators.uiSelectRequired=function(a){return a&&a.length}}}}).directive("rpattern",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){function e(a,b){return null==b||""===b||!h||a.test(b)?(d.$setValidity("pattern",!0),b):void d.$setValidity("pattern",!1)}var f,g=c.rpattern,h=!0;g&&(g.match(/^\/(.*)\/$/)?(g=new RegExp(g.substr(1,g.length-2)),f=function(a){return e(g,a)}):f=function(b){var c=a.$eval(g);if(!c||!c.test)throw new Error("Expected "+g+" to be a RegExp but was "+c);return e(c,b)}),d.$formatters.push(f),d.$parsers.push(f),c.$observe("required",function(a){h=a,f(d.$viewValue)})}}}).directive("queryBuilder",["$compile",function(a){return{restrict:"E",scope:{group:"=",fields:"=",operators:"=",properties:"="},templateUrl:"app/main/template.queryBuilderView.html",compile:function(b,c){var d,e;return d=b.contents().remove(),function(b,c,f){b.booleans=[{name:"AND"},{name:"OR"}],b.addCondition=function(a){"CONDITION"==a?b.group.rules.push({operator:"=",field:"",data:""}):b.group.rules.push({field:"",data:""})},b.removeCondition=function(a){b.group.rules.splice(a,1)},b.addGroup=function(a){b.group.rules.push({group:{"boolean":"AND",rules:[],type:a,main:!1}})},b.removeGroup=function(){b.$parent.group.rules.splice(b.$parent.$index,1)},e||(e=a(d)),c.append(e(b,function(a){return a}))}}}}]),angular.module("xCallyShuttleApp").filter("capitalize",function(){return function(a){return a?a.replace(/([^\W_]+[^\s-]*) */g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()}):""}}),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main",{"abstract":!0,templateUrl:"app/main/main.html",controller:"MainCtrl",resolve:{authorization:["$q","Auth","$state","$timeout","$location",function(a,b,c,d,e){return b.getToken()?a.when():(d(function(){e.path("/login")}),a.reject())}]}})}]),angular.module("xCallyShuttleApp").factory("xAlert",["$translate","Notification",function(a,b){return{show:function(c,d){switch(d){case"success":b.success({message:c,title:'<i class="glyphicon glyphicon-ok"></i> <strong>'+a.instant("MESSAGE_SUCCESS")+"!</strong>",delay:5e3});break;case"danger":b.error({message:c,title:'<i class="glyphicon glyphicon-warning-sign"></i> <strong>'+a.instant("MESSAGE_ERROR")+"!</strong>",delay:1e4});break;default:b.info(c)}}}}]).factory("stResource",["$q","$filter","$timeout","$rootScope","$http","$translate","xAlert",function(a,b,c,d,e,f,g){return{getPage:function(b){var c={page:Math.ceil(b.pagination.start/b.pagination.number),per_page:b.pagination.number};b.sort.predicate&&(c.sort_by=b.sort.predicate,c.sort_order=b.sort.reverse?"DESC":"ASC"),_.forIn(b.search.predicateObject,function(a,b){c[b]=a}),d.$broadcast("$spinnerStart"),e.get(b.url,{params:c}).success(function(a){h.resolve(a),d.$broadcast("$spinnerStop")}).error(function(a){g.show(f.instant(a.message),"danger"),d.$broadcast("$spinnerStop")});var h=a.defer();return h.promise}}}]),angular.module("xCallyShuttleApp").controller("MarketCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.market",{url:"/market",templateUrl:"app/market/market.html",controller:"MarketCtrl"})}]),angular.module("xCallyShuttleApp").controller("MotionbarCtrl",["$scope","$stateParams","$cookieStore","settings","Auth",function(a,b,c,d,e){e.loginWithToken(b.token,b.userId,b.name),a.getCurrentUser=e.getCurrentUser,d.layout.pageQuickSidebarOpened=!0}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("motionbar",{url:"/motionbar",template:"<div ui-view></div>","abstract":!0}).state("motionbar.chat",{url:"/chat?token&userId&name",templateUrl:"app/motionbar/motionbar.chat.html",controller:"MotionbarCtrl"})}]),angular.module("xCallyShuttleApp").controller("SoundListCtrl",["$scope","$http","socket","Modal","$q","FileUploader","$translate","xAlert","$cookieStore","$sce",function(a,b,c,d,e,f,g,h,i,j){a.isCollapsed=!0,a.audioSources={},a["delete"]=d.confirm["delete"](function(a){b["delete"]("/api/uploads/"+a).success(function(a){}).error(function(a){console.log(a)})}),a.getAudioSrc=function(a){return"/api/uploads/"+a},a.updateAudio=function(a,c){var d=e.defer();return b.put("/api/uploads/"+a,c).success(function(a){d.resolve()}).error(function(a){console.log(a.message),d.reject(a.message)}),d.promise},a.$on("$destroy",function(){c.unsyncUpdates("upload")}),a.initList=function(){b.get("/api/uploads").success(function(b){a.sounds=b,a.sounds.forEach(function(a){k(a)}),c.syncUpdates("upload",a.sounds)}).error(function(a){})};var k=function(c){b.get("/api/uploads/stream/"+c.id).success(function(b){a.audioSources[c.id]=b}).error(function(a){console.error(a)})};a.getSecureSrc=function(a){return j.trustAsResourceUrl("data:audio/ogg;base64,"+a)},a.getSecureDownloadSrc=function(a){return j.trustAsResourceUrl("data:application/octet-stream;charset=utf-16le;base64,"+a)};var l=a.uploader=new f({url:"/api/uploads",withCredentials:!0,headers:{Authorization:"Bearer "+i.get("token")}});l.filters.push({name:"customFilter",fn:function(a,b){return this.queue.length<10}}),l.onWhenAddingFileFailed=function(a,b,c){console.info("onWhenAddingFileFailed",a,b,c)},l.onAfterAddingFile=function(a){console.info("onAfterAddingFile",a)},l.onAfterAddingAll=function(a){console.info("onAfterAddingAll",a)},l.onBeforeUploadItem=function(a){console.info("onBeforeUploadItem",a)},l.onProgressItem=function(a,b){console.info("onProgressItem",a,b),a.isUploading=!0},l.onProgressAll=function(a){console.info("onProgressAll",a)},l.onSuccessItem=function(a,b,c,d){console.info("onSuccessItem",a,b,c,d),a.isUploading=!1},l.onErrorItem=function(a,b,c,d){console.info("onErrorItem",a,b,c,d),a.responseMessage=b,a.isUploading=!1},l.onCancelItem=function(a,b,c,d){console.info("onCancelItem",a,b,c,d),a.isUploading=!1},l.onCompleteItem=function(a,b,c,d){console.info("onCompleteItem",a,b,c,d),a.isUploading=!1},l.onCompleteAll=function(){console.info("onCompleteAll")},console.info("uploader",l)}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sounds.list",{url:"/list",templateUrl:"app/sound/list/list.html",controller:"SoundListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js"]})}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.sounds",{url:"/sounds",templateUrl:"app/sound/sound.html","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={odbcsByPage:{name:"10",value:10}},a.odbcsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Odbcs={checked:[]},a.check=function(b,c){c?a.Odbcs.checked=angular.copy(_.pluck(a.displayedOdbcs,"id")):a.Odbcs.checked=[]},a.getOdbcs=function(b){return _.map(a.displayedOdbcs,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("square_odbc"),b.url="/api/square/odbc",h.getPage(b).then(function(c){a.displayedOdbcs=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.odbcsByPage,a.displayedOdbcs.length),d.updateTableConfig(a.conf.odbcsByPage,a.displayedOdbcs.length)}),c.socket.on("square_odbc:save",function(){a.initList(b)}),c.socket.on("square_odbc:remove",function(c){a.Odbcs.checked=_.without(a.Odbcs.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/square/odbc/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/square/odbc",{params:{id:a.Odbcs.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.list",{url:"/list",templateUrl:"app/square/odbc/list/list.html",controller:"SquareOdbcListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs",{url:"/odbcs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getOdbc=function(){b.get("/api/square/odbc/"+e.id).success(function(b){delete b.pwd,a.odbc=b}).error(function(a){console.error(a),f.path("/square/odbcs/list")})},a.updateOdbc=function(){var f=angular.copy(a.odbc);b.put("/api/square/odbc/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.odbc=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.view",{url:"/view/:id",templateUrl:"app/square/odbc/view/view.html",controller:"SquareOdbcViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.square.odbcs.view.settings",{url:"/settings",templateUrl:"app/square/odbc/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("SquareOdbcWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={odbc:void 0},a.item={},a.next=function(){b.post("/api/square/odbc/validate/",a.item).success(function(a){a.length?e.show(f.instant("MESSAGE_EXIST_ODBC"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/square/odbc/",a.item).success(function(){d.path("/square/odbcs/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.odbcs.wizard",{url:"/wizard",templateUrl:"app/square/odbc/wizard/wizard.html",controller:"SquareOdbcWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("SquareProjectListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={projectsByPage:{name:"10",value:10}},a.projectsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Projects={checked:[]},a.check=function(b,c){c?a.Projects.checked=angular.copy(_.pluck(a.displayedProjects,"id")):a.Projects.checked=[]},a.getProjects=function(b){return _.map(a.displayedProjects,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("square_project"),b.url="/api/square/projects",h.getPage(b).then(function(c){a.displayedProjects=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.projectsByPage,a.displayedProjects.length),d.updateTableConfig(a.conf.projectsByPage,a.displayedProjects.length)}),c.socket.on("square_project:save",function(){a.initList(b)}),c.socket.on("square_project:remove",function(c){a.Projects.checked=_.without(a.Projects.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/square/projects/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/square/projects",{params:{id:a.Projects.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.list",{url:"/list",templateUrl:"app/square/project/list/list.html",controller:"SquareProjectListCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects",{url:"/projects",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("SquareProjectViewCtrl",["$scope","$http","$stateParams","socket","Auth","Modal","xAlert","$translate","$rootScope",function(a,b,c,d,e,f,g,h,i){a.squareProject={},a.getProject=function(){b.get("/api/square/projects/"+c.id).success(function(b){a.squareProject=b,angular.element(document).ready(function(){window.onerror=function(a,b,c){try{if(null!=a&&-1!=a.indexOf("Script error."));else{var d=new Image;d.src="assets/plugins/mxgraph/images/1x1.png?msg="+encodeURIComponent(a)+"&url="+encodeURIComponent(b)+"&lnum="+encodeURIComponent(c)}}catch(e){}},b.token=e.getToken();var a=new EditorUi(new Editor);a.openString(b.preproduction,b.name,b),a.editor.graphChangeListener=function(a,b){var c=b.properties.rtChange||!1;c||(this.modified=!0)}}),d.syncUpdates("square_project",[b],function(a,c,d){c.id===b.id})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.view",{url:"/view/:id",templateUrl:"app/square/project/view/view.html",controller:"SquareProjectViewCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",serie:!0,cache:!1,files:["assets/plugins/mxgraph/css/common.css","assets/plugins/mxgraph/css/explorer.css","assets/plugins/mxgraph/styles/grapheditor.css","assets/plugins/mxgraph/styles/custom.css","assets/plugins/mxgraph/js/custom.js","assets/plugins/mxgraph/js/mxClient.js","assets/plugins/mxgraph/js/Editor.js","assets/plugins/mxgraph/js/Graph.js","assets/plugins/mxgraph/js/EditorUi.js","assets/plugins/mxgraph/js/Actions.js","assets/plugins/mxgraph/js/Menus.js","assets/plugins/mxgraph/js/Sidebar.js","assets/plugins/mxgraph/js/Toolbar.js","assets/plugins/mxgraph/js/Dialogs.js"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("SquareProjectWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={project:void 0},a.item={},a.next=function(){b.post("/api/square/projects/validate/",a.item).success(function(a){a.length?e.show(f.instant("MESSAGE_EXIST_PROJECT"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/square/projects/",a.item).success(function(){d.path("/square/projects/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square.projects.wizard",{url:"/wizard",templateUrl:"app/square/project/wizard/wizard.html",controller:"SquareProjectWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.square",{url:"/square",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("TagListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={tagsByPage:{name:"10",value:10}},a.tagsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Tags={checked:[]},a.check=function(b,c){c?a.Tags.checked=angular.copy(_.pluck(a.displayedTags,"id")):a.Tags.checked=[]},a.getTags=function(b){return _.map(a.displayedTags,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("tag"),b.url="/api/tags",h.getPage(b).then(function(c){a.displayedTags=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.tagsByPage,a.displayedTags.length),d.updateTableConfig(a.conf.tagsByPage,a.displayedTags.length)}),c.socket.on("tag:save",function(){console.log("save"),a.initList(b)}),c.socket.on("tag:remove",function(c){a.Tags.checked=_.without(a.Tags.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/tags/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/tags",{params:{id:a.Tags.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/tag/list/create.modal.html",controller:"TagListCreateModalCtrl"});a.result.then(function(a){b.post("/api/tags",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tags.list",{url:"/list",templateUrl:"app/tag/list/list.html",controller:"TagListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tags",{url:"/tags",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TagViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getTag=function(){b.get("/api/tags/"+e.id).success(function(b){a.tag=b}).error(function(a){console.error(a),f.path("/tags/list")})},a.updateTag=function(){var f=angular.copy(a.tag);b.put("/api/tags/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.tag=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.tags.view",{url:"/view/:id",templateUrl:"app/tag/view/view.html",controller:"TagViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.tags.view.settings",{url:"/settings",templateUrl:"app/tag/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TeamListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={teamsByPage:{name:"10",value:10}},a.teamsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.teams={checked:[]},a.check=function(b,c){c?a.teams.checked=angular.copy(_.pluck(a.displayedTeams,"id")):a.teams.checked=[]},a.getTeams=function(b){return _.map(a.displayedTeams,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("team"),b.url="/api/teams/",h.getPage(b).then(function(c){a.displayedTeams=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.teamsByPage,a.displayedTeams.length),d.updateTableConfig(a.conf.teamsByPage,a.displayedTeams.length)}),f.socket.on("team:save",function(){a.initList(b)}),f.socket.on("team:remove",function(c){a.teams.checked=_.without(a.teams.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("api/teams/"+a).success(function(){e.show(c.instant("MESSAGE_TEAM_DELETE_SUCCESS"),"success")}).error(function(){e.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/teams",{params:{id:a.teams.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.list",{url:"/list",templateUrl:"app/team/list/list.html",controller:"TeamListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams",{url:"/teams",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TeamViewCtrl",["$scope","$http","$stateParams","$translate","xAlert",function(a,b,c,d,e){a.message="Hello";var f=function(){return{select:function(c){b.post("/api/teams/"+a.team.id+"/agents",{agents:c}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/teams/"+a.team.id+"/agents",{agents:c}).error(function(a){console.error(a)})}}};a.initView=function(){b.get("/api/teams/"+c.id).success(function(b){a.team=b}).error(function(a){e.show(a.message,"danger")})},a.initAgents=function(){b.get("/api/agents").success(function(d){a.agents=d.rows,b.get("/api/user_has_teams",{params:{TeamId:c.id}}).success(function(b){ComponentsDropdowns.bindTeam(_.pluck(b,"UserId"),_.map(a.agents,function(a){return{id:a.id,name:a.name}}),f)}).error(function(a){console.error(a)})})},a.updateItem=function(){var f=angular.copy(a.team),g=angular.copy(a.team);b.put("/api/teams/"+c.id,f).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.team=g,b.errors.forEach(function(a){e.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.view",{url:"/view/:id",templateUrl:"app/team/view/view.html",controller:"TeamViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.teams.view.agents",{url:"/agents",templateUrl:"app/team/view/view.agents.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]}])}]}}).state("main.teams.view.settings",{url:"/settings",templateUrl:"app/team/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TeamWizardCtrl",["$scope","$http","$translate","$location","WizardHandler","xAlert",function(a,b,c,d,e,f){a.forms={info:void 0},a.item={},a.createItem=function(){b.post("api/teams",a.item).success(function(){f.show(c.instant("MESSAGE_TEAM_CREATE_SUCCESS"),"success"),d.path("/teams/list")}).error(function(a){a.errors.forEach(function(a){f.show(a.message,"danger")})})},a.goNext=function(){e.wizard().next()},a.formValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.teams.wizard",{url:"/wizard",templateUrl:"app/team/wizard/wizard.html",controller:"TeamWizardCtrl",authenticate:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({name:"ui.select",insertBefore:"#ng_load_plugins_before",files:["assets/plugins/ui-select/select.min.css","assets/plugins/ui-select/select.min.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("TriggerListCtrl",["$scope","$http","$translate","$rootScope","stResource","Modal","socket","xAlert",function(a,b,c,d,e,f,g,h){a.conf={TriggersByPage:{name:"10",value:10}},a.TriggersByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.onText="On",a.offText="Off",a.isActive=!0,a.size="mini",a.animate=!0,a.radioOff=!0,a.handleWidth="auto",a.labelWidth="auto",a.inverse=!0,a.offColor="danger",a.onColor="success",a.Triggers={checked:[]},a.check=function(b,c){c?a.Triggers.checked=angular.copy(_.pluck(a.displayedTriggers,"id")):a.Triggers.checked=[]},a.getTriggers=function(b){return _.map(a.displayedTriggers,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){g.unsyncUpdates("trigger"),b.url="/api/triggers",e.getPage(b).then(function(c){a.displayedTriggers=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.TriggersByPage,a.displayedTriggers.length),d.updateTableConfig(a.conf.TriggersByPage,a.displayedTriggers.length)}),g.socket.on("trigger:save",function(){a.initList(b)}),g.socket.on("trigger:remove",function(c){a.Triggers.checked=_.without(a.Triggers.checked,c.id),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/triggers/"+a).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/triggers",{params:{id:a.Triggers.checked}}).success(function(){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(c.instant(a.message),"danger")})}),a.updateItem=function(a,d){b.put("api/triggers/"+a,{status:d}).success(function(a){h.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(c.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.list",{url:"/list",templateUrl:"app/trigger/list/list.html",controller:"TriggerListCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers",{url:"/triggers",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TriggerViewCtrl",["$scope","$stateParams","$http","$translate","xAlert","triggers",function(a,b,c,d,e,f){a.$triggers=f,a.forms={info:{}},a.fields={},a.properties=f.properties,a.initView=function(){c.get("/api/triggers/"+b.id).success(function(b){a.trigger=b,a.conditionsFilter=JSON.parse(b.conditions),a.actionsFilter=JSON.parse(b.actions),a.fields.conditions=a.$triggers.triggers[b.channel].conditions,a.fields.actions=a.$triggers.triggers[b.channel].actions}).error(function(a){e.show(a.message,"danger")})},a.getProperties=function(){g()};var g=function(){c.get("/api/mail/templates/").success(function(b){a.mailTemplates=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.id})}),a.properties.mail.template=c}).error(function(a){e.show(a.message,"danger")})};a.updateTrigger=function(){c.put("/api/triggers/"+a.trigger.id,{name:a.trigger.name,description:a.trigger.description,conditions:angular.toJson(a.conditionsFilter),actions:angular.toJson(a.actionsFilter)}).success(function(){e.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.view",{url:"/view/:id",templateUrl:"app/trigger/view/view.html",controller:"TriggerViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]})}]}}).state("main.triggers.view.settings",{url:"/settings",templateUrl:"app/trigger/view/view.settings.html"}).state("main.triggers.view.routes",{url:"/routes",templateUrl:"app/trigger/view/view.routes.html"}).state("main.triggers.view.application",{url:"/application",templateUrl:"app/trigger/view/view.application.html"})}]),angular.module("xCallyShuttleApp").controller("TriggerWizardCtrl",["$scope","$http","$location","xAlert","triggers","WizardHandler",function(a,b,c,d,e,f){a.$triggers=e,a.tempData={voice:{},mail:{},chat:{},fax:{}},a.item={},a.fields={},a.properties=e.properties,a.forms={general:{}};var g={group:{"boolean":"AND",rules:[],type:"CONDITION",main:!0}},h={group:{rules:[],type:"ACTION"}};a.conditionsFilter=_.clone(g,!0),a.actionsFilter=_.clone(h,!0),a.$watch("item.channel",function(b,c){c&&(a.tempData[c].conditionsFilter=_.clone(a.conditionsFilter,!0),a.tempData[c].actionsFilter=_.clone(a.actionsFilter,!0)),a.conditionsFilter=a.tempData[b].conditionsFilter?a.tempData[b].conditionsFilter:_.clone(g,!0),a.actionsFilter=a.tempData[b].actionsFilter?a.tempData[b].actionsFilter:_.clone(h,!0),a.fields.conditions=a.$triggers.triggers[b].conditions,a.fields.actions=a.$triggers.triggers[b].actions},!0),a.item.channel="voice",a.getProperties=function(){i()};var i=function(){b.get("/api/mail/templates/").success(function(b){a.mailTemplates=b.rows;var c=[];b.rows.forEach(function(a){c.push({name:a.name,value:a.id})}),a.properties.mail.template=c}).error(function(a){d.show(a.message,"danger")})};a.createItem=function(){a.item.conditions=angular.toJson(a.conditionsFilter),a.item.actions=angular.toJson(a.actionsFilter),b.post("/api/triggers",a.item).success(function(){c.path("/triggers/list")}).error(function(a){d.show(a.message,"danger")})},a.next=function(){f.wizard().next()},a.previous=function(){f.wizard().previous()},a.exitValidation=function(a){return a}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.triggers.wizard",{url:"/wizard",templateUrl:"app/trigger/wizard/wizard.html",controller:"TriggerWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("TrunkListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={trunksByPage:{name:"10",value:10},labels:["name","host","context","description"]},a.trunksByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.trunks={checked:[]
+},a.check=function(b,c){c?a.trunks.checked=angular.copy(_.pluck(a.displayedTrunks,"id")):a.trunks.checked=[]},a.getTrunks=function(b){return _.map(a.displayedTrunks,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("trunk"),b.url="/api/trunks",console.log(b),h.getPage(b).then(function(c){a.displayedTrunks=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.trunksByPage,a.displayedTrunks.length),d.updateTableConfig(a.conf.trunksByPage,a.displayedTrunks.length)}),f.socket.on("trunk:save",function(){a.initList(b)}),f.socket.on("trunk:remove",function(c){a.trunks.checked=_.without(a.trunks.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/trunks/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/trunks",{params:{id:a.trunks.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})}),a.$on("$destroy",function(){console.log("trunks destroy")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.list",{url:"/list",templateUrl:"app/trunk/list/list.html",controller:"TrunkListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks",{url:"/trunks",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("TrunkViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location",function(a,b,c,d,e,f,g){a.getTrunk=function(){b.get("/api/trunks/"+e.id).success(function(b){b.nat=""===b.nat?[]:b.nat.split(","),b.allow=""===b.allow?[]:b.allow.split(";"),b.insecure=""===b.insecure?[]:b.insecure.split(","),b.transport=""===b.transport?[]:b.transport.split(","),delete b.secret,a.trunk=b}).error(function(a){console.error(a),g.path("/trunks/list")})},a.updateTrunk=function(){""===a.trunk.password&&delete a.trunk.password;var f=angular.copy(a.trunk);f.nat=f.nat.join(","),f.allow=f.allow.join(";"),f.insecure=f.insecure.join(","),f.transport=f.transport.join(","),b.put("/api/trunks/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),f.nat=f.nat.split(","),f.naallowt=f.allow.split(";"),f.insecure=f.insecure.split(","),f.transport=f.transport.split(","),a.trunk=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.view",{url:"/view/:id",templateUrl:"app/trunk/view/view.html",controller:"TrunkViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.trunks.view.settings",{url:"/settings",templateUrl:"app/trunk/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("TrunkWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={context:"from-voip-provider"}},a.next=function(d){d?b.post("/api/trunks/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_TRUNK"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")}):c.wizard().next()},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/trunks/",a.item).success(function(){d.path("/trunks/list")}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.trunks.wizard",{url:"/wizard",templateUrl:"app/trunk/wizard/wizard.html",controller:"TrunkWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UpdateListCheckoutCtrl",["$scope","Update","$uibModalInstance","hash",function(a,b,c,d){a.modal={dismissable:!0,title:"Confirm Checkout",html:"Are you sure you want to checkout?",buttons:[{classes:"btn btn-success",text:"Checkout",click:function(){c.close(d)}},{classes:"btn default",text:"Cancel",click:function(){c.dismiss("cancel")}}]},a.initList=function(){b.get(function(b){a.updates=b.all})}}]),angular.module("xCallyShuttleApp").controller("UpdateListCtrl",["$scope","$uibModal","$log","Update","xAlert",function(a,b,c,d,e){a.conf={updatesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.updatesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.checkout=function(a){var f=b.open({animation:!0,templateUrl:"app/update/list/checkout/checkout.html",controller:"UpdateListCheckoutCtrl",resolve:{hash:function(){return a}}});f.result.then(function(a){d.get({id:a},function(){e.show("ok","success")},function(a){e.show(a,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initList=function(){d.get(function(b){a.updates=b.all})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.updates.list",{url:"/list",templateUrl:"app/update/list/list.html",controller:"UpdateListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").factory("Update",["$resource",function(a){return a("/api/updates/:id/:controller",{id:"@id"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.updates",{url:"/updates",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("UpdateViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$cookieStore","socket","FileUploader","Auth",function(a,b,c,d,e,f,g,h,i){a.Auth=i,a.updatePassword=function(){var f,g;i.isAdmin()?(f="/api/updates/password/"+e.id+"/reset",g={newPassword:a.update.newPwd}):(f="/api/updates/password/",g={oldPassword:a.update.currentPwd,newPassword:a.update.newPwd}),b.put(f,g).success(function(a){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})};var j=a.uploader=new h({url:"api/users/"+e.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});j.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),j.onSuccessItem=function(b,e,f,g){a.update.userpic=e.userpic,a.update.id===i.getCurrentUser().id&&(i.getCurrentUser().userpic=e.userpic),c.show(d.instant("MESSAGE_WELL_DONE"),"success")},j.onErrorItem=function(a,b,e,f){c.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},j.onCompleteAll=function(){j.clearQueue()},a.initView=function(){b.get("/api/updates/"+e.id).success(function(b){a.update=b,a.update.transport=a.update.transport?a.update.transport.split(","):[],a.update.allow=a.update.allow?a.update.allow.split(";"):[]}).error(function(a){c.show(a.message,"danger")})},a.updateItem=function(){var f=angular.copy(a.update),g=angular.copy(a.update);delete f.password,delete f.md5secret,f.transport=f.transport.join(","),f.allow=f.allow.join(";"),b.put("/api/updates/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.update=g,b.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.updates.view",{url:"/view/:id",templateUrl:"app/update/view/view.html",controller:"UpdateViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.updates.view.account",{url:"/account",templateUrl:"app/update/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("UpdateWizardCtrl",["$scope","$http","xAlert","$location","WizardHandler","$translate",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"update",allow:["alaw","ulaw","gsm"],transport:["udp"],context:"from-sip"},a.next=function(){b.post("/api/updates/validate/",a.item).success(function(a){console.log(a),a.length?c.show(f.instant("MESSAGE_EXIST_INTERNAL"),"danger"):e.wizard().next()}).error(function(a){c.show(f.instant(a.message),"danger")})},a.getFirstFreeInternal=function(){b.get("/api/settings/internal").success(function(b){a.item.internal=b.value}).error(function(a){c.show(f.instant(a.message),"danger")})},a.exitValidation=function(a){return a},a.createItem=function(){a.item.transport&&(a.item.transport=a.item.transport.join(",")),a.item.allow&&(a.item.allow=a.item.allow.join(";")),b.post("/api/updates/",a.item).success(function(){d.path("/updates/list")}).error(function(a){a.errors.forEach(function(a){c.show(a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.updates.wizard",{url:"/wizard",templateUrl:"app/update/wizard/wizard.html",controller:"UpdateWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("UserListCtrl",["$scope","$http","xAlert","$rootScope","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={usersByPage:{name:"10",value:10}},a.usersByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.users={checked:[]},a.check=function(b,c){c?a.users.checked=angular.copy(_.pluck(a.displayedUsers,"id")):a.users.checked=[]},a.getUsers=function(b){return _.map(a.displayedUsers,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/users/"+a).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/users",{params:{id:a.users.checked}}).success(function(){c.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){a.errors.forEach(function(b){c.show(a.message+": "+b.message,"danger")})})}),a.initList=function(b){f.unsyncUpdates("user"),b.url="/api/users/",h.getPage(b).then(function(c){a.displayedUsers=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.usersByPage,a.displayedUsers.length),d.updateTableConfig(a.conf.usersByPage,a.displayedUsers.length)}),f.socket.on("user:save",function(){a.initList(b)}),f.socket.on("user:remove",function(c){a.users.checked=_.without(a.users.checked,c.id),a.initList(b)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.list",{url:"/list",templateUrl:"app/user/list/list.html",controller:"UserListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users",{url:"/users",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("UserViewCtrl",["$scope","$http","$stateParams","$translate","FileUploader","$cookieStore","Auth","xAlert",function(a,b,c,d,e,f,g,h){a.Auth=g,a.updatePassword=function(){var e,f;g.isAdmin()?(e="/api/users/password/"+c.id+"/reset",f={newPassword:a.user.newPwd}):(e="/api/users/password/",f={oldPassword:a.user.currentPwd,newPassword:a.user.newPwd}),b.put(e,f).success(function(a){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})};var i=a.uploader=new e({url:"api/users/"+c.id+"/avatar",queueLimit:1,withCredentials:!0,headers:{Authorization:"Bearer "+f.get("token")}});i.filters.push({name:"imageFilter",fn:function(a){var b="|"+a.type.slice(a.type.lastIndexOf("/")+1)+"|";return-1!=="|jpg|png|jpeg|".indexOf(b)}}),i.onSuccessItem=function(b,c,e,f){a.user.userpic=c.userpic,a.user.id===g.getCurrentUser().id&&(g.getCurrentUser().userpic=c.userpic),h.show(d.instant("MESSAGE_WELL_DONE"),"success")},i.onErrorItem=function(a,b,c,e){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")},i.onCompleteAll=function(){i.clearQueue()},a.initView=function(){b.get("/api/users/"+c.id).success(function(b){a.user=b,a.user.transport=a.user.transport?a.user.transport.split(","):[],a.user.allow=a.user.allow?a.user.allow.split(";"):[]}).error(function(a){a.errors.forEach(function(b){h.show(a.message+": "+b.message,"danger")})})},a.updateItem=function(){var e=angular.copy(a.user),f=angular.copy(a.user);delete e.password,delete e.md5secret,e.transport=e.transport.join(","),e.allow=e.allow.join(";"),b.put("/api/users/"+c.id,e).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(b){a.user=f,b.errors.forEach(function(a){h.show(b.message+": "+a.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.view",{url:"/view/:id",templateUrl:"app/user/view/view.html",controller:"UserViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.users.view.account",{url:"/account",templateUrl:"app/user/view/view.account.html",resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css","assets/scripts/jquery.sparkline.min.js","assets/plugins/bootstrap-fileinput/bootstrap-fileinput.js","assets/scripts/profile.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("UserWizardCtrl",["$scope","$http","$location","WizardHandler","xAlert","$translate",function(a,b,c,d,e,f){a.forms={info:void 0,voice:void 0},a.item={role:"user",host:"dynamic",context:"from-sip"},a.next=function(){d.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/users/",a.item).success(function(){e.show(f.instant("MESSAGE_WELL_DONE"),"success"),c.path("/users/list")}).error(function(a){a.errors.forEach(function(b){e.show(a.message+": "+b.message,"danger")})})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.users.wizard",{url:"/wizard",templateUrl:"app/user/wizard/wizard.html",controller:"UserWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VariableListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VariableListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={variablesByPage:{name:"10",value:10}},a.variablesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.Variables={checked:[]},a.check=function(b,c){c?a.Variables.checked=angular.copy(_.pluck(a.displayedVariables,"id")):a.Variables.checked=[]},a.getVariables=function(b){return _.map(a.displayedVariables,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("variable"),b.url="/api/variables",h.getPage(b).then(function(c){a.displayedVariables=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.variablesByPage,a.displayedVariables.length),d.updateTableConfig(a.conf.variablesByPage,a.displayedVariables.length)}),c.socket.on("variable:save",function(){a.initList(b)}),c.socket.on("variable:remove",function(c){a.Variables.checked=_.without(a.Variables.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/variables/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/variables",{params:{id:a.Variables.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/variable/list/create.modal.html",controller:"VariableListCreateModalCtrl"});a.result.then(function(a){b.post("/api/variables",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables.list",{url:"/list",templateUrl:"app/variable/list/list.html",controller:"VariableListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables",{url:"/variables",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VariableViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getVariable=function(){b.get("/api/variables/"+e.id).success(function(b){a.variable=b}).error(function(a){console.error(a),f.path("/variables/list")})},a.updateVariable=function(){var f=angular.copy(a.variable);b.put("/api/variables/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.variable=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.variables.view",{url:"/view/:id",templateUrl:"app/variable/view/view.html",controller:"VariableViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.variables.view.settings",{url:"/settings",templateUrl:"app/variable/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts",{url:"/contexts",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceContextListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={contextsByPage:{name:"10",value:10}},a.contextsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.voiceContexts={checked:[]},a.check=function(b,c){c?a.voiceContexts.checked=angular.copy(_.pluck(a.displayedVoiceContexts,"id")):a.voiceContexts.checked=[]},a.getVoiceContexts=function(b){return _.map(a.displayedVoiceContexts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_context"),b.url="/api/voice/contexts",h.getPage(b).then(function(c){a.displayedVoiceContexts=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.contextsByPage,a.displayedVoiceContexts.length),d.updateTableConfig(a.conf.contextsByPage,a.displayedVoiceContexts.length)}),c.socket.on("voice_context:save",function(){a.initList(b)}),c.socket.on("voice_context:remove",function(c){a.voiceContexts.checked=_.without(a.voiceContexts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/contexts/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/contexts",{params:{id:a.voiceContexts.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.list",{url:"/list",templateUrl:"app/voice/context/list/list.html",controller:"VoiceContextListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceContextViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.getContext=function(){b.get("/api/voice/contexts/"+e.id).success(function(b){a.context=b}).error(function(a){console.error(a),f.path("/voice/contexts/list")})},a.updateVoiceContext=function(){var f=angular.copy(a.context);b.put("/api/voice/contexts/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.context=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.view",{url:"/view/:id",templateUrl:"app/voice/context/view/view.html",controller:"VoiceContextViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.contexts.view.settings",{url:"/settings",templateUrl:"app/voice/context/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").controller("VoiceContextWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","$translate",function(a,b,c,d,e,f){a.forms={context:void 0},a.item={},a.next=function(){b.post("/api/voice/contexts/validate/",a.item).success(function(a){console.log(a),a.length?e.show(f.instant("MESSAGE_EXIST_CONTEXT"),"danger"):c.wizard().next()}).error(function(a){e.show(f.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/contexts/",a.item).success(function(){d.path("/voice/contexts/list")}).error(function(a){e.show(f.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.contexts.wizard",{url:"/wizard",templateUrl:"app/voice/context/wizard/wizard.html",controller:"VoiceContextWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceMohListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={mohsByPage:{name:"10",value:10},labels:["name","directory","sort","description"]},a.mohsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.mohs={checked:[]},a.check=function(b,c){c?a.mohs.checked=angular.copy(_.pluck(a.displayedMohs,"id")):a.mohs.checked=[]},a.getMohs=function(b){return _.map(a.displayedMohs,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("voice_musiconhold"),b.url="/api/voice/musiconholds",h.getPage(b).then(function(c){a.displayedMohs=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.mohsByPage,a.displayedMohs.length),d.updateTableConfig(a.conf.mohsByPage,a.displayedMohs.length)}),f.socket.on("voice_musiconhold:save",function(){a.initList(b)}),f.socket.on("voice_musiconhold:remove",function(c){a.mohs.checked=_.without(a.mohs.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/musiconholds/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/musiconholds",{params:{id:a.mohs.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.list",{url:"/list",templateUrl:"app/voice/moh/list/list.html",controller:"VoiceMohListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs",{url:"/mohs",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceMohViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","Modal","$sce","$location",function(a,b,c,d,e,f,g,h,i){a.$translate=d,a.audioSources={},a.sortOptions=[{value:"random",name:"APPLICATION_RANDOM"},{value:"alpha",name:"APPLICATION_ALPHABETICAL"}],a.getMoh=function(){b.get("/api/voice/musiconholds/"+e.id).success(function(b){delete b.stamp,a.moh=b}).error(function(a){console.error(a),i.path("/voice/mohs/list")})},a.updateVoiceMoh=function(){console.log("update");var f=angular.copy(a.moh);b.put("/api/voice/musiconholds/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.voiceMoh=f})},a.addMohs=function(){b.post("/api/voice/musiconholds/"+e.id+"/files",a.item).success(function(){i.path("voice/mohs/view/"+e.id+"/audios")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getAudioFiles=function(){b.get("/api/voice/musiconholds/"+e.id+"/files").success(function(b){a.audioFiles=b.files,a.mohPath=b.path,a.audioFiles.forEach(function(a){j(a)})}).error(function(a){console.error(a)})},a.getSecureSrc=function(a){return h.trustAsResourceUrl(a)};var j=function(c){b.get("/api/voice/musiconholds/stream",{params:{path:encodeURI(a.mohPath+"/"+c)}}).success(function(b){a.audioSources[c]="data:audio/ogg;base64,"+b}).error(function(a){console.error(a)})};a.getSounds=function(){a.item={sounds:[]},b.get("/api/uploads").success(function(b){a.soundList=b}).error(function(a){console.error(a)})},a.deleteItem=g.confirm["delete"](function(f){b["delete"]("/api/voice/musiconholds/"+e.id+"/files",{params:{filename:f}}).success(function(){_.remove(a.audioFiles,function(a){return a===f}),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(a.message,"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.view",{url:"/view/:id",templateUrl:"app/voice/moh/view/view.html",controller:"VoiceMohViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.mohs.view.settings",{url:"/settings",templateUrl:"app/voice/moh/view/view.settings.html"}).state("main.voice.mohs.view.audios",{url:"/audios",templateUrl:"app/voice/moh/view/view.audios.html",cache:!1}).state("main.voice.mohs.view.add",{url:"/add",templateUrl:"app/voice/moh/view/view.addFiles.html",cache:!1})}]),angular.module("xCallyShuttleApp").controller("VoiceMohWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.$translate=g,a.initWizard=function(){a.forms={},a.item={sort:"alpha"}},a.next=function(){b.post("/api/voice/musiconholds/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_MOH"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/musiconholds/",a.item).success(function(a){d.path("/voice/mohs/view/"+a.id+"/audios")}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.mohs.wizard",{url:"/wizard",templateUrl:"app/voice/moh/wizard/wizard.html",controller:"VoiceMohWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueListCtrl",["$scope","$http","socket","$translate","$rootScope","Modal","xAlert","stResource",function(a,b,c,d,e,f,g,h){a.conf={voiceQueuesByPage:{name:"10",value:10},labels:["name","description","strategy","context"]},a.voiceQueuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.queues={checked:[]},a.check=function(b,c){c?a.queues.checked=angular.copy(_.pluck(a.displayedQueues,"name")):a.queues.checked=[]},a.getQueues=function(b){return _.map(a.displayedQueues,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_queue"),b.url="/api/voice/queues",h.getPage(b).then(function(c){a.displayedQueues=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.voiceQueuesByPage,a.displayedQueues.length),e.updateTableConfig(a.conf.voiceQueuesByPage,a.displayedQueues.length)}),c.socket.on("voice_queue:save",function(){a.initList(b)}),c.socket.on("voice_queue:remove",function(c){console.log("remove"),a.queues.checked=_.without(a.queues.checked,c.name),a.initList(b)})},a.deleteItem=f.confirm["delete"](function(a){b["delete"]("/api/voice/queues/"+a).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(a.message,"danger")})}),a.deleteItems=f.confirm["delete"](function(){b["delete"]("/api/voice/queues",{params:{name:a.queues.checked}}).success(function(){g.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){g.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.list",{url:"/list",templateUrl:"app/voice/queue/list/list.html",controller:"VoiceQueueListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues",{url:"/queues",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location",function(a,b,c,d,e,f,g){a.binaryChoices=[{name:"Yes",value:1},{name:"No",value:0}],a.monitorFormats=[{name:"wav",value:"wav"},{name:"gsm",value:"gsm"},{name:"Inactive",value:""}],a.queueAnnounces=[{display_name:"Default",value:null},{display_name:"Disabled",value:""}];var h=function(){return{select:function(c){b.post("/api/voice/queues/"+a.queue.name+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})},deselect:function(c){b.put("/api/voice/queues/"+a.queue.name+"/agents",{agents:c}).success(function(){a.getTeams()}).error(function(a){console.error(a)})}}};a.getQueue=function(){b.get("/api/voice/queues/"+e.id).success(function(b){b.joinempty=""===b.joinempty?[]:b.joinempty.split(","),b.leavewhenempty=""===b.leavewhenempty?[]:b.leavewhenempty.split(","),b.periodic_announce=""===b.periodic_announce?[]:b.periodic_announce.split(","),
+a.queue=b}).error(function(a){g.path("/voice/queues/list")})},a.updateVoiceQueue=function(){var f=angular.copy(a.queue);f.joinempty=f.joinempty.join(","),f.leavewhenempty=f.leavewhenempty.join(","),f.periodic_announce=f.periodic_announce.join(","),f.context||(f.context=null),b.put("/api/voice/queues/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),f.joinempty=f.joinempty.split(","),f.leavewhenempty=f.leavewhenempty.split(","),f.periodic_announce=f.periodic_announce.split(","),a.queue=f})},a.getTeams=function(){b.get("/api/teams").success(function(c){a.teams=c.rows,b({url:"/api/voice/user_has_queues",method:"GET",params:{queue:a.queue.name}}).success(function(b){ComponentsDropdowns.bindQueue(a.teams,_.pluck(b,"UserId"),h)})}).error(function(a){console.error(a)})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getMohs=function(){b.get("/api/voice/musiconholds").success(function(b){a.voiceMohs=b.rows,f.syncUpdates("voice_musiconhold",a.voiceMohs)}).error(function(a){c.show(a.message,"danger")})},a.getSounds=function(){b.get("/api/uploads").success(function(b){a.queueAnnounces=a.queueAnnounces.concat(b),a.periodicAnnounces=angular.copy(b),b.unshift({display_name:"None",converted_path:null,value:""}),a.sounds=b,f.syncUpdates("upload",a.sounds)}).error(function(a){console.error(a)})},a.returnAnnouncePath=function(a){return console.log("func"),a.converted_path?a.converted_path+"/"+a.save_name:null===a.value?null:a.value}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.view",{url:"/view/:id",templateUrl:"app/voice/queue/view/view.html",controller:"VoiceQueueViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.queues.view.settings",{url:"/settings",templateUrl:"app/voice/queue/view/view.settings.html"}).state("main.voice.queues.view.agents",{url:"/agents",templateUrl:"app/voice/queue/view/view.agents.html",cache:!1,serie:!0,resolve:{deps:["$ocLazyLoad",function(a){return a.load({insertBefore:"#ng_load_plugins_before",files:["assets/plugins/jquery-multi-select/css/multi-select.css","assets/plugins/jquery-multi-select/js/jquery.multi-select.js","assets/scripts/components-dropdowns.js"]})}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceQueueWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={queue:void 0},a.item={},a.next=function(){b.post("/api/voice/queues/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_QUEUE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/queues/",a.item).success(function(){d.path("/voice/queues/list")}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.queues.wizard",{url:"/wizard",templateUrl:"app/voice/queue/wizard/wizard.html",controller:"VoiceQueueWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.realtime",{url:"/realtime",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/agent/pause.modal.html",controller:"VoiceRealtimeViewAgentPauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/agent/queue.modal.add.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log(a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/voice/realtime/view/agent/queue.modal.remove.html",controller:"VoiceRealtimeViewAgentQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initAgents=function(){b.get("/api/voice/user_has_queues").success(function(b){a.agents=b,a.groups=_.map(_.groupBy(a.agents,"membername"),function(a,b){return{membername:b,queues:a}}),f.socket.on("user_has_voice_queue:save",function(b){var c=_.find(a.groups,{membername:b.membername}),d=a.groups.indexOf(c);if(c){var e=_.find(c.queues,{queue:b.queue});e?_.merge(e,b):a.groups[d].queues.push(b)}else{var f={membername:b.membername,queues:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{membername:b.membername});_.remove(c.queues,{queue:b.queue}),c.queues.length||_.remove(a.groups,{membername:b.membername})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{membername:b.membername}),d=a.groups.indexOf(c);if(c){var e=_.find(c.queues,{queue:b.queue});e?_.merge(e,b):a.groups[d].queues.push(b)}else{var f={membername:b.membername,queues:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentPauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c){var e={action:"QueuePause","interface":a.selected["interface"],paused:c,reason:a.selected.item};_.isArray(d)||(e.queue=a.selected.queue),b.close(e)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={membername:a.data[0].membername,"interface":a.data[0]["interface"],penalty:0,paused:!1,reason:a.pauses[0],UserId:a.data[0].UserId},c.get("/api/voice/queues",{params:{page:0,per_page:100}}).success(function(b){a.queues=_.reject(b.rows,function(b){return _.find(a.data,{queue:b.name})?!0:!1}),a.selected.queue=a.queues[0]?a.queues[0].name:null,console.log(a.queues)}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,_.isArray(e)?a.selected={membername:a.data[0].membername,"interface":a.data[0]["interface"],logout:!1,UserId:a.data[0].UserId}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){console.log(a.selected);var c={action:"QueueAdd",logged:a.data[0].logged,loggedAt:a.data[0].loggedAt,queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewAgentReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_agent")}),a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.agents=[],b.get("/api/report/agents").success(function(b){a.agents=b,c.syncUpdates("report_agent",a.agents)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewAgentReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueReportCtrl",["$scope","$http","socket",function(a,b,c){a.$on("$destroy",function(){c.unsyncUpdates("report_queue")}),a.conf={queuesByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.queuesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.initReport=function(){a.queues=[],b.get("/api/report/queues").success(function(b){console.log(b),a.queues=b,c.syncUpdates("report_queue",a.queues)}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").filter("VoiceRealtimeViewQueueReportFilter",function(){return function(a){return new Date(1970,0,1).setSeconds(a)}}),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueuePauseModalCtrl",["$scope","$uibModalInstance","items","data",function(a,b,c,d){a.items=c,a.data=d,console.log(d),a.selected={item:a.items[0],queue:_.isArray(d)?a.data[0].queue:a.data.queue,membername:_.isArray(d)?a.data[0].membername:a.data.membername,"interface":_.isArray(d)?a.data[0]["interface"]:a.data["interface"]},a.ok=function(c,e){var f;_.isArray(d)?(f=[],d.forEach(function(b){f.push({action:"QueuePause",queue:b.queue,membername:b.membername,"interface":b["interface"],paused:c,reason:a.selected.item})})):f={action:"QueuePause",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],paused:c,reason:a.selected.item},b.close(f)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueCtrl",["$scope","$http","$log","$uibModal","$translate","socket","xAlert",function(a,b,c,d,e,f,g){a.conf={agentsByPage:{name:"10",value:10},labels:["fullname","name","email"]},a.agentsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.$on("$destroy",function(){f.unsyncUpdates("user_has_voice_queue")}),a.groups=[],a.pauses=["pausa1","pausa2","pausa3"],a.pause=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/queue/pause.modal.html",controller:"VoiceRealtimeViewQueuePauseModalCtrl",resolve:{items:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(a){console.log(a),g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){console.log(a),g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.add=function(f,h){var i=d.open({animation:!0,size:f,templateUrl:"app/voice/realtime/view/queue/queue.modal.add.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return a.pauses},data:function(){return h}}});i.result.then(function(a){console.log("action",a),b.post("/api/voice/user_has_queues",a).then(function(){a.login?b.post("/api/ami",a).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.message,"danger")}),console.log(a)},function(){c.info("Modal dismissed at: "+new Date)})},a.remove=function(a,f){var h=d.open({animation:!0,size:a,templateUrl:"app/voice/realtime/view/queue/queue.modal.remove.html",controller:"VoiceRealtimeViewQueueQueueModalCtrl",resolve:{pauses:function(){return null},data:function(){return f}}});h.result.then(function(a){_.isArray(a)?a.forEach(function(a){b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})}):b.post("/api/ami",a).then(function(){a.logout?b.put("/api/voice/queues/"+a.queue+"/agents",{agents:[a.UserId]}).then(function(){g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")}):g.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){g.show(a.data.message,"danger")})},function(){c.info("Modal dismissed at: "+new Date)})},a.initQueues=function(){b.get("/api/voice/user_has_queues").success(function(b){a.queues=b,a.groups=_.map(_.groupBy(a.queues,"queue"),function(a,b){return{queue:b,agents:a}}),console.log("ok"),f.socket.on("user_has_voice_queue:save",function(b){console.log("item",b);var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}}),f.socket.on("user_has_voice_queue:remove",function(b){var c=_.find(a.groups,{queue:b.queue});_.remove(c.agents,{membername:b.membername}),c.agents.length||_.remove(a.groups,{queue:b.queue})}),f.socket.on("report_agent:save",function(b){var c=_.find(a.groups,{queue:b.queue}),d=a.groups.indexOf(c);if(c){var e=_.find(c.agents,{membername:b.membername});e?_.merge(e,b):a.groups[d].agents.push(b)}else{var f={queue:b.queue,agents:[b]};a.groups.unshift(f)}})}).error(function(a){console.error(a)})}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewQueueQueueModalCtrl",["$scope","$uibModalInstance","$http","pauses","data",function(a,b,c,d,e){a.initAdd=function(){a.data=e,a.pauses=d,a.selected={penalty:0,paused:!1,reason:a.pauses[0]},a.$watch("selected.agent",function(b){b&&(a.selected.membername=b.name,a.selected["interface"]="SIP/"+b.name,a.selected.UserId=b.id)}),c.get("/api/agents",{params:{page:0,per_page:500}}).success(function(b){a.agents=_.reject(b.rows,function(b){return _.find(a.data,{membername:b.name})?!0:!1}),a.selected.queue=a.data[0]?a.data[0].queue:null}).error(function(a){console.error(a)})},a.initRemove=function(){a.data=e,console.log(e),_.isArray(e)?a.selected={queue:a.data[0].queue,logout:!1}:a.selected={membername:a.data.membername,"interface":a.data["interface"],queue:a.data.queue,logout:!1,UserId:a.data.UserId}},a.okAdd=function(){var c={action:"QueueAdd",queue:a.selected.queue,membername:a.selected.membername,"interface":a.selected["interface"],penalty:a.selected.penalty,paused:a.selected.paused,UserId:a.selected.UserId};c.paused&&(c.reason=a.selected.reason),b.close(c)},a.okRemove=function(){var c;_.isArray(a.data)?(c=[],a.data.forEach(function(b){c.push({action:"QueueRemove",queue:b.queue,"interface":b["interface"],logout:a.selected.logout,UserId:b.UserId})})):c={action:"QueueRemove",queue:a.selected.queue,logout:a.selected.logout,"interface":a.selected["interface"],UserId:a.selected.UserId},b.close(c)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("VoiceRealtimeViewCtrl",["$scope",function(a){a.agents=[{name:"View1",link:"main.voice.realtime.view.agents"},{name:"View2",link:"main.voice.realtime.view.areports"}],a.queues=[{name:"View1",link:"main.voice.realtime.view.queues"},{name:"View2",link:"main.voice.realtime.view.qreports"}]}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.realtime.view",{url:"/view",templateUrl:"app/voice/realtime/view/view.html",controller:"VoiceRealtimeViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.realtime.view.queues",{url:"/queues",controller:"VoiceRealtimeViewQueueCtrl",templateUrl:"app/voice/realtime/view/queue/queue.html"}).state("main.voice.realtime.view.qreports",{url:"/qreport/:search",controller:"VoiceRealtimeViewQueueReportCtrl",templateUrl:"app/voice/realtime/view/qreport/report.html"}).state("main.voice.realtime.view.agents",{url:"/agents",controller:"VoiceRealtimeViewAgentCtrl",templateUrl:"app/voice/realtime/view/agent/agent.html"}).state("main.voice.realtime.view.areports",{url:"/areport",controller:"VoiceRealtimeViewAgentReportCtrl",templateUrl:"app/voice/realtime/view/areport/report.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound",{url:"/inbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/inbound",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.routesByPage,a.displayedRoutes.length),e.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"inbound"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"inbound"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.list",{url:"/list",templateUrl:"app/voice/route/inbound/list/list.html",controller:"VoiceRouteInboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundViewCtrl",["$scope","$http","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=c,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={settings:void 0,interval:void 0},a.application={VoiceExtensionId:d.id,type:"inbound"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var e,f;switch(d.appId||(a.application={VoiceExtensionId:d.id,type:"inbound",interval:a.application.interval}),c){case"Queue":e="api/voice/queues",f="/api/uploads";break;case"Playback":e="/api/uploads";break;case"AGI":e="/api/square/projects";break;case"Goto":e="/api/voice/contexts";break;default:e=null,f=null}e&&b.get(e).success(function(b){a.items="Playback"!==c?b.rows:b}),f&&b.get(f).success(function(b){a.items2=b})}},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+d.id+"/applications").success(function(b){a.routeApplications=b,e.unsyncUpdates("voice_extension"),e.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),e.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===d.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+d.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(b){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0},a.getRoute=function(){b.get("/api/voice/extensions/"+d.id).success(function(b){a.route=b,e.socket.on("voice_extension:update",function(b){b.id==d.id&&(a.route=b)})}).error(function(a){f.path("/voice/routes/inbound/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+d.appId).success(function(b){var c=_.filter(a.$application.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),"Queue"===b.app&&(a.application.app_options=b.app_options?b.app_options.split(","):[]),a.interval.intType=b.IntervalId?"list":"*,*,*,*"===b.interval?"always":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){f.path("/voice/routes/inbound/view/"+d.id+"/applications")})},a.updateRoute=function(){var e=angular.copy(a.route);b.put("/api/voice/extensions/"+d.id,e).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){i.show(c.instant(b.message),"danger"),a.route=e})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){f.path("/voice/routes/inbound/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.updateItem=function(){switch(a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+d.appId,a.application).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),f.path("/voice/routes/inbound/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.deleteItem=h.confirm["delete"](function(d){b["delete"]("/api/voice/extensions/"+d).success(function(){a.getRouteApplications(),i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(c.instant(a.message),"danger")})}),a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.view",{url:"/view/:id",templateUrl:"app/voice/route/inbound/view/view.html",controller:"VoiceRouteInboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.inbound.view.settings",{url:"/settings",templateUrl:"app/voice/route/inbound/view/view.settings.html"}).state("main.voice.routes.inbound.view.applications",{url:"/applications",templateUrl:"app/voice/route/inbound/view/view.applications.html",cache:!1}).state("main.voice.routes.inbound.view.application",{url:"/application",templateUrl:"app/voice/route/inbound/view/view.application.html",authenticate:!0}).state("main.voice.routes.inbound.view.applications.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/inbound/view/view.applicationSettings.html",authenticate:!0,controller:"VoiceRouteInboundViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInboundWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"inbound",appdata:"Inbound Call",context:"from-voip-provider"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/inbound/view/"+a.id+"/applications")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.inbound.wizard",{url:"/wizard",templateUrl:"app/voice/route/inbound/wizard/wizard.html",controller:"VoiceRouteInboundWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal",{url:"/internal",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalListCtrl",["$scope","$http","socket","$translate","$rootScope","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/internal",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,e.updateTableConfig(a.routesByPage,a.displayedRoutes.length),e.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"internal"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"internal"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(d.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.list",{url:"/list",templateUrl:"app/voice/route/internal/list/list.html",controller:"VoiceRouteInternalListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalViewCtrl",["$scope","$http","$translate","$stateParams","socket","$location","WizardHandler","Modal","xAlert","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=c,a.$application=j.application,a.$interval=k.interval,
+a.initApplication=function(){a.forms={settings:void 0,interval:void 0},a.application={VoiceExtensionId:d.id,type:"internal"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""}},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var e,f;switch(d.appId||(a.application={VoiceExtensionId:d.id,type:"internal",interval:a.application.interval}),c){case"Queue":e="api/voice/queues",f="/api/uploads";break;case"Playback":e="/api/uploads";break;case"AGI":e="/api/square/projects";break;case"Goto":e="/api/voice/contexts";break;default:e=null,f=null}e&&b.get(e).success(function(b){a.items="Playback"!==c?b.rows:b}),f&&b.get(f).success(function(b){a.items2=b})}},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,e.syncUpdates("interval",a.Intervals)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+d.id+"/applications").success(function(b){a.routeApplications=b,e.unsyncUpdates("voice_extension"),e.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),e.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===d.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+d.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(b){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0},a.getRoute=function(){b.get("/api/voice/extensions/"+d.id).success(function(b){a.route=b,e.socket.on("voice_extension:update",function(b){b.id==d.id&&(a.route=b)})}).error(function(a){console.error(a),f.path("/voice/routes/internal/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+d.appId).success(function(b){var c=_.filter(a.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),"Queue"===b.app&&(a.application.app_options=b.app_options?b.app_options.split(","):[]),a.interval.intType=b.IntervalId?"list":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){f.path("/voice/routes/internal/view/"+d.id+"/applications")})},a.updateRoute=function(){var e=angular.copy(a.route);b.put("/api/voice/extensions/"+d.id,e).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){i.show(c.instant(b.message),"danger"),a.route=e})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,e.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){i.show(c.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){f.path("/voice/routes/internal/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.updateItem=function(){switch(a.application.app_options&&"Queue"===a.application.app&&(a.application.app_options=a.application.app_options.join(",")),a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+d.appId,a.application).success(function(){i.show(c.instant("MESSAGE_WELL_DONE")+"!","success"),f.path("/voice/routes/internal/view/"+d.id+"/applications")}).error(function(a){i.show(c.instant(a.message),"danger")})},a.deleteItem=h.confirm["delete"](function(d){b["delete"]("/api/voice/extensions/"+d).success(function(b){a.getRouteApplications(),i.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){i.show(c.instant(a.message),"danger")})}),a.goNext=function(){g.wizard().next()},a.previous=function(){g.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){e.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.view",{url:"/view/:id",templateUrl:"app/voice/route/internal/view/view.html",controller:"VoiceRouteInternalViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.internal.view.settings",{url:"/settings",templateUrl:"app/voice/route/internal/view/view.settings.html"}).state("main.voice.routes.internal.view.applications",{url:"/applications",templateUrl:"app/voice/route/internal/view/view.applications.html",cache:!1}).state("main.voice.routes.internal.view.application",{url:"/application",templateUrl:"app/voice/route/internal/view/view.application.html",authenticate:!0}).state("main.voice.routes.internal.view.applications.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/internal/view/view.applicationSettings.html",authenticate:!0,controller:"VoiceRouteInternalViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteInternalWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"internal",appdata:"Iternal Call",context:"from-sip"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/internal/view/"+a.id+"/applications")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.internal.wizard",{url:"/wizard",templateUrl:"app/voice/route/internal/wizard/wizard.html",controller:"VoiceRouteInternalWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={routesByPage:{name:"10",value:10}},a.routesByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.routes={checked:[]},a.check=function(b){b?a.routes.checked=angular.copy(_.pluck(a.displayedRoutes,"id")):a.routes.checked=[]},a.getRoutes=function(b){return _.map(a.displayedRoutes,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){c.unsyncUpdates("voice_extension"),b.url="/api/voice/extensions/route/outbound",h.getPage(b).then(function(c){a.displayedRoutes=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.routesByPage,a.displayedRoutes.length),d.updateTableConfig(a.conf.routesByPage,a.displayedRoutes.length)}),c.socket.on("voice_extension:save",function(c){"outbound"===c.type&&a.initList(b)}),c.socket.on("voice_extension:remove",function(c){"outbound"===c.type&&(a.routes.checked=_.without(a.routes.checked,c.id),a.initList(b))})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/extensions/"+a).success(function(){f(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/extensions/",{params:{id:a.routes.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(e.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.list",{url:"/list",templateUrl:"app/voice/route/outbound/list/list.html",controller:"VoiceRouteOutboundListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound",{url:"/outbound",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$location","WizardHandler","Modal","application","interval",function(a,b,c,d,e,f,g,h,i,j,k){a.$translate=d,a.$application=j.application,a.$interval=k.interval,a.initApplication=function(){a.forms={info:void 0,interval:void 0},a.application={VoiceExtensionId:e.id,type:"outbound"},a.interval={intType:"always",t_from:moment(new Date),t_to:moment(new Date),wd_from:"always",wd_to:"always",md_from:"always",md_to:"always",m_from:"always",m_to:"always",alwaysTime:!0},a.main={app:""},a.applications=[{name:"Dial",value:"Dial"},{name:"Custom",value:"custom"}]},a.joinInterval=function(a){console.log(a);var b,c,d,e;return b=a.t_from&&a.t_to&&!a.alwaysTime?moment(a.t_from).format("HH:mm")+"-"+moment(a.t_to).format("HH:mm"):"*",a.wd_from&&"always"!==a.wd_from?(c=a.wd_from.toLowerCase(),a.wd_to&&"always"!==a.wd_to&&(c+="-"+a.wd_to.toLowerCase())):c="*",a.md_from&&"always"!==a.md_from?(d=a.md_from,a.md_to&&"always"!==a.md_to&&(d+="-"+a.md_to)):d="*",a.m_from&&"always"!==a.m_from?(e=a.m_from.toLowerCase(),a.m_to&&"always"!==a.m_to&&(e+="-"+a.m_to.toLowerCase())):e="*",b+","+c+","+d+","+e},a.$watch("main.app",function(c){if(c){var d,f;switch(e.appId||(a.application={VoiceExtensionId:e.id,type:"outbound",interval:a.application.interval}),c){case"Dial":d="api/trunks",f="/api/voice/contexts";break;default:d=null,f=null}d&&b.get(d).success(function(b){a.items="Dial"===c?b.rows:b}),f&&b.get(f).success(function(b){a.items2="Dial"===c?b.rows:b})}},!0),a.$watch("application.TrunkId",function(b){b&&(a.application.trunk=_.result(_.find(a.items,{id:b}),"name"))},!0),a.getIntervals=function(){b.get("/api/intervals").success(function(b){a.Intervals=b.rows,f.syncUpdates("interval",a.Intervals)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.getRouteApplications=function(){b.get("/api/voice/extensions/"+e.id+"/applications").success(function(b){a.routeApplications=b,f.unsyncUpdates("voice_extension"),f.socket.on("voice_extension:remove",function(b){b.where.appGroup&&_.remove(a.routeApplications,function(a){return b.where.appGroup==a.appGroup})}),f.socket.on("voice_extension:save",function(b){if(b.VoiceExtensionId===e.id&&b.isApp){var c=_.find(a.routeApplications,{id:b.id});c||a.routeApplications.push(b)}})})},a.sortableOptions={stop:function(){b.post("api/voice/extensions/"+e.id+"/applications",{applications:_.pluck(a.routeApplications,"appGroup")}).success(function(){a.getRouteApplications()}).error(function(a){console.error(a)})},"ui-floating":!0},a.getRoute=function(){b.get("/api/voice/extensions/"+e.id).success(function(b){a.route=b,f.socket.on("voice_extension:update",function(b){b.id==e.id&&(a.route=b)})}).error(function(a){g.path("/voice/routes/outbound/list")})},a.getApplication=function(){b.get("/api/voice/extensions/applications/"+e.appId).success(function(b){var c=_.filter(a.applications,function(a){return a.value===b.app});if(c.length>0&&!b.customApp?a.main.app=b.app:a.main.app="custom",a.application=b,a.interval.intType=b.IntervalId?"list":"custom",a.interval.IntervalId=b.IntervalId,!b.IntervalId){var d,e=b.interval?b.interval.split(","):["*","*","*","*"];e.forEach(function(b,c){switch(c){case 0:"*"!==b?(d=b.split("-"),a.interval.t_from=moment(d[0],"HH:mm"),a.interval.t_to=moment(d[1],"HH:mm"),a.interval.alwaysTime=!1):(a.interval.t_from=moment(new Date),a.interval.t_to=moment(new Date),a.interval.alwaysTime=!0);break;case 1:"*"!==b?(d=b.split("-"),a.interval.wd_from=_.capitalize(d[0]),a.interval.wd_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.wd_from="always",a.interval.wd_to="always");break;case 2:"*"!==b?(d=b.split("-"),a.interval.md_from=d[0],a.interval.md_to=d[1]?d[1]:"always"):(a.interval.md_from="always",a.interval.md_to="always");break;case 3:"*"!==b?(d=b.split("-"),a.interval.m_from=_.capitalize(d[0]),a.interval.m_to=d[1]?_.capitalize(d[1]):"always"):(a.interval.m_from="always",a.interval.m_to="always")}})}}).error(function(a){console.error(a),g.path("/voice/routes/outbound/view/"+e.id+"/routes")})},a.updateRoute=function(){var f=angular.copy(a.route);b.put("/api/voice/extensions/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.route=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(d.instant(a.message),"danger")})},a.createItem=function(){switch(a.application.app=a.main.app,a.application.exten=a.route.exten,a.application.context=a.route.context,a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.post("/api/voice/extensions/",a.application).success(function(){g.path("/voice/routes/outbound/view/"+e.id+"/routes")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.updateItem=function(){switch(a.interval.intType){case"list":a.application.IntervalId=a.interval.IntervalId,a.application.interval=_.result(_.find(a.Intervals,{id:a.interval.IntervalId}),"name");break;case"custom":a.application.IntervalId=null,a.application.interval=a.joinInterval(a.interval);break;case"always":a.application.IntervalId=null,a.application.interval="*,*,*,*"}b.put("/api/voice/extensions/applications/"+e.appId,a.application).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success"),g.path("/voice/routes/outbound/view/"+e.id+"/routes")}).error(function(a){c.show(d.instant(a.message),"danger")})},a.deleteItem=i.confirm["delete"](function(e){b["delete"]("/api/voice/extensions/"+e).success(function(b){a.getRouteApplications(),c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){c.show(d.instant(a.message),"danger")})}),a.goNext=function(){h.wizard().next()},a.previous=function(){h.wizard().previous()},a.formValidation=function(a){return a},a.$on("destroy",function(){f.unsyncUpdates("voice_extension")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.view",{url:"/view/:id",templateUrl:"app/voice/route/outbound/view/view.html",controller:"VoiceRouteOutboundViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.routes.outbound.view.settings",{url:"/settings",templateUrl:"app/voice/route/outbound/view/view.settings.html"}).state("main.voice.routes.outbound.view.routes",{url:"/routes",templateUrl:"app/voice/route/outbound/view/view.routes.html",cache:!1}).state("main.voice.routes.outbound.view.route",{url:"/route",templateUrl:"app/voice/route/outbound/view/view.route.html",authenticate:!0}).state("main.voice.routes.outbound.view.routes.settings",{url:"/settings/:appId",templateUrl:"app/voice/route/outbound/view/view.routeSettings.html",authenticate:!0,controller:"VoiceRouteOutboundViewCtrl"})}]),angular.module("xCallyShuttleApp").controller("VoiceRouteOutboundWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.forms={route:void 0},a.item={type:"outbound",appdata:"Outbound Call",context:"from-sip"},a.next=function(){b.post("/api/voice/extensions/validate/",a.item).success(function(a){console.log(a),a.length?e.show(g.instant("MESSAGE_EXIST_ROUTE"),"danger"):c.wizard().next()}).error(function(a){e.show(g.instant(a.message),"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("/api/voice/extensions/",a.item).success(function(a){d.path("/voice/routes/outbound/view/"+a.id+"/routes")}).error(function(a){e.show(g.instant(a.message),"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(g.instant(a.message),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes.outbound.wizard",{url:"/wizard",templateUrl:"app/voice/route/outbound/wizard/wizard.html",controller:"VoiceRouteOutboundWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.routes",{url:"/routes",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice",{url:"/voice",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailListCtrl",["$scope","$http","$translate","$rootScope","xAlert","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={voicemailsByPage:{name:"10",value:10},labels:["mailbox","fullname","email"]},a.voicemailsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.voicemails={checked:[]},a.check=function(b,c){c?a.voicemails.checked=angular.copy(_.pluck(a.displayedVoicemails,"uniqueid")):a.voicemails.checked=[]},a.getVoicemails=function(b){return _.map(a.displayedVoicemails,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("voice_voicemail"),b.url="/api/voice/voicemails",h.getPage(b).then(function(c){a.displayedVoicemails=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.voicemailsByPage,a.displayedVoicemails.length),d.updateTableConfig(a.conf.voicemailsByPage,a.displayedVoicemails.length)}),f.socket.on("voice_voicemail:save",function(){a.initList(b)}),f.socket.on("voice_voicemail:remove",function(c){a.voicemails.checked=_.without(a.voicemails.checked,c.uniqueid),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/voice/voicemails/"+a).success(function(){e.show(c.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){e.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/voice/voicemails",{params:{uniqueid:a.voicemails.checked}}).success(function(){e.show(c.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){e.show(c.instant(a.message),"danger")})})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.list",{url:"/list",templateUrl:"app/voice/voicemail/list/list.html",controller:"VoiceVoicemailListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","socket","$sce","Modal","$location",function(a,b,c,d,e,f,g,h,i){a.getVoicemail=function(){b.get("/api/voice/voicemails/"+e.uniqueid).success(function(b){delete b.password,delete b.stamp,a.voicemail=b}).error(function(a){console.error(a),i.path("/voice/voicemails/list")})},a.updateVoiceVoicemail=function(){var f=angular.copy(a.voicemail);b.put("/api/voice/voicemails/"+e.uniqueid,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.voicemail=f})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){c.show(a.message,"danger")})},a.getMessages=function(){b.get("/api/voice/voicemails/"+e.uniqueid+"/messages/").success(function(b){a.voicemailMessages=b,f.syncUpdates("voice_voicemail_messages",a.voicemailMessages)}).error(function(a){c.show(a.message,"danger")})},a.encodeRecording=function(a){return g.trustAsResourceUrl("data:audio/ogg;base64,"+j(a.data))},a.returnMessageDate=function(a){return a.split("T")[0]},a.returnDuration=function(a){return 1e3*a},a.deleteItem=h.confirm["delete"](function(a){b["delete"]("/api/voice/voicemails/messages/"+a+"/delete").success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){console.log(a),c.show(a.message,"danger")})});var j=function(a){for(var b=new Uint8Array(a),c=b.byteLength,d="",e=0;c>e;e++)d+=String.fromCharCode(b[e]);return window.btoa(d)}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.view",{url:"/view/:uniqueid",templateUrl:"app/voice/voicemail/view/view.html",controller:"VoiceVoicemailViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.voice.voicemails.view.settings",{url:"/settings",templateUrl:"app/voice/voicemail/view/view.settings.html"}).state("main.voice.voicemails.view.messages",{url:"/messages",templateUrl:"app/voice/voicemail/view/view.messages.html"})}]),angular.module("xCallyShuttleApp").controller("VoicemailCtrl",["$scope",function(a){a.message="Hello"}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails",{url:"/voicemails",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("VoiceVoicemailWizardCtrl",["$scope","$http","WizardHandler","$location","xAlert","socket","$translate",function(a,b,c,d,e,f,g){a.initWizard=function(){a.forms={},a.item={}},a.next=function(){b.post("/api/voice/voicemails/validate/",a.item).success(function(a){a.length?e.show(g.instant("MESSAGE_EXIST_MAILBOX"),"danger"):c.wizard().next()}).error(function(a){e.show(a.message,"danger")})},a.previous=function(){c.wizard().previous()},a.exitValidation=function(a){return a},a.createItem=function(){a.item.customer_id=a.item.mailbox,b.post("/api/voice/voicemails/",a.item).success(function(){d.path("/voice/voicemails/list")}).error(function(a){e.show(a.message,"danger")})},a.getContexts=function(){b.get("/api/voice/contexts").success(function(b){a.voiceContexts=b.rows,f.syncUpdates("voice_context",a.voiceContexts)}).error(function(a){e.show(a.message,"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.voice.voicemails.wizard",{url:"/wizard",templateUrl:"app/voice/voicemail/wizard/wizard.html",controller:"VoiceVoicemailWizardCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCreateModalCtrl",["$scope","$uibModalInstance",function(a,b){a.forms={dashboard:void 0},a.item={},a.ok=function(){a.item.model=JSON.stringify({title:a.item.name}),b.close(a.item)},a.cancel=function(){b.dismiss("cancel")}}]),angular.module("xCallyShuttleApp").controller("YourdashboardListCtrl",["$scope","$http","socket","$rootScope","$translate","xAlert","Modal","stResource","$uibModal","$log",function(a,b,c,d,e,f,g,h,i,j){a.conf={dashboardsByPage:{name:"10",value:10}},a.dashboardsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.dashboards={checked:[]},a.check=function(b,c){c?a.dashboards.checked=angular.copy(_.pluck(a.displayedDashboards,"id")):a.dashboards.checked=[]},a.getDashboards=function(b){return _.map(a.displayedDashboards,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){b.url="/api/dashboards",h.getPage(b).then(function(c){a.displayedDashboards=c.rows,b.pagination.numberOfPages=c.total_pages,d.updateTableConfig(a.dashboardsByPage,a.displayedDashboards.length),d.updateTableConfig(a.conf.dashboardsByPage,a.displayedDashboards.length)}),c.socket.on("dashboard:save",function(){a.initList(b)}),c.socket.on("dashboard:remove",function(c){a.dashboards.checked=_.without(a.dashboards.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/dashboards/"+a).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/dashboards",{params:{id:a.dashboards.checked}}).success(function(){f.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){f.show(a.message,"danger")})}),a.create=function(){var a=i.open({animation:!0,templateUrl:"app/yourdashboard/list/create.modal.html",controller:"YourdashboardListCreateModalCtrl"});a.result.then(function(a){b.post("/api/dashboards",a).then(function(a){f.show(e.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){f.show(a.data.message,"danger")})},function(){j.info("Modal dismissed at: "+new Date)})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.list",{url:"/list",templateUrl:"app/yourdashboard/list/list.html",controller:"YourdashboardListCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardShowCtrl",["$scope","localStorageService","$http","xAlert","$translate","Auth","$stateParams","$location",function(a,b,c,d,e,f,g,h){a.Auth=f,a.dashboard={name:"dashboard",structure:"4-8",enableconfirmdelete:!0,editable:f.isAdmin()?!0:!1,maximizable:!0,collapsible:!0},a.getDashboard=function(){c.get("/api/dashboards/"+g.id).success(function(b){b.model=JSON.parse(b.model),a.dashboard=_.merge(a.dashboard,b)}).error(function(a){h.path("/yourdashboards/list")})};var i=function(b,f,h){var i=angular.copy(a.dashboard);i.name=a.dashboard.model.title,i.model=JSON.stringify(i.model),c.put("/api/dashboards/"+g.id,i).success(function(){d.show(e.instant("MESSAGE_DASHBOARD_SAVED")+"!","success")}).error(function(b){d.show(b.message,"danger"),i.model=JSON.parse(i.model),i.name="dashboard",a.dashboard=i})};a.$on("adfDashboardChanged",i),a.$on("destroy",function(){console.log("main dashboard")})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.show",{url:"/show/:id",templateUrl:"app/yourdashboard/show/show.html",controller:"YourdashboardShowCtrl"})}]),angular.module("xCallyShuttleApp").controller("YourdashboardViewCtrl",["$scope","$http","xAlert","$translate","$stateParams","$location",function(a,b,c,d,e,f){a.radioSwitch={isActive:!0,size:"small",animate:!0,radioOff:!0,handleWidth:"auto",labelWidth:"auto",inverse:!0,offColor:"danger",onColor:"success"},a.getDashboard=function(){b.get("/api/dashboards/"+e.id).success(function(b){delete b.model,a.dashboard=b}).error(function(a){f.path("/yourdashboards/list")})},a.updateDashboard=function(){var f=angular.copy(a.dashboard);b.put("/api/dashboards/"+e.id,f).success(function(){c.show(d.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(b){c.show(d.instant(b.message),"danger"),a.dashboard=f})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards.view",{url:"/view/:id",templateUrl:"app/yourdashboard/view/view.html",controller:"YourdashboardViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/plugins/bootstrap-fileinput/bootstrap-fileinput.css","assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.yourdashboards.view.settings",{url:"/settings",templateUrl:"app/yourdashboard/view/view.settings.html"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.yourdashboards",{url:"/yourdashboards",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").controller("ZendeskListCtrl",["$scope","$http","$rootScope","xAlert","$translate","socket","Modal","stResource",function(a,b,c,d,e,f,g,h){a.conf={accountsByPage:{name:"10",value:10}},a.accountsByPage=[{name:"10",value:10},{name:"25",value:25},{name:"50",value:50},{name:"All",value:0}],a.accounts={checked:[]},a.check=function(b,c){c?a.accounts.checked=angular.copy(_.pluck(a.displayedZdAccounts,"id")):a.accounts.checked=[]},a.getAccounts=function(b){return _.map(a.displayedZdAccounts,function(a){var c={};return b.forEach(function(b){c[b]=a[b]}),c})},a.initList=function(b){f.unsyncUpdates("zendesk_account"),b.url="/api/zendesk/accounts",h.getPage(b).then(function(d){a.displayedZdAccounts=d.rows,b.pagination.numberOfPages=d.total_pages,c.updateTableConfig(a.accountsByPage,a.displayedZdAccounts.length),c.updateTableConfig(a.conf.accountsByPage,a.displayedZdAccounts.length)}),f.socket.on("zendesk_account:save",function(){a.initList(b)}),f.socket.on("zendesk_account:remove",function(c){a.accounts.checked=_.without(a.accounts.checked,c.id),a.initList(b)})},a.deleteItem=g.confirm["delete"](function(a){b["delete"]("/api/zendesk/accounts/"+a).success(function(){d.show(e.instant("MESSAGE_WELL_DONE")+"!","success")}).error(function(a){d.show(e.instant(a.message),"danger")})}),a.deleteItems=g.confirm["delete"](function(){b["delete"]("/api/zendesk/accounts",{params:{id:a.accounts.checked}}).success(function(){d.show(e.instant("MESSAGE_WELL_DONE"),"success")}).error(function(a){d.show(e.instant(a.message),"danger");
+})}),a.checkAccount=function(a){b.get("/api/zendesk/accounts/"+a+"/check").then(function(){d.show(e.instant("MESSAGE_ACCOUNT_VERIFIED"),"success")})["catch"](function(){d.show(e.instant("MESSAGE_ACCOUNT_INVALID"),"danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.list",{url:"/list",templateUrl:"app/zendesk/list/list.html",controller:"ZendeskListCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{name:"smart-table",insertBefore:"#ng_load_plugins_before",files:["assets/css/smart_table.css"]}])}]}})}]),angular.module("xCallyShuttleApp").controller("ZendeskViewCtrl",["$scope","$http","$stateParams","$translate","$location","WizardHandler","socket","xAlert","Modal",function(a,b,c,d,e,f,g,h,i){a.$stateParams=c,a.config={autoHideScrollbar:!1,theme:"dark",advanced:{updateOnContentResize:!0},setHeight:500,scrollInertia:0},a.initConfiguration=function(){a.formsConfiguration={},a.configuration={}},a.goNext=function(){f.wizard().next()},a.formValidation=function(a){return a},a.$on("$destroy",function(){g.unsyncUpdates("zendesk_configuration"),g.unsyncUpdates("zendesk_field")}),a.initView=function(){b.get("/api/zendesk/accounts/"+c.id).success(function(b){a.account=b}).error(function(a){h.show(a.message,"danger")})},a.updateItem=function(){b.put("/api/zendesk/accounts/"+c.id,a.account).success(function(){h.show(d.instant("MESSAGE_WELL_DONE")+".","success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.getConfigurations=function(){b.get("/api/zendesk/configurations",{params:{ZendeskAccountId:c.id}}).success(function(b){a.configurations=b,g.socket.on("zendesk_configuration:remove",function(b){_.remove(a.configurations,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.deleteConfiguration=i.confirm["delete"](function(a){b["delete"]("api/zendesk/configurations/"+a).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})}),a.createConfiguration=function(){a.configuration.ZendeskAccountId=c.id,b.post("api/zendesk/configurations",a.configuration).success(function(a){e.path("zendesk/view/"+c.id+"/configurations/settings/"+a.id)}).error(function(){h.show("Something went wrong!","danger")})},a.fieldType=["string","variable"],a.descFieldType=["string","key_value"],a.getFields=function(){b.get("/api/zendesk/accounts/"+c.id+"/fields").success(function(b){_.remove(b,function(a){return"subject"===a.type||"description"===a.type||"assignee"===a.type}),a.accountFields=b}).error(function(a){h.show(a.message,"danger")})},a.getConfiguration=function(){b.get("/api/zendesk/configurations/"+c.configurationId).success(function(b){a.configurationName=b.name,a.subjectConfig=b.Subject,a.descriptionConfig=b.Description,a.fieldConfig=b.Field,g.socket.on("zendesk_field:remove",function(b){_.remove(a.subjectConfig,{id:b.id}),_.remove(a.descriptionConfig,{id:b.id}),_.remove(a.fieldConfig,{id:b.id})})}).error(function(a){h.show(a.message,"danger")})},a.getVariables=function(){b.get("/api/variables").success(function(b){a.variables=b.rows}).error(function(a){h.show(a.message,"danger")})},a.removeItem=function(a){b["delete"]("api/zendesk/fields/"+a.id).success(function(){h.show(d.instant("MESSAGE_WELL_DONE"),"success")}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG"),"danger")})},a.addItemSubject=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/subject",d).success(function(b){a.subjectConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemDescription=function(){var d={type:"string",content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/description",d).success(function(b){a.descriptionConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.addItemField=function(){var d={content:""};b.post("/api/zendesk/configurations/"+c.configurationId+"/field",d).success(function(b){a.fieldConfig.push(b)}).error(function(){h.show("Something went wrong!","danger")})},a.updateField=function(a){b.put("/api/zendesk/fields/"+a.id,a).success(function(){}).error(function(){h.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})},a.changeType=function(b){"variable"===b.type?b.content="":"string"===b.type&&(b.VariableId=null),a.updateField(b)},a.changeDescType=function(b){"key_value"===b.type?(b.content="","string"===b.keyType?b.VariableId=null:"variable"===b.keyType&&(b.keyContent="")):"string"===b.type&&(b.VariableId=null,b.key="",b.keyContent=""),a.updateField(b)},a.changeFieldType=function(b){b.content="",a.updateField(b)},a.getSystemFieldOptions=function(b){if(b){var c=_.find(a.accountFields,"id",b);return c?c.system_field_options?c.system_field_options:null:void 0}}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.view",{url:"/view/:id",templateUrl:"app/zendesk/view/view.html",controller:"ZendeskViewCtrl",resolve:{deps:["$ocLazyLoad",function(a){return a.load([{insertBefore:"#ng_load_plugins_before",files:["assets/css/profile.css","assets/css/tasks.css"]}])}]}}).state("main.zendesk.view.account",{url:"/account",templateUrl:"app/zendesk/view/view.account.html"}).state("main.zendesk.view.configurations",{url:"/configurations",templateUrl:"app/zendesk/view/view.configurations.html"}).state("main.zendesk.view.configurations.settings",{url:"/settings/:configurationId",templateUrl:"app/zendesk/view/view.configurationSettings.html",controller:"ZendeskViewCtrl"}).state("main.zendesk.view.configuration",{url:"/configuration",templateUrl:"app/zendesk/view/view.configuration.html"})}]),angular.module("xCallyShuttleApp").controller("ZendeskWizardCtrl",["$scope","$http","$location","$translate","xAlert","WizardHandler",function(a,b,c,d,e,f){a.translate=d,a.initWizard=function(){a.$translate=d,a.forms={},a.item={},a.item.authType="password"},a.next=function(){f.wizard().next()},a.exitValidation=function(a){return a},a.createItem=function(){b.post("api/zendesk/accounts",a.item).success(function(){e.show(d.instant("MESSAGE_WELL_DONE")+".","success"),c.path("/zendesk/list")}).error(function(){e.show(d.instant("MESSAGE_SOMETHING_WENT_WRONG")+".","danger")})}}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk.wizard",{url:"/wizard",templateUrl:"app/zendesk/wizard/wizard.html",controller:"ZendeskWizardCtrl"})}]),angular.module("xCallyShuttleApp").config(["$stateProvider",function(a){a.state("main.zendesk",{url:"/zendesk",template:"<div ui-view></div>","abstract":!0})}]),angular.module("xCallyShuttleApp").service("application",function(){var a={applications:[{name:"Queue",value:"Queue"},{name:"Playback",value:"Playback"},{name:"Dial",value:"Dial"},{name:"Cally-Square IVR",value:"AGI"},{name:"GoTo",value:"Goto"},{name:"Hangup",value:"Hangup"},{name:"Set",value:"Set"},{name:"Custom",value:"custom"},{name:"VoiceMail",value:"Voicemail"}],queueOptions:[{value:"C",name:"APPLICATION_QUEUE_OPTION_C"},{value:"c",name:"APPLICATION_QUEUE_OPTION_c"},{value:"d",name:"APPLICATION_QUEUE_OPTION_d"},{value:"F",name:"APPLICATION_QUEUE_OPTION_F"},{value:"h",name:"APPLICATION_QUEUE_OPTION_h"},{value:"H",name:"APPLICATION_QUEUE_OPTION_H"},{value:"n",name:"APPLICATION_QUEUE_OPTION_n"},{value:"i",name:"APPLICATION_QUEUE_OPTION_i"},{value:"I",name:"APPLICATION_QUEUE_OPTION_I"},{value:"r",name:"APPLICATION_QUEUE_OPTION_r"},{value:"R",name:"APPLICATION_QUEUE_OPTION_R"},{value:"t",name:"APPLICATION_QUEUE_OPTION_t"},{value:"T",name:"APPLICATION_QUEUE_OPTION_T"},{value:"w",name:"APPLICATION_QUEUE_OPTION_w"},{value:"W",name:"APPLICATION_QUEUE_OPTION_W"},{value:"k",name:"APPLICATION_QUEUE_OPTION_k"},{value:"K",name:"APPLICATION_QUEUE_OPTION_K"},{value:"x",name:"APPLICATION_QUEUE_OPTION_x"},{value:"X",name:"APPLICATION_QUEUE_OPTION_X"}],audioOptions:[{value:"skip",name:"APPLICATION_PLAYBACK_OPTION_SKIP"},{value:"noanswer",name:"APPLICATION_PLAYBACK_OPTION_NOANSWER"},{value:"j",name:"APPLICATION_PLAYBACK_OPTION_J"},{value:"say",name:"APPLICATION_PLAYBACK_OPTION_SAY"}],hangupCauses:[{value:"",name:"--"},{value:"1",name:"APPLICATION_HANGUP_CAUSE_1"},{value:"16",name:"APPLICATION_HANGUP_CAUSE_16"},{value:"17",name:"APPLICATION_HANGUP_CAUSE_17"},{value:"18",name:"APPLICATION_HANGUP_CAUSE_18"},{value:"21",name:"APPLICATION_HANGUP_CAUSE_21"},{value:"22",name:"APPLICATION_HANGUP_CAUSE_22"},{value:"27",name:"APPLICATION_HANGUP_CAUSE_27"},{value:"38",name:"APPLICATION_HANGUP_CAUSE_38"},{value:"41",name:"APPLICATION_HANGUP_CAUSE_41"}],intTypes:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"custom",name:"APPLICATION_CUSTOM"},{value:"list",name:"APPLICATION_FROM_LIST"}]};return{application:a}}),angular.module("xCallyShuttleApp").factory("Auth",["$location","$rootScope","$http","User","$cookieStore","$q",function(a,b,c,d,e,f){var g={};return e.get("token")&&(g=d.me()),{login:function(a,h){var i=h||angular.noop,j=f.defer();return c.post("/auth/local",{name:a.name,password:a.password,remember:a.remember}).success(function(a){return e.put("token",a.token),e.put("userId",a.userId),g=d.me({},function(){b.$broadcast("login")}),j.resolve(a),i()}).error(function(a){return this.logout(),j.reject(a),i(a)}.bind(this)),j.promise},loginWithToken:function(a,b,c){e.put("token",a),e.put("userId",b),e.put("name",c),g=d.me()},logout:function(){c.put("/api/users/"+g.id,{online:!1}).success(function(){e.remove("token"),e.remove("userId"),g={},b.$broadcast("logout")}).error(function(a){return a})},createUser:function(a,b){var c=b||angular.noop;return d.save(a,function(b){return e.put("token",b.token),g=d.me(),c(a)},function(a){return this.logout(),c(a)}.bind(this)).$promise},changePassword:function(a,b,c){var e=c||angular.noop;return d.changePassword({id:g.id},{oldPassword:a,newPassword:b},function(a){return e(null,a)},function(a){return e(a)}).$promise},getCurrentUser:function(){return g},isLoggedIn:function(){return g.hasOwnProperty("role")},isLoggedInAsync:function(a){g.hasOwnProperty("$promise")?g.$promise.then(function(){a(!0)})["catch"](function(){a(!1)}):a(g.hasOwnProperty("role")?!0:!1)},isAdmin:function(){return"admin"===g.role},getRole:function(){return g.role},getToken:function(){return e.get("token")},getUserId:function(){return console.log(e.get("userId")),e.get("userId")},getName:function(){return e.get("name")}}}]),angular.module("xCallyShuttleApp").factory("User",["$resource",function(a){return a("/api/users/:id/:controller",{id:"@id"},{changePassword:{method:"PUT",params:{controller:"password"}},me:{method:"GET",params:{id:"me"}}})}]),angular.module("xCallyShuttleApp").service("automations",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select",operators:"equals"},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",propertyField:"number",operators:"noequals"}],actions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select"}]},chat:{conditions:[],actions:[]},fax:{conditions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select",operators:"equals"},{name:"APPLICATION_HOURS_SINCE_CREATED",value:"createdAt",propertyField:"number",operators:"noequals"}],actions:[{name:"APPLICATION_STATUS",value:"status",propertyField:"select"}]}},b=["voice","mail","chat","fax"],c={equals:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"}],all:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"},{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}],noequals:[{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}]},d={voice:{},mail:{status:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_PENDING",value:"PENDING"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"},{name:"APPLICATION_STATUS_SOLVED",value:"SOLVED"}]},chat:{},fax:{status:[{name:"APPLICATION_STATUS_NEW",value:"NEW"},{name:"APPLICATION_STATUS_OPEN",value:"OPEN"},{name:"APPLICATION_STATUS_PENDING",value:"PENDING"},{name:"APPLICATION_STATUS_CLOSED",value:"CLOSED"},{name:"APPLICATION_STATUS_SOLVED",value:"SOLVED"}]}};return{automations:a,properties:d,channels:b,operators:c}}),angular.module("xCallyShuttleApp").controller("FooterController",["$scope",function(a){a.$on("$includeContentLoaded",function(){Layout.initFooter()})}]),angular.module("xCallyShuttleApp").controller("HeaderController",["$scope","$rootScope","$location","$state","$http","$notification","Auth","xAlert","socket","ngAudio","settings","toastr","localStorageService",function(a,b,c,d,e,f,g,h,i,j,k,l,m){a.toggleQuickSidebar=function(){k.layout.pageQuickSidebarOpened=!k.layout.pageQuickSidebarOpened,k.layout.pageQuickSidebarOpened||m.remove("chatRoomId")},a.initHeader=function(){var c=j.load("api/xchatty/assets?resource=notification/xc_blubb.mp3");"agent"===g.getCurrentUser().role&&(i.socket.on("report_mail:save",function(a){c.play();var b=f("MAIL CHANNEL",{icon:"assets/images/media/channels/mail64.png",body:"NEW Incoming Mail Message!",delay:1e3*a.timeslot});b.$on("click",function(){e.put("/api/report/mails/"+a.id,{connect:!0}).success(function(){b.close(),h.show("Mail properly assigned","success")}).error(function(a){h.show(a.message,"danger")})})}),i.socket.on("report_chat:save",function(a){c.play();var d=f("CHAT CHANNEL",{icon:"assets/images/media/channels/chat64.png",body:"NEW Incoming Chat Visitor!",delay:1e3*a.timeslot});d.$on("click",function(){e.put("/api/report/chats/"+a.id,{connect:!0}).success(function(){d.close(),h.show("Chat properly assigned","success"),b.$broadcast("chatMessageEvent",{type:"external",chatRoomId:a.chatroomid})}).error(function(a){h.show(a.message,"danger")})})}),i.socket.on("chat_message:save",function(a){var d=m.get("chatRoomId");if(!d||d!==a.ChatRoomId){c.play();var e=f(a.User.fullname,{icon:"assets/images/media/channels/chat64.png",body:a.body.length>35?a.body.substring(0,35)+"...":a.body,delay:1e4});e.$on("click",function(){b.$broadcast("chatMessageEvent",{type:"internal",chatRoomId:a.ChatRoomId})})}})),e({url:"/api/fax/user_has_queues",method:"GET",params:{UserId:g.getCurrentUser().id}}).success(function(b){a.faxQueues=_.pluck(b,"FaxQueueId"),a.faxQueues.forEach(function(a){i.socket.on("FAX:QUEUE:"+a,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}),i.socket.on("FAX:AGENT:"+g.getCurrentUser().id,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})})}).error(function(a){console.error(a)}),i.socket.on("user_has_fax_queue:save",function(b){b=_.map(b,function(a){return a.UserId=parseInt(a.UserId,10),a}),b=_.find(b,{UserId:g.getCurrentUser().id}),b&&-1===_.indexOf(a.faxQueues,b.FaxQueueId)&&(a.faxQueues.push(b.FaxQueueId),i.socket.on("FAX:QUEUE:"+b.FaxQueueId,function(a,b){var c=f("FAX CHANNEL",{icon:"assets/images/media/channels/telephone124.png",body:"NEW Incoming Fax Message!",delay:1e3*a.timeout});c.$on("click",function(){e.put("/api/fax/rooms/"+a.roomId,{UserId:g.getCurrentUser().id}).success(function(){c.close(),b(g.getCurrentUser().id),l.success("Fax properly assigned","Success",{closeButton:!0,timeOut:5e3})}).error(function(){b(g.getCurrentUser().id),l.warning("Fax already assigned","Warning",{closeButton:!0,timeOut:5e3})})})}))}),i.socket.on("user_has_fax_queue:remove",function(b){_.indexOf(b.where.UserId,g.getCurrentUser().id.toString())>=0&&_.indexOf(a.faxQueues,b.where.FaxQueueId)>=0&&(a.faxQueues=_.remove(a.faxQueues,b.where.FaxQueueId),i.socket.removeAllListeners("FAX:QUEUE:"+b.where.FaxQueueId))})},a.logout=function(){e.get("/auth/local/logout").success(function(){g.logout(),c.path("/login")}).error(function(a){console.error(a)})},a.isActive=function(a){return a===c.path()}}]),angular.module("xCallyShuttleApp").service("interval",function(){var a={months:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"jan",name:"APPLICATION_JANUARY"},{value:"feb",name:"APPLICATION_FEBRUARY"},{value:"mar",name:"APPLICATION_MARCH"},{value:"apr",name:"APPLICATION_APRIL"},{value:"may",name:"APPLICATION_MAY"},{value:"jun",name:"APPLICATION_JUNE"},{value:"jul",name:"APPLICATION_JULY"},{value:"aug",name:"APPLICATION_AUGUST"},{value:"sep",name:"APPLICATION_SEPTEMBER"},{value:"oct",name:"APPLICATION_OCTOBER"},{value:"nov",name:"APPLICATION_NOVEMBER"},{value:"dec",name:"APPLICATION_DECEMBER"}],daysOfWeek:[{value:"always",name:"APPLICATION_ALWAYS"},{value:"mon",name:"APPLICATION_MONDAY"},{value:"tue",name:"APPLICATION_TUESDAY"},{value:"wed",name:"APPLICATION_WEDNESDAY"},{value:"thu",name:"APPLICATION_THURSDAY"},{value:"fri",name:"APPLICATION_FRIDAY"},{value:"sat",name:"APPLICATION_SATURDAY"},{value:"sun",name:"APPLICATION_SUNDAY"}],daysOfMonth:["always",1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]};return{interval:a}}),angular.module("xCallyShuttleApp").factory("Modal",["$rootScope","$uibModal",function(a,b){function c(c,d){console.log("openModal",d);var e=a.$new();return c=c||{},d=d||"modal-default",angular.extend(e,c),b.open({templateUrl:"components/modal/delete.html",windowClass:d,scope:e})}return{confirm:{"delete":function(a){return a=a||angular.noop,function(){var b,d=Array.prototype.slice.call(arguments),e=d.shift();b=c({modal:{dismissable:!0,title:"Confirm Delete",html:"<p>Are you sure you want to delete"+(e?"<strong> "+e+"</strong>":" selected items")+"?</p>",buttons:[{classes:"btn red",text:"Delete",click:function(a){b.close(a)}},{classes:"btn default",text:"Cancel",click:function(a){b.dismiss(a)}}]}},"over-topbar center"),b.result.then(function(b){a.apply(b,d)})}}}}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerAddModal",["$scope","$uibModalInstance","Agent","items",function(a,b,c,d){a.items=d,a.agents=c.get(function(b){a.agents=b,a.items.forEach(function(b){_.remove(a.agents.rows,{id:b.id})})}),a.selected={items:[]},a.modal={title:"APPLICATION_AGENTS_SELECTION"},a.ok=function(){b.close(_.union(_.pluck(a.selected.items,"id"),_.pluck(a.items,"id")))},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarControllerCloseModal",["$scope","$uibModalInstance",function(a,b){a.modal={title:"APPLICATION_CONFIRM_CLOSE",text:"MESSAGE_ARE_YOU_SURE_YOU_WANT_TO_CLOSE_THE_CHAT"},a.ok=function(){b.close()},a.cancel=function(){b.dismiss()}}]),angular.module("xCallyShuttleApp").controller("QuickSidebarController",["$scope","$rootScope","$window","$http","$uibModal","$log","$timeout","Auth","Agent","User","ChatRoom","ChatMessage","socket","settings","localStorageService","xAlert","$translate",function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){a.emojiMessage={},a.options={link:!0,linkTarget:"_blank",pdf:{embed:!1},image:{embed:!0},audio:{embed:!0},code:{highlight:!0,lineNumbers:!1},basicVideo:!1,video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,ytAuthKey:"_nkO9h1A7HlVyiUICO17oA"}};var r=a.currentUser=h.getCurrentUser();a.message={body:"",user:""},a.$on("$includeContentLoaded",function(){o.get("chatRoomId")&&k.get({id:o.get("chatRoomId")},t,u),o.get("currentTab")&&(a.currentTab=o.get("currentTab"))});var s=angular.element(c);a.getWindowDimensions=function(){return{h:s.height(),w:s.width()}},a.$watch(a.getWindowDimensions,function(b){a.style={height:b.h-46-46-46+"px"},a.style2={height:b.h-46-46-46-180+"px"}},!0),s.bind("resize",function(){a.$apply()}),a.agents=i.get({page:0,per_page:1e3},function(){m.syncUpdates("agent",a.agents.rows)}),a.users=j.get({page:0,per_page:1e3},function(){m.syncUpdates("user",a.users.rows)}),a.chatRooms=k.me(function(b){a.chatRooms=b,m.syncUpdates("chat_room",a.chatRooms)},function(a){console.error(a)}),a.currentTab=0,a.messagesTab=!1,b.$on("chatMessageEvent",function(b,c){switch(c.type){case"internal":a.currentTab=0;break;case"external":a.currentTab=2}k.get({id:c.chatRoomId},t,u)}),a.goToTab=function(b){a.currentTab=b,a.messagesTab=!1,a.chatRoom=null,o.set("currentTab",a.currentTab),o.set("messagesTab",a.messagesTab),o.remove("chatRoomId"),m.unsyncUpdates("chat_message"),m.unsyncUpdates("chat_room")},a.goToMessage=function(a,b){a?k.users({users:[r.id,a]},t,u):k.get({id:b},t,u)},a.sendMessage=function(){a.message.body.trim().length&&l.save({ChatRoomId:a.chatRoom.id,body:a.message.body},function(){a.message.body=""},function(a){console.error(a)})},a.goBack=function(){a.messagesTab=!1,a.chatRoom=null,o.set("messagesTab",a.messagesTab),o.remove("chatRoomId"),m.unsyncUpdates("chat_message"),m.unsyncUpdates("user_has_chat_room")},a.chatRoomsGroupsGreaterThan=function(a){return function(b){return b.Users?"external"!==b.type&&b.Users.length>a:!1}},a.closeChatRoom=function(a,b){var c=e.open({animation:!0,size:b,templateUrl:"components/quickSidebar/modal/close.html",controller:"QuickSidebarControllerCloseModal"});c.result.then(function(){d.put("/api/chat/rooms/"+a,{status:"close"}).then(function(){p.show(q.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){p.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})},a.addAgent=function(b,c){var g=e.open({animation:!0,size:c,templateUrl:"components/quickSidebar/modal/add.html",controller:"QuickSidebarControllerAddModal",resolve:{items:function(){return _.map(a.chatRoom.Users?a.chatRoom.Users:[],function(a){return{id:a.id,fullname:a.fullname}})}}});g.result.then(function(c){d.put("/api/chat/rooms/"+b+"/users",{users:c}).then(function(b){m.unsyncUpdates("chat_message"),a.chatRoom=b.data,a.currentTab=3,a.messagesTab=!0;var c=_.find(a.chatRooms,{id:b.id}),d=a.chatRooms.indexOf(c);c?_.merge(a.chatRooms[d],b.data):a.chatRooms.push(b.data),m.socket.on("chat_message:save",function(c){c.ChatRoomId===b.data.id&&(a.chatRoom.ChatMessages.push(c),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),p.show(q.instant("MESSAGE_WELL_DONE"),"success")})["catch"](function(a){p.show(a.data.message,"danger")})},function(){f.info("Modal dismissed at: "+new Date)})};var t=function(b){a.messagesTab=!0,n.layout.pageQuickSidebarOpened=!0,o.set("chatRoomId",b.id),o.set("messagesTab",a.messagesTab),a.chatRoom=b;var c=_.find(a.chatRooms,{id:b.id}),d=a.chatRooms.indexOf(c);c?_.merge(a.chatRooms[d],b):a.chatRooms.push(b),g(function(){angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last")},1e3),m.socket.on("chat_message:save",function(c){c.ChatRoomId===b.id&&(a.chatRoom.ChatMessages.push(c),angular.element("page-quick-sidebar-chat-user-messages").mCustomScrollbar("scrollTo","last"))}),m.socket.on("chat_room:save",function(b){b.id===a.chatRoom.id&&(a.chatRoom.status=b.status)})},u=function(a){console.error(a)};a.$on("$destroy",function(){m.unsyncUpdates("agent"),m.unsyncUpdates("user")})}]),angular.module("xCallyShuttleApp").directive("resizeQuickSidebar",["$window",function(a){return function(b){var c=angular.element(a);b.getWindowDimensions=function(){return{h:c.height(),w:c.width()}},b.$watch(b.getWindowDimensions,function(a){b.style={height:a.h-46-46-46+"px"}},!0),c.bind("resize",function(){b.$apply()})}}]),angular.module("xCallyShuttleApp").controller("SidebarController",["$scope","$rootScope","$resource","$location","Auth","$http","xAlert","$stateParams","socket",function(a,b,c,d,e,f,g,h,i){a.Auth=e,a.$stateParams=h,a.$on("$includeContentLoaded",function(){Metronic.init(),Layout.initSidebar()}),a.isAssociated=function(a){if(e.isAdmin())return!0;if(e.getCurrentUser().Modules)for(var b=0;b<e.getCurrentUser().Modules.length;b++)if(e.getCurrentUser().Modules[b].name===a)return!0;return!1},a.getSidebarDashboards=function(){f.get("/api/dashboards").then(function(b){a.dashboards=b.data.rows,i.syncUpdates("dashboard",a.dashboards)})["catch"](function(a){g.show("Error loading your dashboards","danger")})},a.isActive=function(a){return a===d.path()},a.$on("destroy",function(){i.unsyncUpdates("dashboard")})}]),angular.module("xCallyShuttleApp").factory("socket",["$rootScope","socketFactory","Auth",function(a,b,c){var d=c.getCurrentUser(),e=io("",{query:"token="+c.getToken()+"&userId="+(d.id||c.getUserId())+"&name="+(d.name||c.getName())+"&role="+(d.role||"agent")+"&source=browser",path:"/socket.io-client"}),f=b({ioSocket:e});return a.$on("login",function(){e=io("",{forceNew:!0,query:"token="+c.getToken()+"&userId="+c.getCurrentUser().id+"&name="+c.getCurrentUser().name+"&role="+c.getCurrentUser().role+"&source=browser",path:"/socket.io-client"})}),a.$on("logout",function(){f&&f.disconnect(!0)}),{socket:f,syncUpdates:function(a,b,c){c=c||angular.noop,f.on(a+":save",function(a){var d=_.find(b,{id:a.id}),e=b.indexOf(d),f="created";d?(_.merge(b[e],a),f="updated"):b.unshift(a),c(f,a,b)}),f.on(a+":remove",function(a){var d="deleted";_.remove(b,{id:a.id}),c(d,a,b)})},unsyncUpdates:function(a){f.removeAllListeners(a+":save"),f.removeAllListeners(a+":remove")},syncUpdatesByAttributes:function(a,b,c,d){d=d||angular.noop,f.on(a+":save",function(e){console.log(a),console.log(e);var f=!0;if(_.forIn(b,function(a,b){return e[b]&&e[b]===a?!0:f=!1}),f){var g=_.find(c,{id:e.id}),h=c.indexOf(g),i="created";g?(_.merge(c[h],e),i="updated"):c.unshift(e),d(i,e,c)}}),f.on(a+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},syncMailMessageUpdates:function(a,b,c,d){d=d||angular.noop,f.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),f.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncMailMessageUpdates:function(a,b){f.removeAllListeners(a+":"+b+":save"),f.removeAllListeners(a+":"+b+":remove")},syncFaxMessageUpdates:function(a,b,c,d){d=d||angular.noop,f.on(a+":"+b+":save",function(a){var b=_.find(c,{id:a.id}),e=c.indexOf(b),f="created";b?(_.merge(c[e],a),f="updated"):c.unshift(a),d(f,a)}),f.on(a+":"+b+":remove",function(a){var b="deleted";_.remove(c,{id:a.id}),d(b,a,c)})},unsyncFaxMessageUpdates:function(a,b){f.removeAllListeners(a+":"+b+":save"),f.removeAllListeners(a+":"+b+":remove")}}}]),angular.module("xCallyShuttleApp").service("triggers",function(){var a={voice:{conditions:[],actions:[]},mail:{conditions:[{name:"APPLICATION_FROM",value:"from",propertyField:"input",operators:"equals"},{name:"APPLICATION_CC",value:"cc",propertyField:"input",operators:"equals"},{name:"APPLICATION_SUBJECT",value:"subject",propertyField:"input",operators:"equals"}],actions:[{name:"APPLICATION_TEMPLATE",value:"template",propertyField:"select"}]},chat:{conditions:[],actions:[]},fax:{conditions:[],actions:[]}},b={equals:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"}],all:[{value:"=",name:"APPLICATION_EQUALS_TO"},{value:"<>",name:"APPLICATION_NOT_EQUALS_TO"},{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}],noequals:[{value:">=",name:"APPLICATION_GTE_TO"},{value:"<=",name:"APPLICATION_LTE_TO"},{value:">",name:"APPLICATION_GREATER_THAN"},{value:"<",name:"APPLICATION_LESS_THAN"}]},c={voice:{},mail:{},chat:{},fax:{}},d=["voice","mail","chat","fax"];return{triggers:a,properties:c,operators:b,channels:d}}),function(a,b){angular.module("adf.widget.counter",["adf.provider"]).value("apiServiceUrlCounter","/api/widgets/counter").config(["dashboardProvider",function(a){a.widget("counter",{title:"Counter",description:"Counter for db results",templateUrl:"{widgetsPath}/counter/src/view.html",controller:"apiwidgetCounterViewCtrl",edit:{templateUrl:"{widgetsPath}/counter/src/edit.html",controller:"apiwidgetCounterEditCtrl"}})}]).service("apiServiceCounter",["$q","$http","apiServiceUrlCounter",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiwidgetCounterEditCtrl",["$scope",function(a){a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.colors=[{name:"Blue",value:"blue-madison"},{name:"Red",value:"red-intense"},{name:"Green",value:"green-haze"},{name:"Purple",value:"purple-plum"},{name:"Orange",value:"yellow-casablanca"},{name:"Yellow",value:"yellow-crusta"}],a.config.icons=[{name:"Talk bubbles",value:"fa-comments"},{name:"Bar Chart",value:"fa-bar-chart"},{name:"Shopping Cart",value:"fa-shopping-cart"},{name:"Globe",value:"fa-globe"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE"}]).controller("apiwidgetCounterViewCtrl",["$scope","$interval","apiServiceCounter",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.color=a.config.color?a.config.color:"blue-madison",a.config.icon=a.config.icon?a.config.icon:"fa-comments",a.config.link=a.config.link?a.config.link:"#",a.config.linkText=a.config.linkText?a.config.linkText:"VIEW MORE",a.counterApiCall=function(){a.config.condition&&a.config.report&&c.get(a.config).then(function(b){a.count=parseInt(b[0].count)})},a.counterApiCall();var d=b(function(){a.counterApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.counter").run(["$templateCache",function(a){a.put("{widgetsPath}/counter/src/edit.html","<form role=form><div class=form-group><label class=control-label>{{'APPLICATION_REPORT' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_REPORT' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"report.value as report in config.reportTables | filter: $select.search\"><div ng-bind-html=\"report.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_CONDITION' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder=\"{{'APPLICATION_CONDITION' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_REFRESH_TIMEOUT' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder=\"{{'APPLICATION_REFRESH_TIMEOUT' | translate}}\" min=1></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_COLOR' | translate}}</label><ui-select data-ng-model=config.color name=color theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_COLOR' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"color.value as color in config.colors | filter: $select.search\"><div ng-bind-html=\"color.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label class=control-label>{{'APPLICATION_WIDGET_ICON' | translate}}</label><ui-select data-ng-model=config.icon name=icon theme=bootstrap><ui-select-match placeholder=\"{{ 'APPLICATION_WIDGET_ICON' | translate }}\">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat=\"icon.value as icon in config.icons | filter: $select.search\"><div ng-bind-html=\"icon.name | highlight: $select.search\"></div></ui-select-choices></ui-select></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_DETAILS' | translate}}</label> <input type=text class=form-control id=details ng-model=config.details maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_DETAILS' | translate}}\"></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK' | translate}}</label> <input type=text class=form-control id=link ng-model=config.link placeholder=http://yourlink></div><div class=form-group><label for=condition>{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}</label> <input type=text class=form-control id=linkText ng-model=config.linkText maxlength=30 placeholder=\"{{'APPLICATION_WIDGET_LINK_TEXT' | translate}}\"></div></form>"),
+a.put("{widgetsPath}/counter/src/view.html",'<div class=dashboard-stat ng-class=config.color ng-if="count || count === 0"><div class=visual><i class=fa ng-class=config.icon></i></div><div class=details><div class=number>{{count}}</div><div class=desc>{{config.details}}</div></div><a class=more href={{config.link}}>{{config.linkText}} <i class="m-icon-swapright m-icon-white"></i></a></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if="!count && count != 0"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.pie-chart",["adf.provider"]).value("apiServiceUrlPieChart","/api/widgets/piechart").config(["dashboardProvider",function(a){a.widget("pie-chart",{title:"Pie-Chart",description:"Display a pie-chart starting from DB values",templateUrl:"{widgetsPath}/pie-chart/src/view.html",controller:"apiWidgetPieChartViewCtrl",edit:{templateUrl:"{widgetsPath}/pie-chart/src/edit.html",controller:"apiWidgetPieChartEditCtrl"}})}]).service("apiServicePieChart",["$q","$http","apiServiceUrlPieChart",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetPieChartEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetPieChartViewCtrl",["$scope","$interval","apiServicePieChart",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.pieChartApiCall=function(){a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){if(b&&1===b.length){a.labels=[],a.data=[];for(var c in b[0])a.labels.push(c),a.data.push(b[0][c])}else a.labels=[],a.data=[]})},a.pieChartApiCall();var d=b(function(){a.pieChartApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.pie-chart").run(["$templateCache",function(a){a.put("{widgetsPath}/pie-chart/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_FIELDS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div></form>'),a.put("{widgetsPath}/pie-chart/src/view.html",'<div ng-if=labels.length ng-style=config.style><canvas id=doughnut class="chart chart-doughnut" chart-data=data chart-labels=labels legend=true></canvas></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!labels.length><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_METRIC_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(a,b){angular.module("adf.widget.table",["adf.provider"]).value("apiServiceUrlTable","/api/widgets/table").config(["dashboardProvider",function(a){a.widget("table",{title:"Table",description:"Show tabbed results from db",templateUrl:"{widgetsPath}/table/src/view.html",controller:"apiWidgetTableViewCtrl",edit:{templateUrl:"{widgetsPath}/table/src/edit.html",controller:"apiWidgetTableEditCtrl"}})}]).service("apiServiceTable",["$q","$http","apiServiceUrlTable",function(a,b,c){return{get:function(d){var e=a.defer();return b.get(c,{params:{condition:encodeURIComponent(d.condition),table:d.report,fields:d.fields}}).success(function(a){a?e.resolve(a):e.reject()}).error(function(a){console.log(a),e.reject()}),e.promise}}}]).controller("apiWidgetTableEditCtrl",["$scope",function(a){function b(){return a.config.fields||(a.config.fields=[{column:"",alias:""}]),a.config.fields}a.config.reportTables=[{name:"Agents",value:"agent"},{name:"Calls",value:"call"},{name:"Dials",value:"dial"},{name:"Members",value:"member"},{name:"Queues",value:"queue"}],a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.fields=a.config.fields?a.config.fields:[{column:"",alias:""}],a.addField=function(){b().push({})},a.removeField=function(a){b().splice(a,1)}}]).controller("apiWidgetTableViewCtrl",["$scope","$interval","apiServiceTable",function(a,b,c){a.config.timeout=a.config.timeout?a.config.timeout:1,a.config.height=a.config.height?a.config.height:350,a.config.style={"max-height":a.config.height+"px",overflow:"scroll"},a.tableApiCall=function(){a.config.condition&&a.config.report&&a.config.fields.length&&""!==a.config.fields[0].column&&""!==a.config.fields[0].alias&&c.get(a.config).then(function(b){a.results=b})},a.tableApiCall();var d=b(function(){a.tableApiCall()},1e3*parseInt(a.config.timeout));a.$on("$destroy",function(){b.cancel(d)})}]),angular.module("adf.widget.table").run(["$templateCache",function(a){a.put("{widgetsPath}/table/src/edit.html",'<form role=form><div class=form-group><label class=control-label>{{\'APPLICATION_REPORT\' | translate}}</label><ui-select data-ng-model=config.report name=report theme=bootstrap><ui-select-match placeholder="{{ \'APPLICATION_REPORT\' | translate }}">{{$select.selected.name}}</ui-select-match><ui-select-choices repeat="report.value as report in config.reportTables | filter: $select.search"><div ng-bind-html="report.name | highlight: $select.search"></div></ui-select-choices></ui-select></div><div><label class=control-label>{{\'APPLICATION_METRICS\' | translate}}</label></div><div class=padding-bottom ng-repeat="field in config.fields"><div class=form-group><div class=input-group><input type=text class=form-control ng-model=field.column> <span class=input-group-addon>as</span> <input type=text class=form-control ng-model=field.alias> <span class=input-group-btn ng-if="config.fields.length>1"><button class="btn btn-danger" type=button data-ng-click=removeField($index)><i class="fa fa-times"></i> {{\'APPLICATION_REMOVE\' | translate}}</button></span></div></div></div><button type=button class="btn btn-sm green mbottom20" ng-click=addField()><i class="fa fa-plus"></i> {{\'APPLICATION_ADD_FIELD\' | translate}}</button><div class=form-group><label for=condition>{{\'APPLICATION_CONDITION\' | translate}}</label> <input type=text class=form-control id=condition ng-model=config.condition placeholder="{{\'APPLICATION_CONDITION\' | translate}}"></div><div class=form-group><label for=condition>{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}</label> <input type=number class=form-control id=timeout ng-model=config.timeout placeholder="{{\'APPLICATION_REFRESH_TIMEOUT\' | translate}}" min=1></div><div class=form-group><label for=condition>{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}</label> <input type=number class=form-control id=height ng-model=config.height placeholder="{{\'APPLICATION_WIDGET_MAX_HEIGHT\' | translate}}" min=350></div></form>'),a.put("{widgetsPath}/table/src/view.html",'<div ng-if=results ng-style=config.style><table st-table=results class="table table-striped table-bordered table-hover"><div class=table-responsive><thead><tr><th colspan={{config.fields.length}}><div class=row><div class=col-md-6></div><div class=col-md-6><div class="input-group input-medium pull-right"><input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class=form-control type=search> <span class=input-group-addon><i class="fa fa-search"></i></span></div></div></div></th></tr><tr><th ng-repeat="field in config.fields">{{field.alias}}</th></tr></thead><tbody><tr data-ng-repeat="result in results" class=animate-repeat><td ng-repeat="field in config.fields">{{result[field.alias]}}</td></tr><tr data-ng-hide=results.length><td colspan={{config.fields.length}} style=text-align:center;><i>{{ \'MESSAGE_NO_RESULTS_AVAILABLE\' | translate }}</i></td></tr></tbody><tfoot><tr><td colspan={{config.fields.length}} class=text-center><div st-pagination class=pagination st-items-by-page=10 st-displayed-pages=3></div></td></tr></tfoot></div></table></div><div class="alert alert-danger" role=alert ng-if=!config.report><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_WIDGET_SELECT_REPORT\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_VALID_CONDITION\' | translate}}</div><div class="alert alert-danger" role=alert ng-if=!results><span class="glyphicon glyphicon-exclamation-sign" aria-hidden=true></span> <span class=sr-only>{{\'APPLICATION_ERROR\' | translate}}:</span> {{\'MESSAGE_ENTER_ONE_VALID_FIELD_AND_CHECK_OTHER\' | translate}}</div>')}])}(window),function(){angular.module("pdf",[]).directive("ngPdf",["$window",function(a){return{restrict:"E",templateUrl:function(a,b){return b.templateUrl?b.templateUrl:"partials/viewer.html"},link:function(b,c,d){var e=d.pdfUrl,f=null,g=d.page?d.page:1,h=d.scale>0?d.scale:1,i=c.find("canvas"),j=i[0],k=j.getContext("2d"),l=angular.element(a);l.on("scroll",function(){b.$apply(function(){b.scroll=l[0].scrollY})}),PDFJS.disableWorker=!0,b.pageNum=g,b.renderPage=function(a){f.getPage(a).then(function(a){var e,f,g,i={};"page-fit"!==d.scale||h?e=a.getViewport(h):(e=a.getViewport(1),f=c[0].clientWidth/e.width,g=c[0].clientHeight/e.height,h=Math.min(f,g)),j.height=e.height,j.width=e.width,i={canvasContext:k,viewport:e},a.render(i).promise.then(function(){"function"==typeof b.onPageRender&&b.onPageRender()})})},b.goPrevious=function(){b.pageToDisplay<=1||(b.pageNum=parseInt(b.pageNum)-1)},b.goNext=function(){b.pageToDisplay>=f.numPages||(b.pageNum=parseInt(b.pageNum)+1)},b.zoomIn=function(){return h=parseFloat(h)+.2,b.renderPage(b.pageToDisplay),h},b.zoomOut=function(){return h=parseFloat(h)-.2,b.renderPage(b.pageToDisplay),h},b.changePage=function(){b.renderPage(b.pageToDisplay)},b.rotate=function(){"rotate0"===j.getAttribute("class")?j.setAttribute("class","rotate90"):"rotate90"===j.getAttribute("class")?j.setAttribute("class","rotate180"):"rotate180"===j.getAttribute("class")?j.setAttribute("class","rotate270"):j.setAttribute("class","rotate0")},PDFJS.getDocument(e,null,null,b.onProgress).then(function(a){"function"==typeof b.onLoad&&b.onLoad(),f=a,b.renderPage(b.pageToDisplay),b.$apply(function(){b.pageCount=a.numPages})},function(a){a&&"function"==typeof b.onError&&b.onError(a)}),b.$watch("pageNum",function(a){b.pageToDisplay=parseInt(a),null!==f&&b.renderPage(b.pageToDisplay)})}}}])}(),function(a){a.module("angular-elastic-builder",["RecursionHelper"])}(window.angular),function(a){a.module("angular-elastic-builder").directive("elasticBuilder",["elasticQueryService",function(a){return{scope:{data:"=elasticBuilder"},templateUrl:"angular-elastic-builder/BuilderDirective.html",link:function(b){var c=b.data;b.filters=[],b.removeChild=function(a){b.filters.splice(a,1)},b.addRule=function(){b.filters.push({})},b.addGroup=function(){b.filters.push({type:"group",subType:"and",rules:[]})},b.$watch("data.needsUpdate",function(d){d&&(b.filters=a.toFilters(c.query,b.data.fields),b.data.needsUpdate=!1)}),b.$watch("filters",function(d){d&&(c.query=a.toQuery(b.filters,b.data.fields))},!0)}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticBuilderChooser",["RecursionHelper","groupClassHelper",function(a,b){return{scope:{elasticFields:"=",item:"=elasticBuilderChooser",onRemove:"&"},templateUrl:"angular-elastic-builder/ChooserDirective.html",compile:function(c){return a.compile(c,function(a,c,d){var e=a.depth=+d.depth,f=a.item;a.getGroupClassName=function(){var a=e;return"group"===f.type&&a++,b(a)}})}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticBuilderGroup",["RecursionHelper","groupClassHelper",function(a,b){return{scope:{elasticFields:"=",group:"=elasticBuilderGroup",onRemove:"&"},templateUrl:"angular-elastic-builder/GroupDirective.html",compile:function(c){return a.compile(c,function(a,c,d){var e=a.depth=+d.depth,f=a.group;a.addRule=function(){f.rules.push({})},a.addGroup=function(){f.rules.push({type:"group",subType:"and",rules:[]})},a.removeChild=function(a){f.rules.splice(a,1)},a.getGroupClassName=function(){return b(e+1)}})}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticBuilderRule",[function(){return{scope:{elasticFields:"=",rule:"=elasticBuilderRule",onRemove:"&"},templateUrl:"angular-elastic-builder/RuleDirective.html",link:function(a){a.getType=function(){var b=a.elasticFields,c=a.rule.field;return b&&c?"boolean"===b[c].subType?"boolean":b[c].type:void 0}}}}])}(window.angular),function(a){var b=a.module("angular-elastic-builder");b.directive("elasticType",[function(){return{scope:{type:"=elasticType",rule:"=",guide:"="},template:'<ng-include src="getTemplateUrl()" />',link:function(a){a.getTemplateUrl=function(){var b=a.type;if(b)return b=b.charAt(0).toUpperCase()+b.slice(1),"angular-elastic-builder/types/"+b+".html"},a.booleans=["False","True"],a.booleansOrder=["True","False"],a.inputNeeded=function(){var b=["equals","notEquals","gt","gte","lt","lte"];return~b.indexOf(a.rule.subType)}}}}])}(window.angular),function(a){a.module("angular-elastic-builder").factory("groupClassHelper",function(){return function(a){var b=[""];return b[a%b.length]}})}(window.angular),function(a){function b(a,b){var c=a.map(d.bind(a,b));return c}function c(a,b){var c=a.map(e.bind(a,b)).filter(function(a){return!!a});return c}function d(a,b,c){c!==!1&&(c=!0);var e=Object.keys(b)[0],g={or:"group",and:"group",range:"number"},h=g[e]||"item",i=f(h);switch(e){case"or":case"and":i.rules=b[e].map(d.bind(b,a)),i.subType=e;break;case"missing":case"exists":i.field=b[e].field,i.subType={exists:"exists",missing:"notExists"}[e],delete i.value;break;case"term":case"terms":i.field=Object.keys(b[e])[0];var j=a[Object.keys(b[e])[0]];if("multi"===j.type){var k=b[e][i.field];"string"==typeof k&&(k=[k]),i.value=b[e][i.field]}else i.subType=c?"equals":"notEquals",i.value=b[e][i.field],"number"==typeof i.value&&(i.subType="boolean");break;case"range":i.field=Object.keys(b[e])[0],i.subType=Object.keys(b[e][i.field])[0],i.value=b[e][i.field][i.subType];break;case"not":i=d(a,b[e].filter,!1);break;default:i.field=Object.keys(b[e])[0]}return i}function e(a,b){var c={};if("group"===b.type)return c[b.subType]=b.rules.map(e.bind(b,a)).filter(function(a){return!!a}),c;var d=b.field,f=a[d];if(d){switch(f.type){case"term":case"multiterm":if("boolean"===f.subType&&(b.subType="boolean"),!b.subType)return;switch(b.subType){case"equals":case"boolean":if(void 0===b.value)return;c.term={},c.term[d]=b.value;break;case"notEquals":if(void 0===b.value)return;c.not={filter:{term:{}}},c.not.filter.term[d]=b.value;break;case"exists":c.exists={field:d};break;case"notExists":c.missing={field:d};break;default:throw new Error("unexpected subtype "+b.subType)}break;case"number":c.range={},c.range[d]={},c.range[d][b.subType]=b.value;break;case"date":if("exists"===b.subType)c.exists={field:d};else{if("notExists"!==b.subType)throw new Error("unexpected subtype");c.missing={field:d}}break;case"multi":c.terms={},c.terms[d]=b.value;break;default:throw new Error("unexpected type")}return c}}function f(b){var c={group:{type:"group",subType:"",rules:[]},item:{field:"",subType:"",value:""},number:{field:"",subType:"",value:null}};return a.copy(c[b])}a.module("angular-elastic-builder").factory("elasticQueryService",[function(){return{toFilters:b,toQuery:c}}])}(window.angular),function(a){a.module("angular-elastic-builder").run(["$templateCache",function(a){a.put("angular-elastic-builder/BuilderDirective.html",'<!-- <div class="elastic-builder">\n  <div class="filter-panels">\n    <div class="list-group form-inline">\n      <div\n        data-ng-repeat="filter in filters"\n        data-elastic-builder-chooser="filter"\n        data-elastic-fields="data.fields"\n        data-on-remove="removeChild($index)"\n        data-depth="0"></div>\n      <div class="list-group-item actions">\n        <a class="btn btn-xs btn-primary" title="Add Rule" data-ng-click="addRule()">\n          <i class="fa fa-plus"></i>\n        </a>\n        <a class="btn btn-xs btn-primary" title="Add Group" data-ng-click="addGroup()">\n          <i class="fa fa-list"></i>\n        </a>\n      </div>\n    </div>\n  </div>\n</div> -->\n\n<!-- <div class="elastic-builder">\n  <div class="filter-panels"> -->\n    <div class="list-group form-inline list-group-item-custom" ng-switch="data.type">\n      <div\n        data-ng-repeat="filter in filters"\n        data-elastic-builder-chooser="filter"\n        data-elastic-fields="data.fields"\n        data-on-remove="removeChild($index)"\n        data-depth="0">\n      </div>\n      <div class="list-group-item actions list-group-item-custom" ng-switch-when="condition">\n        <a href="#" class="btn green btn-sm" data-ng-click="addGroup()">\n				  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_GROUP\' | translate }}\n				</a>\n      </div>\n      <div class="list-group-item actions list-group-item-custom" ng-switch-when="action">\n        <a href="#" class="btn green btn-sm" data-ng-click="addRule()">\n				  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_ACTION\' | translate }}\n				</a>\n      </div>\n      <div class="list-group-item actions list-group-item-custom" ng-switch-default>\n        <a href="#" class="btn green btn-sm" data-ng-click="addRule()">\n				  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_CONDITION\' | translate }}\n				</a>\n        <a href="#" class="btn green btn-sm" data-ng-click="addGroup()">\n				  <i class="icon-plus"></i> {{ \'APPLICATION_ADD_GROUP\' | translate }}\n				</a>\n      </div>\n    </div>\n  <!-- </div>\n</div> -->\n'),a.put("angular-elastic-builder/ChooserDirective.html",'<!-- <div\n  class="list-group-item elastic-builder-chooser"\n  data-ng-class="getGroupClassName()">\n\n  <div data-ng-if="item.type === \'group\'"\n    data-elastic-builder-group="item"\n    data-depth="{{ depth }}"\n    data-elastic-fields="elasticFields"\n    data-on-remove="onRemove()"></div>\n\n  <div data-ng-if="item.type !== \'group\'"\n    data-elastic-builder-rule="item"\n    data-elastic-fields="elasticFields"\n    data-on-remove="onRemove()"></div>\n\n</div> -->\n\n\n<div class="list-group-item elastic-builder-chooser list-group-item-custom" data-ng-class="getGroupClassName()">\n  <div data-ng-if="item.type === \'group\'"\n    data-elastic-builder-group="item"\n    data-depth="{{ depth }}"\n    data-elastic-fields="elasticFields"\n    data-on-remove="onRemove()"></div>\n  <div data-ng-if="item.type !== \'group\'"\n    data-elastic-builder-rule="item"\n    data-elastic-fields="elasticFields"\n    data-on-remove="onRemove()"></div>\n</div>\n'),a.put("angular-elastic-builder/GroupDirective.html",'<!-- <div class="elastic-builder-group">\n  <h5>If\n    <select data-ng-model="group.subType" class="form-control">\n      <option value="and">all</option>\n      <option value="or">any</option>\n    </select>\n    of these conditions are met\n  </h5>\n  <div\n    data-ng-repeat="rule in group.rules"\n    data-elastic-builder-chooser="rule"\n    data-elastic-fields="elasticFields"\n    data-depth="{{ +depth + 1 }}"\n    data-on-remove="removeChild($index)"></div>\n\n  <div class="list-group-item actions" data-ng-class="getGroupClassName()">\n    <a class="btn btn-xs btn-primary" title="Add Sub-Rule" data-ng-click="addRule()">\n      <i class="fa fa-plus"></i>\n    </a>\n    <a class="btn btn-xs btn-primary" title="Add Sub-Group" data-ng-click="addGroup()">\n      <i class="fa fa-list"></i>\n    </a>\n  </div>\n\n  <a class="btn btn-xs btn-danger remover" data-ng-click="onRemove()">\n    <i class="fa fa-minus"></i>\n  </a>\n</div> -->\n\n\n<!-- BEGIN Portlet PORTLET-->\n<div class="portlet light">\n  <div class="portlet-title">\n    <div class="caption" data-ng-class="{\'font-blue-hoki\': data.type === \'condition\', \'font-red-flamingo\': data.type === \'action\'}">\n      <!-- <i class="icon-people font-green-sharp"></i> -->\n      <h5><span class="caption-subject">{{ \'APPLICATION_IF\' | translate }}</span>\n        <select data-ng-model="group.subType" class="form-control">\n          <option value="and"><strong>{{ \'APPLICATION_ALL\' | translate | lowercase }}</strong></option>\n          <option value="or"><strong>{{ \'APPLICATION_ANY\' | translate | lowercase }}</strong></option>\n        </select>\n        <span class="caption-subject">{{group.subType == \'and\' ? \'MESSAGE_CODITIONS_MET_ALL\' : \'MESSAGE_CODITIONS_MET_ANY\' | translate}}</span>\n      </h5>\n    </div>\n  </div>\n  <div class="portlet-body">\n    <div class="elastic-builder-group">\n      <div\n        data-ng-repeat="rule in group.rules"\n        data-elastic-builder-chooser="rule"\n        data-elastic-fields="elasticFields"\n        data-depth="{{ +depth + 1 }}"\n        data-on-remove="removeChild($index)"></div>\n\n      <div class="list-group-item actions list-group-item-custom" data-ng-class="getGroupClassName()">\n        <a href="#" class="btn green btn-sm" data-ng-click="addRule()">\n          <i class="icon-plus"></i> {{ \'APPLICATION_ADD_CONDITION\' | translate }}\n        </a>\n        <a class="btn red btn-sm remover" data-ng-click="onRemove()">\n          <i class="icon-trash"></i> {{ \'APPLICATION_REMOVE_GROUP\' | translate }}\n        </a>\n      </div>\n    </div>\n  </div>\n</div>\n<!-- END Portlet PORTLET-->\n'),a.put("angular-elastic-builder/RuleDirective.html",'<!-- <div class="elastic-builder-rule">\n  <select class="form-control" data-ng-model="rule.field" data-ng-options="key as key for (key, value) in elasticFields"></select>\n\n  <span data-elastic-type="getType()" data-rule="rule" data-guide="elasticFields[rule.field]"></span>\n\n  <a class="btn btn-xs btn-danger remover" data-ng-click="onRemove()">\n    <i class="fa fa-minus"></i>\n  </a>\n\n</div> -->\n<!-- <div class="elastic-builder-rule"> -->\n  <!-- <select class="form-control" data-ng-model="rule.field" data-ng-options="key as key for (key, value) in elasticFields"></select> -->\n  {{elasticFields[rule.field].action.label | translate}}\n  <select class="form-control" data-ng-model="rule.field" >\n  <option ng-repeat="option in elasticFields" value="{{option.value}}">{{ option.label | translate }}</option>\n  </select>\n  <!-- <ui-select class="form-control" data-ng-model="rule.field" theme="bootstrap">\n    <ui-select-match placeholder="{{\'APPLICATION_CONDITION\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n    <ui-select-choices repeat="value.value as key for (key, value) in elasticFields | filter: $select.search">\n      {{$translate.instant(key.name)}}\n    </ui-select-choices>\n  </ui-select> -->\n\n  <span data-elastic-type="getType()" data-rule="rule" data-guide="elasticFields[rule.field]"></span>\n\n  <!-- <a class="btn btn-xs btn-danger remover" data-ng-click="onRemove()">\n    <i class="fa fa-minus"></i>\n  </a> -->\n\n  <a class="btn remover" data-ng-click="onRemove()">\n    <i class="icon-trash"></i>\n  </a>\n\n<!-- </div> -->\n'),a.put("angular-elastic-builder/types/Boolean.html",'<span class="boolean-rule">\n  Equals\n\n  <!-- This is a weird hack to make sure these are numbers -->\n  <select\n    data-ng-model="rule.value"\n    class="form-control"\n    data-ng-options="booleans.indexOf(choice) as choice for choice in booleansOrder">\n  </select>\n</span>\n'),a.put("angular-elastic-builder/types/Date.html",'<span class="date-rule">\n  <select data-ng-model="rule.subType" class="form-control">\n\n    <optgroup label="Generic">\n      <option value="exists">Exists</option>\n      <option value="notExists">! Exists</option>\n    </optgroup>\n  </select>\n\n</span>\n'),a.put("angular-elastic-builder/types/Multi.html",'<!-- <span class="multi-rule">\n  <span data-ng-repeat="choice in guide.choices">\n    <label class="checkbox">\n      <input type="checkbox" data-ng-model="rule.values[choice]">\n      {{ choice }}\n    </label>\n  </span>\n</span> -->\n\n<span class="multi-rule">\n  {{guide.action.midterm | translate}}\n  <!-- Range Fields -->\n  <!-- <select data-ng-model="rule.values" class="form-control"> -->\n  <select data-ng-model="rule.value" class="form-control">\n    <!-- <optgroup label="Numeral"> -->\n      <option data-ng-repeat="(key, value) in guide.choices" value="{{value}}">{{key}}</option>\n    <!-- </optgroup> -->\n\n    <!-- <optgroup label="Generic">\n      <option value="exists">Exists</option>\n      <option value="notExists">! Exists</option>\n    </optgroup> -->\n  </select>\n\n  <!-- <input data-ng-if="inputNeeded()"\n    class="form-control"\n    data-ng-model="rule.value"\n    type="number"\n    min="{{ guide.minimum }}"\n    max="{{ guide.maximum }}"> -->\n</span>\n'),a.put("angular-elastic-builder/types/Multiterm.html",'<span class="elastic-multiterm">\n  <select data-ng-model="rule.subType" class="form-control">\n      <option value="equals">{{ \'APPLICATION_EQUALS_TO\' | translate }}</option>\n      <option value="notEquals">{{ \'APPLICATION_NOT_EQUALS_TO\' | translate }}</option>\n  </select>\n  <select data-ng-model="rule.value" class="form-control">\n      <option data-ng-repeat="(key, value) in guide.choices" value="{{value}}">{{value | capitalize}}</option>\n  </select>\n</span>\n'),a.put("angular-elastic-builder/types/Number.html",'<span class="number-rule">\n  <select data-ng-model="rule.subType" class="form-control">\n    <!-- <optgroup label="Numeral"> -->\n      <option value="equals">=</option>\n      <option value="gt">&gt;</option>\n      <option value="gte">&ge;</option>\n      <option value="lt">&lt;</option>\n      <option value="lte">&le;</option>\n    <!-- </optgroup> -->\n\n    <!-- <optgroup label="Generic"> -->\n      <!-- <option value="exists">Exists</option>\n      <option value="notExists">! Exists</option> -->\n    <!-- </optgroup> -->\n  </select>\n\n  <!-- Range Fields -->\n  <input data-ng-if="inputNeeded()"\n    class="form-control"\n    data-ng-model="rule.value"\n    type="number"\n    min="{{ guide.minimum }}"\n    max="{{ guide.maximum }}">\n\n    <!-- <span class="help-block">{{rule.help}}</span> -->\n\n</span>\n'),a.put("angular-elastic-builder/types/Term.html",'<!-- <span class="elastic-term">\n  <select data-ng-model="rule.subType" class="form-control"> -->\n    <!-- Term Options -->\n    <!-- <optgroup label="Text">\n      <option value="equals">Equals</option>\n      <option value="notEquals">! Equals</option>\n    </optgroup> -->\n\n    <!-- Generic Options -->\n    <!-- <optgroup label="Generic">\n      <option value="exists">Exists</option>\n      <option value="notExists">! Exists</option>\n    </optgroup>\n\n  </select>\n  <input\n    data-ng-if="inputNeeded()"\n    class="form-control"\n    data-ng-model="rule.value"\n    type="text">\n</span> -->\n\n\n<span class="elastic-term">\n  <select data-ng-model="rule.subType" class="form-control">\n    <!-- Term Options -->\n    <!-- <optgroup label="Text"> -->\n      <option value="equals">{{ \'APPLICATION_EQUALS_TO\' | translate }}</option>\n      <option value="notEquals">{{ \'APPLICATION_NOT_EQUALS_TO\' | translate }}</option>\n    <!-- </optgroup> -->\n\n    <!-- Generic Options -->\n    <!-- <optgroup label="Generic">\n      <option value="exists">Exists</option>\n      <option value="notExists">! Exists</option>\n    </optgroup> -->\n\n  </select>\n  <input\n    data-ng-if="inputNeeded()"\n    class="form-control input-medium"\n    data-ng-model="rule.value"\n    type="text">\n</span>\n')}])}(window.angular);var Metronic=function(){var a,b=!1,c=!1,d=!1,e=!1,f=[],g="assets/",h="img/",i="plugins/",j="css/",k={blue:"#89C4F4",red:"#F3565D",green:"#1bbc9b",purple:"#9b59b6",grey:"#95a5a6",yellow:"#F8CB00"},l=function(){"rtl"===$("body").css("direction")&&(b=!0),c=!!navigator.userAgent.match(/MSIE 8.0/),d=!!navigator.userAgent.match(/MSIE 9.0/),e=!!navigator.userAgent.match(/MSIE 10.0/),e&&$("html").addClass("ie10"),(e||d||c)&&$("html").addClass("ie")},m=function(){for(var a=0;a<f.length;a++){var b=f[a];b.call()}},n=function(){var a;if(c){var b;$(window).resize(function(){b!=document.documentElement.clientHeight&&(a&&clearTimeout(a),a=setTimeout(function(){m()},50),b=document.documentElement.clientHeight)})}else $(window).resize(function(){a&&clearTimeout(a),a=setTimeout(function(){m()},50)})},o=function(){$("body").on("click",".portlet > .portlet-title > .tools > a.remove",function(a){a.preventDefault();var b=$(this).closest(".portlet");$("body").hasClass("page-portlet-fullscreen")&&$("body").removeClass("page-portlet-fullscreen"),b.find(".portlet-title .fullscreen").tooltip("destroy"),b.find(".portlet-title > .tools > .reload").tooltip("destroy"),b.find(".portlet-title > .tools > .remove").tooltip("destroy"),b.find(".portlet-title > .tools > .config").tooltip("destroy"),b.find(".portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip("destroy"),b.remove()}),$("body").on("click",".portlet > .portlet-title .fullscreen",function(a){
+a.preventDefault();var b=$(this).closest(".portlet");if(b.hasClass("portlet-fullscreen"))$(this).removeClass("on"),b.removeClass("portlet-fullscreen"),$("body").removeClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height","auto");else{var c=Metronic.getViewPort().height-b.children(".portlet-title").outerHeight()-parseInt(b.children(".portlet-body").css("padding-top"))-parseInt(b.children(".portlet-body").css("padding-bottom"));$(this).addClass("on"),b.addClass("portlet-fullscreen"),$("body").addClass("page-portlet-fullscreen"),b.children(".portlet-body").css("height",c)}}),$("body").on("click",".portlet > .portlet-title > .tools > a.reload",function(a){a.preventDefault();var b=$(this).closest(".portlet").children(".portlet-body"),c=$(this).attr("data-url"),d=$(this).attr("data-error-display");c?(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),$.ajax({type:"GET",cache:!1,url:c,dataType:"html",success:function(a){Metronic.unblockUI(b),b.html(a)},error:function(a,c,e){Metronic.unblockUI(b);var f="Error on reloading the content. Please check your connection and try again.";"toastr"==d&&toastr?toastr.error(f):"notific8"==d&&$.notific8?($.notific8("zindex",11500),$.notific8(f,{theme:"ruby",life:3e3})):alert(f)}})):(Metronic.blockUI({target:b,animate:!0,overlayColor:"none"}),window.setTimeout(function(){Metronic.unblockUI(b)},1e3))}),$('.portlet .portlet-title a.reload[data-load="true"]').click(),$("body").on("click",".portlet > .portlet-title > .tools > .collapse, .portlet .portlet-title > .tools > .expand",function(a){a.preventDefault()})},p=function(){if($().uniform){var a=$("input[type=checkbox]:not(.toggle, .make-switch, .icheck), input[type=radio]:not(.toggle, .star, .make-switch, .icheck)");a.size()>0&&a.each(function(){0===$(this).parents(".checker").size()&&$(this).show()})}},q=function(){$().iCheck&&$(".icheck").each(function(){var a=$(this).attr("data-checkbox")?$(this).attr("data-checkbox"):"icheckbox_minimal-grey",b=$(this).attr("data-radio")?$(this).attr("data-radio"):"iradio_minimal-grey";a.indexOf("_line")>-1||b.indexOf("_line")>-1?$(this).iCheck({checkboxClass:a,radioClass:b,insert:'<div class="icheck_line-icon"></div>'+$(this).attr("data-label")}):$(this).iCheck({checkboxClass:a,radioClass:b})})},r=function(){$().bootstrapSwitch&&$(".make-switch").bootstrapSwitch()},s=function(){$().confirmation&&$("[data-toggle=confirmation]").confirmation({container:"body",btnOkClass:"btn-xs btn-success",btnCancelClass:"btn-xs btn-danger"})},t=function(){$("body").on("shown.bs.collapse",".accordion.scrollable",function(a){Metronic.scrollTo($(a.target))})},u=function(){if(location.hash){var a=location.hash.substr(1);$('a[href="#'+a+'"]').parents(".tab-pane:hidden").each(function(){var a=$(this).attr("id");$('a[href="#'+a+'"]').click()}),$('a[href="#'+a+'"]').click()}},v=function(){$("body").on("hide.bs.modal",function(){$(".modal:visible").size()>1&&$("html").hasClass("modal-open")===!1?$("html").addClass("modal-open"):$(".modal:visible").size()<=1&&$("html").removeClass("modal-open")}),$("body").on("show.bs.modal",".modal",function(){$(this).hasClass("modal-scroll")&&$("body").addClass("modal-open-noscroll")}),$("body").on("hide.bs.modal",".modal",function(){$("body").removeClass("modal-open-noscroll")}),$("body").on("hidden.bs.modal",".modal:not(.modal-cached)",function(){$(this).removeData("bs.modal")})},w=function(){$(".tooltips").tooltip(),$(".portlet > .portlet-title .fullscreen").tooltip({container:"body",title:"Fullscreen"}),$(".portlet > .portlet-title > .tools > .reload").tooltip({container:"body",title:"Reload"}),$(".portlet > .portlet-title > .tools > .remove").tooltip({container:"body",title:"Remove"}),$(".portlet > .portlet-title > .tools > .config").tooltip({container:"body",title:"Settings"}),$(".portlet > .portlet-title > .tools > .collapse, .portlet > .portlet-title > .tools > .expand").tooltip({container:"body",title:"Collapse/Expand"})},x=function(){$("body").on("click",".dropdown-menu.hold-on-click",function(a){a.stopPropagation()})},y=function(){$("body").on("click",'[data-close="alert"]',function(a){$(this).parent(".alert").hide(),$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-close="note"]',function(a){$(this).closest(".note").hide(),a.preventDefault()}),$("body").on("click",'[data-remove="note"]',function(a){$(this).closest(".note").remove(),a.preventDefault()})},z=function(){$('[data-hover="dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")})},A=function(){$(".popovers").popover(),$(document).on("click.bs.popover.data-api",function(b){a&&a.popover("hide")})},B=function(){Metronic.initSlimScroll(".scroller")},C=function(){jQuery.fancybox&&$(".fancybox-button").size()>0&&$(".fancybox-button").fancybox({groupAttr:"data-rel",prevEffect:"none",nextEffect:"none",closeBtn:!0,helpers:{title:{type:"inside"}}})},D=function(){(c||d)&&$("input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)").each(function(){var a=$(this);""===a.val()&&""!==a.attr("placeholder")&&a.addClass("placeholder").val(a.attr("placeholder")),a.focus(function(){a.val()==a.attr("placeholder")&&a.val("")}),a.blur(function(){(""===a.val()||a.val()==a.attr("placeholder"))&&a.val(a.attr("placeholder"))})})},E=function(){$().select2&&$(".select2me").select2({placeholder:"Select"})};return{init:function(){l(),n(),p(),q(),r(),B(),C(),E(),o(),y(),x(),u(),w(),A(),t(),v(),s(),D()},initAjax:function(){p(),q(),r(),z(),B(),E(),C(),x(),w(),A(),t(),s()},initComponents:function(){this.initAjax()},setLastPopedPopover:function(b){a=b},addResizeHandler:function(a){f.push(a)},runResizeHandlers:function(){m()},scrollTo:function(a,b){var c=a&&a.size()>0?a.offset().top:0;a&&($("body").hasClass("page-header-fixed")&&(c-=$(".page-header").height()),c+=b?b:-1*a.height()),$("html,body").animate({scrollTop:c},"slow")},initSlimScroll:function(a){$(a).each(function(){if(!$(this).attr("data-initialized")){var a;a=$(this).attr("data-height")?$(this).attr("data-height"):$(this).css("height"),$(this).slimScroll({allowPageScroll:!0,size:"7px",color:$(this).attr("data-handle-color")?$(this).attr("data-handle-color"):"#bbb",wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",railColor:$(this).attr("data-rail-color")?$(this).attr("data-rail-color"):"#eaeaea",position:b?"left":"right",height:a,alwaysVisible:"1"==$(this).attr("data-always-visible")?!0:!1,railVisible:"1"==$(this).attr("data-rail-visible")?!0:!1,disableFadeOut:!0}),$(this).attr("data-initialized","1")}})},destroySlimScroll:function(a){$(a).each(function(){if("1"===$(this).attr("data-initialized")){$(this).removeAttr("data-initialized"),$(this).removeAttr("style");var a={};$(this).attr("data-handle-color")&&(a["data-handle-color"]=$(this).attr("data-handle-color")),$(this).attr("data-wrapper-class")&&(a["data-wrapper-class"]=$(this).attr("data-wrapper-class")),$(this).attr("data-rail-color")&&(a["data-rail-color"]=$(this).attr("data-rail-color")),$(this).attr("data-always-visible")&&(a["data-always-visible"]=$(this).attr("data-always-visible")),$(this).attr("data-rail-visible")&&(a["data-rail-visible"]=$(this).attr("data-rail-visible")),$(this).slimScroll({wrapperClass:$(this).attr("data-wrapper-class")?$(this).attr("data-wrapper-class"):"slimScrollDiv",destroy:!0});var b=$(this);$.each(a,function(a,c){b.attr(a,c)})}})},scrollTop:function(){Metronic.scrollTo()},blockUI:function(a){a=$.extend(!0,{},a);var b="";if(b=a.animate?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><div class="block-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div></div>':a.iconOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""></div>':a.textOnly?'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>":'<div class="loading-message '+(a.boxed?"loading-message-boxed":"")+'"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif" align=""><span>&nbsp;&nbsp;'+(a.message?a.message:"LOADING...")+"</span></div>",a.target){var c=$(a.target);c.height()<=$(window).height()&&(a.cenrerY=!0),c.block({message:b,baseZ:a.zIndex?a.zIndex:1e3,centerY:void 0!==a.cenrerY?a.cenrerY:!1,css:{top:"10%",border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})}else $.blockUI({message:b,baseZ:a.zIndex?a.zIndex:1e3,css:{border:"0",padding:"0",backgroundColor:"none"},overlayCSS:{backgroundColor:a.overlayColor?a.overlayColor:"#555",opacity:a.boxed?.05:.1,cursor:"wait"}})},unblockUI:function(a){a?$(a).unblock({onUnblock:function(){$(a).css("position",""),$(a).css("zoom","")}}):$.unblockUI()},startPageLoading:function(a){a&&a.animate?($(".page-spinner-bar").remove(),$("body").append('<div class="page-spinner-bar"><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>')):($(".page-loading").remove(),$("body").append('<div class="page-loading"><img src="'+this.getGlobalImgPath()+'loading-spinner-blue.gif"/>&nbsp;&nbsp;<span>'+(a&&a.message?a.message:"Loading...")+"</span></div>"))},stopPageLoading:function(){$(".page-loading, .page-spinner-bar").remove()},alert:function(a){a=$.extend(!0,{container:"",place:"append",type:"success",message:"",close:!0,reset:!0,focus:!0,closeInSeconds:0,icon:""},a);var b=Metronic.getUniqueID("Metronic_alert"),c='<div id="'+b+'" class="Metronic-alerts alert alert-'+a.type+' fade in">'+(a.close?'<button type="button" class="close" data-dismiss="alert" aria-hidden="true"></button>':"")+(""!==a.icon?'<i class="fa-lg fa fa-'+a.icon+'"></i>  ':"")+a.message+"</div>";return a.reset&&$(".Metronic-alerts").remove(),a.container?"append"==a.place?$(a.container).append(c):$(a.container).prepend(c):$("body").hasClass("page-container-bg-solid")?$(".page-title").after(c):$(".page-bar").size()>0?$(".page-bar").after(c):$(".page-breadcrumb").after(c),a.focus&&Metronic.scrollTo($("#"+b)),a.closeInSeconds>0&&setTimeout(function(){$("#"+b).remove()},1e3*a.closeInSeconds),b},initUniform:function(a){a?$(a).each(function(){0===$(this).parents(".checker").size()&&($(this).show(),$(this).uniform())}):p()},updateUniform:function(a){$.uniform.update(a)},initFancybox:function(){C()},getActualVal:function(a){return a=$(a),a.val()===a.attr("placeholder")?"":a.val()},getURLParameter:function(a){var b,c,d=window.location.search.substring(1),e=d.split("&");for(b=0;b<e.length;b++)if(c=e[b].split("="),c[0]==a)return unescape(c[1]);return null},isTouchDevice:function(){try{return document.createEvent("TouchEvent"),!0}catch(a){return!1}},getViewPort:function(){var a=window,b="inner";return"innerWidth"in window||(b="client",a=document.documentElement||document.body),{width:a[b+"Width"],height:a[b+"Height"]}},getUniqueID:function(a){return"prefix_"+Math.floor(Math.random()*(new Date).getTime())},isIE8:function(){return c},isIE9:function(){return d},isRTL:function(){return b},isAngularJsApp:function(){return"undefined"==typeof angular?!1:!0},getAssetsPath:function(){return g},setAssetsPath:function(a){g=a},setGlobalImgPath:function(a){h=a},getGlobalImgPath:function(){return g+h},setGlobalPluginsPath:function(a){i=a},getGlobalPluginsPath:function(){return g+i},getGlobalCssPath:function(){return g+j},getBrandColor:function(a){return k[a]?k[a]:""},getResponsiveBreakpoint:function(a){var b={xs:480,sm:768,md:900,lg:1200};return b[a]?b[a]:0}}}(),Layout=function(){var a="img/",b="css/",c=Metronic.getResponsiveBreakpoint("md"),d=function(){var a,b=$(".page-content"),d=$(".page-sidebar"),e=$("body");if(e.hasClass("page-footer-fixed")===!0&&e.hasClass("page-sidebar-fixed")===!1){var f=Metronic.getViewPort().height-$(".page-footer").outerHeight()-$(".page-header").outerHeight();b.height()<f&&b.attr("style","min-height:"+f+"px")}else{if(e.hasClass("page-sidebar-fixed"))a=g(),e.hasClass("page-footer-fixed")===!1&&(a-=$(".page-footer").outerHeight());else{var h=$(".page-header").outerHeight(),i=$(".page-footer").outerHeight();a=Metronic.getViewPort().width<c?Metronic.getViewPort().height-h-i:d.height()+20,a+h+i<=Metronic.getViewPort().height&&(a=Metronic.getViewPort().height-h-i)}b.attr("style","min-height:"+a+"px")}},e=function(a,b){var d=location.hash.toLowerCase(),e=$(".page-sidebar-menu");if("click"===a||"set"===a?b=$(b):"match"===a&&e.find("li > a").each(function(){var a=$(this).attr("href").toLowerCase();return a.length>1&&d.substr(1,a.length-1)==a.substr(1)?void(b=$(this)):void 0}),b&&0!=b.size()&&"javascript:;"!==b.attr("href").toLowerCase()&&"#"!==b.attr("href").toLowerCase()){parseInt(e.data("slide-speed")),e.data("keep-expanded");e.find("li.active").removeClass("active"),e.find("li > a > .selected").remove(),e.hasClass("page-sidebar-menu-hover-submenu")===!1?e.find("li.open").each(function(){0===$(this).children(".sub-menu").size()&&($(this).removeClass("open"),$(this).find("> a > .arrow.open").removeClass("open"))}):e.find("li.open").removeClass("open"),b.parents("li").each(function(){$(this).addClass("active"),$(this).find("> a > span.arrow").addClass("open"),1===$(this).parent("ul.page-sidebar-menu").size()&&$(this).find("> a").append('<span class="selected"></span>'),1===$(this).children("ul.sub-menu").size()&&$(this).addClass("open")}),"click"===a&&Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click()}},f=function(){jQuery(".page-sidebar").on("click","li > a",function(a){var b=$(this).next().hasClass("sub-menu");if(!(Metronic.getViewPort().width>=c&&1===$(this).parents(".page-sidebar-menu-hover-submenu").size())){if(b===!1)return void(Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click());if(!$(this).next().hasClass("sub-menu always-open")){var e=$(this).parent().parent(),f=$(this),g=$(".page-sidebar-menu"),h=jQuery(this).next(),i=g.data("auto-scroll"),j=parseInt(g.data("slide-speed")),k=g.data("keep-expanded");k!==!0&&(e.children("li.open").children("a").children(".arrow").removeClass("open"),e.children("li.open").children(".sub-menu:not(.always-open)").slideUp(j),e.children("li.open").removeClass("open"));var l=-200;h.is(":visible")?(jQuery(".arrow",jQuery(this)).removeClass("open"),jQuery(this).parent().removeClass("open"),h.slideUp(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})):b&&(jQuery(".arrow",jQuery(this)).addClass("open"),jQuery(this).parent().addClass("open"),h.slideDown(j,function(){i===!0&&$("body").hasClass("page-sidebar-closed")===!1&&($("body").hasClass("page-sidebar-fixed")?g.slimScroll({scrollTo:f.position().top}):Metronic.scrollTo(f,l)),d()})),a.preventDefault()}}}),jQuery(".page-sidebar").on("click"," li > a.ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=jQuery(".page-sidebar ul"),e=($(".page-content"),$(".page-content .page-content-body"));d.children("li.active").removeClass("active"),d.children("arrow.open").removeClass("open"),$(this).parents("li").each(function(){$(this).addClass("active"),$(this).children("a > span.arrow").addClass("open")}),$(this).parents("li").addClass("active"),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),Metronic.startPageLoading();var f=$(this);$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){0===f.parents("li.open").size()&&$(".page-sidebar-menu > li.open > a").click(),Metronic.stopPageLoading(),e.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){Metronic.stopPageLoading(),e.html("<h4>Could not load the requested content.</h4>")}})}),jQuery(".page-content").on("click",".ajaxify",function(a){a.preventDefault(),Metronic.scrollTop();var b=$(this).attr("href"),d=($(".page-content"),$(".page-content .page-content-body"));Metronic.startPageLoading(),Metronic.getViewPort().width<c&&$(".page-sidebar").hasClass("in")&&$(".page-header .responsive-toggler").click(),$.ajax({type:"GET",cache:!1,url:b,dataType:"html",success:function(a){Metronic.stopPageLoading(),d.html(a),Layout.fixContentHeight(),Metronic.initAjax()},error:function(a,b,c){d.html("<h4>Could not load the requested content.</h4>"),Metronic.stopPageLoading()}})}),i(),$(".page-sidebar").on("click",".sidebar-search .remove",function(a){a.preventDefault(),$(".sidebar-search").removeClass("open")}),$(".page-sidebar .sidebar-search").on("keypress","input.form-control",function(a){return 13==a.which?($(".sidebar-search").submit(),!1):void 0}),$(".sidebar-search .submit").on("click",function(a){a.preventDefault(),$("body").hasClass("page-sidebar-closed")&&$(".sidebar-search").hasClass("open")===!1?(1===$(".page-sidebar-fixed").size()&&$(".page-sidebar .sidebar-toggler").click(),$(".sidebar-search").addClass("open")):$(".sidebar-search").submit()}),0!==$(".sidebar-search").size()&&($(".sidebar-search .input-group").on("click",function(a){a.stopPropagation()}),$("body").on("click",function(){$(".sidebar-search").hasClass("open")&&$(".sidebar-search").removeClass("open")}))},g=function(){var a=Metronic.getViewPort().height-$(".page-header").outerHeight();return $("body").hasClass("page-footer-fixed")&&(a-=$(".page-footer").outerHeight()),a},h=function(){var a=$(".page-sidebar-menu");return Metronic.destroySlimScroll(a),0===$(".page-sidebar-fixed").size()?void d():void(Metronic.getViewPort().width>=c&&(a.attr("data-height",g()),Metronic.initSlimScroll(a),d()))},i=function(){var a=$("body");a.hasClass("page-sidebar-fixed")&&$(".page-sidebar").on("mouseenter",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").removeClass("page-sidebar-menu-closed")}).on("mouseleave",function(){a.hasClass("page-sidebar-closed")&&$(this).find(".page-sidebar-menu").addClass("page-sidebar-menu-closed")})},j=function(){var a=$("body");$.cookie&&"1"===$.cookie("sidebar_closed")&&Metronic.getViewPort().width>=c?($("body").addClass("page-sidebar-closed"),$(".page-sidebar-menu").addClass("page-sidebar-menu-closed")):$.cookie&&$.cookie("sidebar_closed","0"),$("body").on("click",".sidebar-toggler",function(b){var c=$(".page-sidebar"),d=$(".page-sidebar-menu");$(".sidebar-search",c).removeClass("open"),a.hasClass("page-sidebar-closed")?(a.removeClass("page-sidebar-closed"),d.removeClass("page-sidebar-menu-closed"),$.cookie&&$.cookie("sidebar_closed","0")):(a.addClass("page-sidebar-closed"),d.addClass("page-sidebar-menu-closed"),a.hasClass("page-sidebar-fixed")&&d.trigger("mouseleave"),$.cookie&&$.cookie("sidebar_closed","1")),$(window).trigger("resize")})},k=function(){$(".page-header").on("click",'.hor-menu a[data-toggle="tab"]',function(a){a.preventDefault();var b=$(".hor-menu .nav"),c=b.find("li.current");$("li.active",c).removeClass("active"),$(".selected",c).remove();var d=$(this).parents("li").last();d.addClass("current"),d.find("a:first").append('<span class="selected"></span>')}),$(".page-header").on("click",".search-form",function(a){$(this).addClass("open"),$(this).find(".form-control").focus(),$(".page-header .search-form .form-control").on("blur",function(a){$(this).closest(".search-form").removeClass("open"),$(this).unbind("blur")})}),$(".page-header").on("keypress",".hor-menu .search-form .form-control",function(a){return 13==a.which?($(this).closest(".search-form").submit(),!1):void 0}),$(".page-header").on("mousedown",".search-form.open .submit",function(a){a.preventDefault(),a.stopPropagation(),$(this).closest(".search-form").submit()}),$('[data-hover="megamenu-dropdown"]').not(".hover-initialized").each(function(){$(this).dropdownHover(),$(this).addClass("hover-initialized")}),$(document).on("click",".mega-menu-dropdown .dropdown-menu",function(a){a.stopPropagation()})},l=function(){$("body").on("shown.bs.tab",'a[data-toggle="tab"]',function(){d()})},m=function(){var a=300,b=500;navigator.userAgent.match(/iPhone|iPad|iPod/i)?$(window).bind("touchend touchcancel touchleave",function(c){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}):$(window).scroll(function(){$(this).scrollTop()>a?$(".scroll-to-top").fadeIn(b):$(".scroll-to-top").fadeOut(b)}),$(".scroll-to-top").click(function(a){return a.preventDefault(),$("html, body").animate({scrollTop:0},b),!1})},n=function(){var a,b=$(".full-height-content");if(a=Metronic.getViewPort().height-$(".page-header").outerHeight(!0)-$(".page-footer").outerHeight(!0)-$(".page-title").outerHeight(!0)-$(".page-bar").outerHeight(!0),b.hasClass("portlet")){var d=b.find(".portlet-body");if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(d.find(".full-height-content-body"));a=a-b.find(".portlet-title").outerHeight(!0)-parseInt(b.find(".portlet-body").css("padding-top"))-parseInt(b.find(".portlet-body").css("padding-bottom"))-2,b.hasClass("full-height-content-scrollable")?(a-=35,d.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(d.find(".full-height-content-body"))):d.css("min-height",a)}else{if(Metronic.getViewPort().width<c)return void Metronic.destroySlimScroll(b.find(".full-height-content-body"));b.hasClass("full-height-content-scrollable")?(a-=35,b.find(".full-height-content-body").css("height",a),Metronic.initSlimScroll(b.find(".full-height-content-body"))):b.css("min-height",a)}};return{initHeader:function(){k()},setSidebarMenuActiveLink:function(a,b){e(a,b)},initSidebar:function(){h(),f(),j(),Metronic.isAngularJsApp()&&e("match"),Metronic.addResizeHandler(h)},initContent:function(){n(),l(),Metronic.addResizeHandler(d),Metronic.addResizeHandler(n)},initFooter:function(){m()},init:function(){this.initHeader(),this.initSidebar(),this.initContent(),this.initFooter()},fixContentHeight:function(){d()},initFixedSidebarHoverEffect:function(){i()},initFixedSidebar:function(){h()},getLayoutImgPath:function(){return Metronic.getAssetsPath()+a},getLayoutCssPath:function(){return Metronic.getAssetsPath()+b}}}();angular.module("xCallyShuttleApp").run(["$templateCache",function(a){a.put("app/agent/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-people"></i>\n					<a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-people font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AGENTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="agents.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AGENT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/agents/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAgents([\'name\', \'fullname\', \'email\'])" csv-header="[\'Username\', \'Fullname\', \'Email\']" field-separator=";" filename="agents.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedAgents" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n													<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="name">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n						    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="agent in displayedAgents" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="agents.checked" checklist-value="agent.id"></td>\n								<td>{{agent.fullname}}</td>\n					      <td>{{agent.name}}</td>\n					      <td><a data-ng-href="mailto:{{agent.email}}">{{agent.email}}</a></td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/agents/view/{{agent.id}}/account">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(agent.fullname,agent.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedAgents.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No agents available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/agent/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin() || agent.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && agent.id === Auth.getCurrentUser().id}">\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane" data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="agent.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="agent.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="agent.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START INTERNAL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="agent.internal" required disabled/>\n								<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERNAL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin()" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											{{ \'APPLICATION_REMOVE\' | translate }}\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											{{ \'APPLICATION_CONFIRM\' | translate }}\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin() || agent.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && agent.id === Auth.getCurrentUser().id}" id="tab_1_3">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="agent.reNewPwd" nx-equal="agent.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/agent/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-people"></i>\n					<a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{agent.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- START SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{agent.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{agent.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.agents.view.account\')}">\n							<a data-ng-href="/agents/view/{{agent.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/agent/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-people"></i>\n				<a href="/agents/list">{{ \'APPLICATION_AGENTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/agents/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" ng-init="getFirstFreeInternal();">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/agents/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/agents/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n						<!-- START INTERNAL -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<div class="input-group">\n							<input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/agents/validate/internal"/>\n							<span class="input-group-addon">\n								<input type="checkbox" data-ng-model="item.internalEnabled">\n							</span>\n							</div>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERNAL -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n					<form name="forms.voice" novalidate>\n\n						<!-- START ACCOUNTCODE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_ACCOUNTCODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="accountcode" placeholder="{{\'APPLICATION_ACCOUNTCODE\' | translate}}" class="form-control" data-ng-model="item.accountcode" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ACCOUNTCODE -->\n\n						<!-- START TRANSPORT -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n							<ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n						    	{{transport}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n							</span>\n						</div>\n						<!-- END TRANSPORT -->\n\n						<!-- START HOST -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END HOST -->\n\n						<!-- START NAT -->\n						<!-- <div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_NAT\' | translate}}</label>\n							<ui-select multiple ng-model="item.nat" name="nat" theme="bootstrap" ng-disabled="disabled">\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$item}}</ui-select-match>\n								<ui-select-choices repeat="nat in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n									{{nat}}\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n							</span>\n						</div> -->\n\n						<!-- END NAT -->\n\n						<!-- START TYPE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$invalid}">\n							<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$select.selected}}</ui-select-match>\n								<ui-select-choices repeat="type in [\'friend\', \'user\', \'peer\'] | filter: $select.search">\n									<div ng-bind-html="type | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END TYPE -->\n\n						<!-- START CODEC -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n							<ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n						    	{{allow}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n							</span>\n						</div>\n						<!-- END CODEC -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bulb"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Automations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.AutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="AutomationByPage in AutomationsByPage | filter: $select.search">\n													<div ng-bind-html="AutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Automation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="Automation in displayedAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Automations.checked" checklist-value="Automation.id"></td>\n					      <td>{{Automation.name}}</td>\n								<td>{{Automation.description}}</td>\n								<td>{{Automation.channel | capitalize}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(Automation.id, Automation.status)",\n								    bs-switch\n								    ng-model="Automation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/automations/view/{{Automation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Automation.name, Automation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>No available automations</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.AutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ automation.description }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.automations.view.settings\')}">\n							<a href="/automations/view/{{automation.id}}/settings">\n							<i class="icon-bulb"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<!-- <pre>\n					{{conditionsData.query | json}}\n				</pre>\n				<pre>\n					{{actionsData.query | json}}\n				</pre> -->\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<div class="tab-pane" id="tab_1_2">\n					<div class="portlet light bordered">\n						<div class="portlet-title">\n							<div class="caption font-blue-hoki">\n								<i class="icon-tag font-blue-hoki"></i>\n								<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n							</div>\n						</div>\n						<div class="portlet-body">\n							<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[automation.channel]"></query-builder>\n						</div>\n					</div>\n					<div class="portlet light bordered">\n						<div class="portlet-title">\n							<div class="caption font-blue-hoki">\n								<i class="icon-tag font-blue-hoki"></i>\n								<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n							</div>\n						</div>\n						<div class="portlet-body">\n							<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[automation.channel]"></query-builder>\n						</div>\n					</div>\n\n						<input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateAutomation()"/>\n					</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/automation/wizard/wizard.html",'<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<!-- <pre>\n						{{item | json}}\n					</pre>\n					<pre>\n						{{conditionsData.query | json}}\n					</pre>\n					<pre>\n						{{actionsData.query | json}}\n					</pre> -->\n					<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n						<form name="forms.general" data-ng-submit="submit()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.name.$touched && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.general.name.$touched && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n					</wz-step>\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(conditionsData.query.length && actionsData.query.length)">\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<div class="form-group"  >\n									<label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n										<ui-select-choices repeat="channel in $automations.channels | filter: $select.search">\n											<div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$automations.operators" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/chat/preview/preview.html",'<style>\n  .xc_footer\n  {\n  	text-align: center;\n  	padding-bottom: 5px;\n  }\n\n  .xc_powered\n  {\n  	color: grey;\n    font: 10px/16px "Lucida Grande","Lucida Sans Unicode",Arial,Verdana,sans-serif;\n  	padding-bottom: 5px;\n  }\n\n  .xc_chat_container\n  {\n  	//width:379px;\n  	//position:fixed;\n  	//bottom:0;\n  	//right:50px;\n  	z-index:9999;\n  	background-color:transparent;\n  }\n\n  .xc_chat_container *\n  {\n  	font-family:Arial,Helvetica,sans-serif;\n  	font-size:13px;\n  	margin:0;\n  	padding:0;\n  }\n\n  .xc_chat_container p\n  {\n  	margin:5px 0;\n  }\n\n  .xc_signup_wrapper\n  {\n  	max-height:375px;\n  }\n\n  .xc_conversation_container\n  {\n  	max-height:375px;\n  	list-style:none;\n  	overflow:auto;\n  	margin:0;\n  	padding:20px 10px;\n  }\n\n  .xc_conversation_container a\n  {\n  	color:#036;\n  }\n\n  .xc_conversation_container a.xc_btn_style\n  {\n  	color:#fff;\n  }\n\n  div.xc_chat_head\n  {\n  	color:#fff;\n  	background:{{chatWebsite.color}};\n  	//border-radius: 20px 20px 0px 0px !important;\n  	height:52px;\n  	line-height:55px;\n  	cursor:pointer;\n  }\n\n  div.xc_chat_head.rounded\n  {\n  	border-radius: 20px 20px 0px 0px !important;\n  }\n\n  div.xc_chat_head.squared\n  {\n  	//border-radius: 20px 20px 0px 0px !important;\n  }\n\n  .xc_chat_head-title\n  {\n  	margin:5px 0 0 15px;\n  	color: #fff;\n  }\n\n  .xc_header_icon\n  {\n  	display:block;\n  	background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  	width:21px;\n  	height:16px;\n  	float:right;\n  	margin:20px 20px 0 0;\n  }\n\n  .xc_header_icon span.xc_notification_badge span\n  {\n  	display:block;\n  	height:16px;\n  	width:15px;\n  	text-align:center;\n  	font-size:9px;\n  	color:#555;\n  	position:relative;\n  	top:-20px;\n  	left:4px;\n  	margin:0;\n  	padding:0;\n  }\n\n  .xc_sub-head-spacer\n  {\n  	padding:1px;\n  }\n\n  .xc_conversation\n  {\n  	display:none;\n  	margin:0 12px 0 11px;\n  }\n\n  .xc_chat_toggle_container\n  {\n  	/*background:mediumslateblue center -52px;*/\n  	background: white;\n  	border-style: solid;\n    border-width: 1px;\n  	border-color: {{chatWebsite.color}};\n  	//display:none;\n  }\n\n  .xc_signup_wrapper,.xc_notifications_wrapper,.xc_enquiry_wrapper\n  {\n  	//display:none;\n    display:block;\n  	overflow:auto;\n  	line-height:1;\n  	padding:25px;\n  }\n\n  .xc_exit_chat_container\n  {\n  	text-align:right;\n  	width:95%;\n  	margin:0 auto;\n  	padding:5px 1px 0 0;\n  }\n\n  .xc_exit_chat_container span,.xc_exit_chat_container a\n  {\n  	font-size:80%;\n  	color:#666;\n  	text-decoration:none;\n  }\n\n  .xc_exit_chat_container a:hover\n  {\n  	color:#333;\n  }\n\n  a.xc_btn_exit_chat_confirm:hover\n  {\n  	color:red;\n  }\n\n  a.xc_btn_exit_chat_cancel:hover\n  {\n  	color:#0c0;\n  }\n\n  form.xc_form_reply\n  {\n  	position:relative;\n  }\n\n  .xc_form_reply\n  {\n  	/*background-color:#e3e3e3;*/\n  	text-align:center;\n  	/*border-top:1px solid #d3d3d3;*/\n  }\n\n  .xc_input_message\n  {\n  	height:100px;\n  	margin:10px auto 5px;\n  }\n\n  .xc_input_enquiry_message\n  {\n  	height:100px;\n  }\n\n  .xc_form_signup,.xc_form_enquiry\n  {\n  	text-align:center;\n  }\n\n  .xc_chat_container textarea,.xc_chat_container input[type=text]\n  {\n  	width:95%;\n  	min-width:95%;\n  	max-width:95%;\n  	-webkit-box-sizing:border-box;\n  	-moz-box-sizing:border-box;\n  	box-sizing:border-box;\n  	background-color:#fff;\n  	border:1px solid #ccc;\n  	-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);\n  	-webkit-transition:border linear .2s, box-shadow linear .2s;\n  	-moz-transition:border linear .2s, box-shadow linear .2s;\n  	-o-transition:border linear .2s, box-shadow linear .2s;\n  	transition:border linear .2s, box-shadow linear .2s;\n  	display:inline-block;\n  	font-size:14px;\n  	line-height:20px;\n  	color:#555;\n  	-webkit-border-radius:4px;\n  	-moz-border-radius:4px;\n  	border-radius:4px;\n  	vertical-align:middle;\n  	margin:3px 0;\n  	padding:4px 6px;\n  	resize: none;\n  }\n\n  .xc_chat_container textarea:focus,.xc_chat_container input[type=text]:focus\n  {\n  	outline: {{chatWebsite.color_focus}} auto 5px;\n  }\n\n  .xc_chat_container input[type=text]\n  {\n    	height: 30px;\n  }\n\n  .xc_message_sending textarea, .xc_enquiry_sending textarea\n  {\n    	background: #fff url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/loading.gif) 98% 5px no-repeat;\n  }\n\n  .xc_chatrow\n  {\n  	display:block;\n  	border-top:1px dashed #e3e3e3;\n  	margin:5px 0;\n    	clear: both;\n  }\n\n  .xc_chatrow p\n  {\n  	color:#444;\n  	word-wrap:break-word;\n  }\n\n  .xc_time\n  {\n  	float:right;\n  	font-size:80%;\n  	color:#ccc;\n  	padding-left:12px;\n  	margin:3px;\n  }\n\n  .xc_submission_pending\n  {\n  	background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_clock.png) left center no-repeat;\n  }\n\n  .xc_submission_confirmed\n  {\n  	background:transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_tick.png) left center no-repeat;\n  }\n\n  .xc_fullname\n  {\n  	font-weight:700;\n  }\n\n  .xc_fullname:after\n  {\n  	content:":";\n  }\n\n  .xc_avatar\n  {\n    	float: left;\n    	margin: 0 5px 5px 0;\n    	display: inline-block;\n    	width: 40px;\n    	height: 40px;\n    	border-radius: 5px;\n    	-moz-border-radius: 5px;\n    	-webkit-border-radius: 5px;\n  }\n\n  .xc_smilie\n  {\n  	background-repeat:no-repeat;\n  	display:inline-block;\n  	width:18px;\n  	height:18px;\n  	text-indent:-9999px;\n  	white-space:nowrap;\n  }\n\n  .xc_btn_load_more\n  {\n  	width:100%!important;\n  }\n\n  .xc_notifications_wrapper\n  {\n  	text-shadow:0 1px 0 rgba(255,255,255,0.5);\n  }\n\n  .xc_notification_success\n  {\n  	color:#468847;\n  }\n\n  .xc_notification_error\n  {\n  	color:#b94a48;\n  }\n\n  .xc_errorlist\n  {\n  	margin:0 0 0 25px;\n  	padding:0;\n  }\n\n  i.xc_btn_notifications_close\n  {\n  	float:right;\n  	font-weight:700;\n  	font-size:20px;\n  	color:#ccc;\n  	cursor:pointer;\n  	margin:-15px 0 0;\n  	padding:0;\n  }\n\n  .xc_btn_style\n  {\n  	width:95%;\n  	text-align:center;\n  	line-height:1.2;\n  	font-size:90%;\n  	-moz-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	-webkit-box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	box-shadow:inset 0 1px 0 0 {{chatWebsite.color_button}};\n  	background:0;\n  	background-color:{{chatWebsite.color_button}};\n  	-moz-border-radius:4px;\n  	-webkit-border-radius:4px;\n  	border-radius:4px;\n  	border:1px solid {{chatWebsite.color_button}};\n  	display:inline-block;\n  	color:#fff;\n  	font-weight:700;\n  	text-decoration:none;\n  	text-shadow:1px 1px 0 #000c17;\n  	margin:0 auto 5px;\n  	padding:2px 0;\n  }\n\n  .xc_btn_style:hover\n  {\n  	background:0;\n  	background-color:{{chatWebsite.color_button}};\n      color: #fff;\n    	text-decoration: none;\n  }\n\n  .xc_btn_style:active\n  {\n  	position:relative;\n  	top:1px;\n  }\n\n  .xc_composing_container\n  {\n    	display: none;\n    width: 95%;\n    margin: 0 auto;\n    background: transparent url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/bullet_pencil.png) 6px center no-repeat;\n    padding-left: 19px;\n    font-style: italic;\n  }\n\n  @media only screen and (max-height: 620px) {\n  	.xc_conversation_container\n  	{\n  		max-height:300px!important;\n  	}\n  }\n\n  @media only screen and (max-height: 545px) {\n  	.xc_conversation_container\n  	{\n  		max-height:200px!important;\n  	}\n  }\n\n  @media only screen and (max-height: 445px) {\n  	.xc_conversation_container\n  	{\n  		max-height:150px!important;\n  	}\n  }\n\n  @media only screen and (max-width: 480px) {\n  	.xc_chat_container\n  	{\n  		width:95%!important;\n  		right:auto!important;\n  		-webkit-border-top-left-radius:15px;\n  		-webkit-border-top-right-radius:15px;\n  		-moz-border-radius-topleft:15px;\n  		-moz-border-radius-topright:15px;\n  		border-top-left-radius:15px;\n  		border-top-right-radius:15px;\n  		box-shadow:0 0 5px rgba(0,0,0,.5);\n  		-webkit-box-shadow:0 0 5px rgba(0,0,0,.5);\n  		-moz-box-shadow:0 0 5px rgba(0,0,0,.5);\n  	}\n\n  	div.xc_chat_head\n  	{\n  		background-color:#036;\n  		background-image:none;\n  		line-height:25px;\n  		height:auto;\n  		-webkit-border-top-left-radius:15px;\n  		-webkit-border-top-right-radius:15px;\n  		-moz-border-radius-topleft:15px;\n  		-moz-border-radius-topright:15px;\n  		border-top-left-radius:15px;\n  		border-top-right-radius:15px;\n  		padding:10px;\n  	}\n\n  	.xc_chat_toggle_container\n  	{\n  		background-color:#fff;\n  		background-image:none;\n  		border-color:#036;\n  		border-style:solid;\n  		border-width:0 1px;\n  	}\n\n  	.xc_header_icon\n  	{\n  		background-image:url({{chatWebsite.remote}}/api/xchatty/assets?resource=images/icon_visitorchat.png);\n  		margin:0;\n  	}\n\n  	.xc_header_icon span.xc_notification_badge span\n  	{\n  		top:-5px;\n  		left:5px;\n  	}\n\n  	.xc_notification_success\n  	{\n  		background-color:#dff0d8;\n  		border:1px solid #d6e9c6;\n  	}\n\n  	.xc_conversation_container\n  	{\n  		max-height:375px;\n  		border-color:#036;\n  	}\n\n  	.xc_notification_error\n  	{\n  		background-color:#f2dede;\n  		border:1px solid #eed3d7;\n  	}\n\n  	.xc_sub-head-spacer\n  	{\n  		display:none;\n  		padding:0;\n  	}\n\n  	.xc_chat_head-title,.xc_conversation\n  	{\n  		margin:0;\n  	}\n  }\n</style>\n<div class="xc_chat_container">\n    <div class="xc_chat_head {{chatWebsite.header_shape}}">\n      <i class="xc_header_icon">\n        <span class="xc_notification_badge">\n          <span class="xc_notification_badge_number"></span>\n        </span>\n      </i>\n      <span class="xc_chat_head-title">{{statePreview.state == \'online\' ? chatWebsite.header_online : chatWebsite.header_offline}}</span>\n    </div>\n    <div class="xc_chat_toggle_container">\n        <div class="xc_sub-head-spacer"></div>\n        <div class="xc_notifications_wrapper">\n            <!--<i class="xc_btn_notifications_close">&times;</i>-->\n            <ul class="xc_errorlist"></ul>\n        </div>\n        <div class="xc_enquiry_wrapper" data-ng-show=\'statePreview.state == "offline"\'>\n            <form class="xc_form_enquiry" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.offline_message\'></p>\n                <input maxlength="45" type="text" name="data[Enquiry][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_enquiry_fullname" />\n                <input maxlength="85" type="text" name="data[Enquiry][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_enquiry_email" />\n                <textarea maxlength="1500" placeholder="{{chatWebsite.enquiry_message_placeholder}}" name="data[Enquiry][message]" class="xc_input_enquiry_message"></textarea>\n                <a href="#" class="xc_btn_enquiry xc_btn_style">{{chatWebsite.enquiry_button}}</a></form>\n        </div>\n        <div class="xc_signup_wrapper" data-ng-show=\'statePreview.state == "online"\'>\n            <form class="xc_form_signup" accept-charset="UTF-8">\n                <p ng-bind-html=\'chatWebsite.online_message\'></p>\n                <input maxlength="45" type="text" name="data[Discussion][fullname]" placeholder="{{chatWebsite.username_placeholder}}" class="xc_input_fullname" />\n                <input maxlength="85" type="text" name="data[Discussion][email]" placeholder="{{chatWebsite.email_placeholder}}" class="xc_input_email" />\n                <input type="hidden" class="xc_input_visitor_time" name="data[Discussion][visitor_time]" /><a href="#" class="xc_btn_signup xc_btn_style">{{chatWebsite.start_chat_button}}</a></form>\n        </div>\n        <!-- <div class="xc_conversation">\n            <div class="xc_conversation_container">\n                <p class="xc_message_intro" data-id="-10">{FirstMessageText}</p>\n            </div>\n            <div class="xc_composing_container"></div>\n            <form class="xc_form_reply" accept-charset="UTF-8">\n                <div class="xc_exit_chat_container"><a href="#" class="xc_btn_exit_chat">{ExitChatButtonText}</a>\n                    <div class="xc_exit_chat_confirmation_wrapper" style="display: none;"><span>{ExitChatQuestionText} </span><a href="#" class="xc_btn_exit_chat_confirm">{ExitChatButtonConfirmText}</a><span> | </span><a href="#" class="xc_btn_exit_chat_cancel">{ExitChatButtonCancelText}</a></div>\n                </div>\n                <textarea maxlength="750" placeholder="{MessagePlaceholderText}" name="data[Message][message]" class="xc_input_message"></textarea><a href="#" class="xc_btn_send xc_btn_style">{MessageSendButtonText}</a></form>\n        </div> -->\n        <div class="xc_footer">\n            <div class="xc_powered"><a>Powered by Xenialab | Trademark xCALLY</a></div>\n        </div>\n    </div>\n</div>\n'),a.put("app/chat/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUE\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="chatQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#" data-ng-click="open()">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/chat/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Username\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="chat_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedChatQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.chatQueuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="chatQueueByPage in chatQueuesByPage | filter: $select.search">\n													<div ng-bind-html="chatQueueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="chatQueue in displayedChatQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatQueues.checked" checklist-value="chatQueue.id"></td>\n					      <td>{{chatQueue.name}}</td>\n								<td>{{chatQueue.description}}</td>\n								<td>{{chatQueue.strategy | uppercase}}</td>\n								<td>{{chatQueue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/queues/view/{{chatQueue.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatQueue.name,chatQueue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedChatQueues.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No chat queues available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.chatQueuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body" style="width: 50%; margin: 0 auto;">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.chat.queues.view.settings\')}">\n							<a data-ng-href="/chat/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.queues.view.agents\')}">\n							<a data-ng-href="/chat/queues/view/{{queue.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateChatQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_AGENT\' | translate}} {{\'APPLICATION_TIMEOUT\' | translate}}</label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/chat/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n              <span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n            </div>\n						<!-- END TIMEOUT -->\n\n						<!-- START HEADER SHAPE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n              <span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n						</div>\n						<!-- END HEADER SHAPE -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/chat/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_WEB_SITE\' | translate }}</th>\n						<th st-sort="agentcalledAt" st-sort-default="reverse">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentringnoanswerAt">{{ \'APPLICATION_UNASWER_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': agent.lastevent === \'called\',\n								\'icon-user-following font-green\': agent.lastevent === \'agent\',\n								\'icon-user-unfollow font-red\': agent.lastevent === \'timeout\',\n								\'icon-user-unfollow font-blue\': agent.lastevent === \'answered_elsewhere\'}"></i>\n							</span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.chatqueuename}}</td>\n						<td>{{agent.fullname}}</td>\n						<td>{{agent.visitorname}} {{agent.visitoremail}}</td>\n						<td>{{agent.websitename}}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectedAt}}" data-ng-show="agent.agentconnectedAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentringnoanswerAt}}" data-ng-show="agent.agentringnoanswerAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_VISITOR\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_WEB_SITE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/chat/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initChats()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedChats" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n											<div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="visitorname" class="input-medium">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n						<th st-sort="websitename" class="input-small">{{ \'APPLICATION_WEB_SITE\' | translate }}</th>\n						<th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n						<th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n						<th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="session in displayedChats">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n								\'icon-user-following font-green\': session.fullname,\n								\'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n							</span>\n						</td>\n						<td>{{session.uniqueid}}</td>\n						<td>{{session.chatqueuename}}</td>\n						<td>{{session.fullname}}</td>\n						<td>{{session.visitorname + \' [\' + session.visitoremail + \']\'}}</td>\n						<td>{{session.websitename}}</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatleaveAt}}" data-ng-show="session.chatleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.chatunmanagedAt}}" data-ng-show="session.chatunmanagedAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedChats.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No sessions available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="visitorname" placeholder="{{ \'APPLICATION_VISITOR\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="websitename" placeholder="{{ \'APPLICATION_WEB_SITE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/chat/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n										<li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_SESSIONS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'sessions\'></tree>\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatRooms" filename="rooms.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatRooms" st-safe-src="chatRooms" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatRoomsByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatRooms.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="type">{{ \'APPLICATION_TYPE\' | translate }}</th>\n							<th st-sort="users">{{ \'APPLICATION_USERS\' | translate }}</th>\n							<th st-sort="visitor">{{ \'APPLICATION_VISITOR\' | translate }}</th>\n							<th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatRoom in displayedChatRooms" data-ng-click="$location.path(\'/chat/statistics/conversation/\' + chatRoom.id)">\n							<td style="text-align: center;">{{chatRoom.type | uppercase}}</td>\n							<td style="text-align: center;">{{getUsersFullname(chatRoom.Users)}}</td>\n							<td style="text-align: center;">{{chatRoom.ChatVisitor.email}}</td>\n							<td style="text-align: center;">\n								<span class="label label-sm label-success" data-ng-class="{\'label-success\': chatRoom.status == \'close\', \'label-warning\': chatRoom.status == \'open\'}">\n									{{chatRoom.status | capitalize}}\n								</span>\n							</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatRoom.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatRoomsByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.conversation.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initRoomView()">\n	<div class="col-md-6">\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-book-open font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRANSCRIPT\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="chatRoom.ChatMessages" filename="chatMessages.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="scroller" style="height: 352px;" data-always-visible="1" data-rail-visible1="1">\n					<ul class="chats">\n						<li data-ng-class="{\'out\': chatMessage.visitorId, \'in\': chatMessage.userId}" data-ng-repeat="chatMessage in chatRoom.ChatMessages | orderBy:\'-createdAt\'">\n							<img class="avatar" data-ng-src="api/users/{{chatMessage.userId ? chatMessage.userId : \'avatar\'}}/avatar"/>\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<a href="#" class="name">\n								{{chatMessage.fullname}} </a>\n								<span class="datetime">\n									<time is="relative-time" datetime="{{chatMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<span class="body">\n									{{chatMessage.body}}\n								</span>\n							</div>\n						</li>\n					</ul>\n				</div>\n			</div>\n		<!-- END PORTLET-->\n		</div>\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatRoom.ChatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatRoom.ChatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatRoom.ChatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatRoom.ChatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatRoom.ChatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered" data-ng-repeat="user in chatRoom.Users">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-earphones-alt font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AGENT\' | translate }}:</a> </span>\n					<span class="caption-helper">{{user.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.fullname}}\n					</div>\n				</div>\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_USERNAME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.name}}\n					</div>\n				</div>\n				<div class="row static-info">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ROLE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{user.role | uppercase}}\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.enquiry.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-question font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatEnquiries" filename="enquiries.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatEnquiries" st-safe-src="chatEnquiries" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatEnquiriesByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatEnquiries.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="type">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n							<th st-sort="users">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatEnquiry in displayedChatEnquiries" data-ng-click="$location.path(\'/chat/statistics/enquiry/\' + chatEnquiry.id)">\n							<td style="text-align: center;">{{chatEnquiry.username}}</td>\n							<td style="text-align: center;">{{chatEnquiry.email}}</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatEnquiriesByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.enquiry.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initEnquiryView()">\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-book-open font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEXT\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="chatEnquiry" filename="chatEnquery.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN PAGE CONTENT-->\n				<div class="note note-warning">\n					<h4 class="block">{{chatEnquiry.ChatVisitor.fullname}} -\n						<time is="relative-time" datetime="{{chatEnquiry.createdAt}}">\n							April 1, 2014\n						</time>\n					</h4>\n					<p>\n						 {{chatEnquiry.text}}\n					</p>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatEnquiry.ChatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatEnquiry.ChatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatEnquiry.ChatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatEnquiry.ChatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatEnquiry.ChatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eyeglass"></i>\n					<a href="/chat/statistics">{{ \'APPLICATION_STATISTICS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/statistics.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<!-- <div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{chatWebsite.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{chatWebsite.address}}\n					</div>\n				</div> -->\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR BUTTONS -->\n				<!-- <div class="profile-userbuttons">\n					<button type="button" class="btn btn-circle green-haze btn-sm">Follow</button>\n					<button type="button" class="btn btn-circle btn-danger btn-sm">Message</button>\n				</div> -->\n				<!-- END SIDEBAR BUTTONS -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.summary\')}">\n							<a ng-href="/chat/statistics/summary">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_SUMMARY\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.enquiry\') || $state.is(\'main.chat.statistics.enquiries\')}">\n							<a ng-href="/chat/statistics/enquiries">\n							<i class="icon-question"></i>\n							{{ \'APPLICATION_ENQUIRIES\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.conversation\') || $state.is(\'main.chat.statistics.conversations\')}">\n							<a ng-href="/chat/statistics/conversations">\n							<i class="icon-notebook"></i>\n							{{ \'APPLICATION_CONVERSATIONS\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.chat.statistics.visitor\') || $state.is(\'main.chat.statistics.visitors\')}">\n							<a ng-href="/chat/statistics/visitors">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_VISITORS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.summary.html",'<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered" data-ng-show="online">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_LOCATIONS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<map center="0, 0" zoom="2">\n				<marker data-ng-show="chatVisitor.latitude && chatVisitor.longitude" data-ng-repeat="chatVisitor in chatVisitors" position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n			</map>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-notebook font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_OPENED\' | translate }} <i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatRooms | filter:{ status:\'open\' }).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_CLOSED\' | translate }} <i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatRooms | filter:{ status:\'close\' }).length }} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatRooms | filter:{ status:\'open\' }).length, (chatRooms | filter:{ status:\'close\' }).length]" labels="[$translate.instant(\'APPLICATION_OPENED\'), $translate.instant(\'APPLICATION_CLOSED\')]" legend="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-users font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_PENDING\' | translate }} <i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'pending\' }).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_SERVED\' | translate }} <i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'served\' }:true).length }} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_UNSERVED\' | translate }} </span>\n									<span class="sale-num">\n									{{ (chatVisitors | filter:{ status:\'unserved\' }).length }} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatVisitors | filter:{ status:\'pending\' }).length, (chatVisitors | filter:{ status:\'served\' }:true).length, (chatVisitors | filter:{ status:\'unserved\' }).length]" labels="[$translate.instant(\'APPLICATION_PENDING\'), $translate.instant(\'APPLICATION_SERVED\'), $translate.instant(\'APPLICATION_UNSERVED\')]" legend="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-question font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_ENQUIRIES\' | translate }}</a> </span>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<div class="row">\n				<div class="col-md-6">\n					<div class="portlet sale-summary">\n						<div class="portlet-body">\n							<ul class="list-unstyled">\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_READ\' | translate }}<i class="fa fa-img-up"></i>\n									</span>\n									<span class="sale-num">\n									{{(chatEnquiries | filter:{ read:true }).length}} </span>\n								</li>\n								<li>\n									<span class="sale-info">\n									{{ \'APPLICATION_UNREAD\' | translate }}<i class="fa fa-img-down"></i>\n									</span>\n									<span class="sale-num">\n									{{(chatEnquiries | filter:{ read:false }).length}} </span>\n								</li>\n							</ul>\n						</div>\n					</div>\n				</div>\n				<div class="col-md-6">\n					<canvas class="chart chart-pie" data="[(chatEnquiries | filter:{ read:true }).length, (chatEnquiries | filter:{ read:false }).length]" labels="[$translate.instant(\'APPLICATION_READ\'), $translate.instant(\'APPLICATION_UNREAD\')]" legend="true" ng-show="true"></canvas>\n				</div>\n			</div>\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n'),
+a.put("app/chat/statistic/statistic.visitor.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="col-md-12">\n	<!-- BEGIN Portlet PORTLET-->\n	<div class="portlet light bordered">\n		<div class="portlet-title">\n			<div class="caption font-green-sharp">\n				<i class="icon-users font-green-sharp"></i>\n				<span class="caption-subject">{{ \'APPLICATION_VISITORS\' | translate }}</a> </span>\n			</div>\n			<div class="actions">\n				<a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedChatVisitors" filename="visitors.csv">\n				<i class="icon-cloud-download"></i></a>\n				<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n			</div>\n		</div>\n		<div class="portlet-body">\n			<!-- START TABLE -->\n			<table st-table="displayedChatVisitors" st-safe-src="chatVisitors" class="table table-bordered table-hover">\n				<div class="table-responsive">\n					<thead>\n						<tr>\n							<th colspan="9">\n								<div class="row">\n									<div class="col-md-6">\n										<select class="form-control input-small select2me" data-ng-model="conf.chatVisitorsByPage">\n											<option value="10">10</option>\n											<option value="25">25</option>\n											<option value="50">50</option>\n											<option value="{{chatVisitors.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n										</select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n							<th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="remote_address">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n							<th st-sort="referer">{{ \'APPLICATION_ORIGIN\' | translate }}</th>\n							<th st-sort="device">{{ \'APPLICATION_DEVICE\' | translate }}</th>\n							<th st-sort="browser">{{ \'APPLICATION_BROWSER\' | translate }}</th>\n							<th st-sort="visitor_language">{{ \'APPLICATION_LANGUAGES\' | translate }}</th>\n							<th st-sort="status">{{ \'APPLICATION_STATUS\' | translate }}</th>\n							<th st-sort="createdAt">{{ \'APPLICATION_TIME\' | translate }}</th>\n						</tr>\n					</thead>\n					<tbody>\n						<tr data-ng-repeat="chatVisitor in displayedChatVisitors" data-ng-click="$location.path(\'/chat/statistics/visitor/\' + chatVisitor.id)">\n							<td>{{chatVisitor.fullname}}</td>\n							<td>{{chatVisitor.email}}</td>\n							<td>{{chatVisitor.remote_address}}</td>\n							<td>{{chatVisitor.referer}}</td>\n							<td class="centered-td">{{chatVisitor.device ? chatVisitor.device : \'--\'}}</td>\n							<td class="centered-td">\n								<img data-ng-show="chatVisitor.browser.includes(\'Chrome\')" data-ng-src="assets/images/browsers/chrome/chrome_16x16.png" data-title="{{chatVisitor.browser}}" bs-tooltip>\n								<img data-ng-show="chatVisitor.browser.includes(\'Safari\')" data-ng-src="assets/images/browsers/safari/safari_16x16.png">\n								<img data-ng-show="chatVisitor.browser.includes(\'Firefox\')" data-ng-src="assets/images/browsers/firefox/firefox_16x16.png">\n								<img data-ng-show="chatVisitor.browser.includes(\'Explorer\')" data-ng-src="assets/images/browsers/internet-explorer/internet-explorer_16x16.png">\n							</td>\n							<td class="centered-td">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'IT\') || chatVisitor.visitor_language.includes(\'it\')" data-ng-src="assets/images/flags/it.png">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'US\') || chatVisitor.visitor_language.includes(\'us\')" data-ng-src="assets/images/flags/us.png">\n								<img data-ng-show="chatVisitor.visitor_language.includes(\'EN\') || chatVisitor.visitor_language.includes(\'en\')" data-ng-src="assets/images/flags/en_EN.png">\n							</td>\n							<td class="centered-td">\n								<span class="label label-sm label-success" data-ng-class="{\'label-warning\': chatVisitor.status == \'pending\', \'label-danger\': chatVisitor.status == \'unserved\'}">\n									{{ $translate.instant(\'APPLICATION_\' + $filter(\'uppercase\')(chatVisitor.status)) }}\n								</span>\n							</td>\n							<td style="text-align: center;">\n								<time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n									April 1, 2014\n								</time>\n							</td>\n						</tr>\n					</tbody>\n					<tfoot>\n						<tr>\n							<td colspan="9" class="text-center">\n								<div st-pagination class="pagination" st-items-by-page="conf.chatVisitorsByPage" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n					</tfoot>\n			</div>\n			</table>\n			<!-- END TABLE -->\n		</div>\n	</div>\n	<!-- END Portlet PORTLET-->\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/statistic/statistic.visitor.view.html",'<!-- BEGIN PAGE CONTENT-->\n<div data-ng-init="initVisitorView()">\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-pin font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_LOCATION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN PAGE CONTENT-->\n				<map center="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" zoom="8">\n					<marker position="{{chatVisitor.latitude}}, {{chatVisitor.longitude}}" title="{{chatVisitor.fullname}}"></marker>\n				</map>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n	<div class="col-md-6">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-user font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VISITOR\' | translate }}:</a> </span>\n					<span class="caption-helper">{{chatVisitor.fullname}}</span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row static-info" data-ng-show="chatVisitor.longitude && chatVisitor.latitude">\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.fullname">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_FULLNAME\' | translate}}\n					</div>\n					<div class="col-md-8 value">\n						{{chatVisitor.fullname}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.email">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_EMAIL\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.email}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.remote_address">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.remote_address}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.referer">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REFERER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.referer}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.browser">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_BROWSER\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.browser}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.engine">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ENGINE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.engine}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.os">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_OS\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.os}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.device">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_DEVICE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.device}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.country">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_COUNTRY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.country}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.region">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_REGION\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.region}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.city">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_CITY\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.city}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.latitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LATITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.latitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.longitude">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_LONGITUDE\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						{{chatVisitor.longitude}}\n					</div>\n				</div>\n				<div class="row static-info" data-ng-show="chatVisitor.createdAt">\n					<div class="col-md-4 name">\n						{{\'APPLICATION_ARRIVAL_TIME\' | translate}}\n					</div>\n					<div class="col-md-4 value">\n						<time is="relative-time" datetime="{{chatVisitor.createdAt}}">\n							April 1, 2014\n						</time>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/mail/timeline/list"> Timeline</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				Timeline\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'"  ng-animate=" \'animate\' ">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-envelope font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-globe"></i>\n						<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_WEB_SITES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="chatWebsites.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_WEB_SITE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#" data-ng-click="open()">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/chat/websites/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getChatWebsites([\'name\', \'address\', \'description\', \'remote\'])" csv-header="[\'Name\', \'Address\', \'Description\', \'Remote\']" field-separator=";" filename="chat_websites.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedChatWebsites" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.chatWebsitesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="chatWebsiteByPage in chatWebsitesByPage | filter: $select.search">\n													<div ng-bind-html="chatWebsiteByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th st-sort="address">{{ \'APPLICATION_WEB_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="chatWebsite in displayedChatWebsites" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="chatWebsites.checked" checklist-value="chatWebsite.id"></td>\n					      <td>{{chatWebsite.name}}</td>\n								<td>{{chatWebsite.description}}</td>\n					      <td><a ng-href="{{chatWebsite.address}}">{{chatWebsite.address}}</a></td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(chatWebsite.name,chatWebsite.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedChatWebsites.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{\'MESSAGE_NO_AVAILABLE_WEBSITES\' | translate}}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="address" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_WEB_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.chatWebsitesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/chat/websites/view/{{chatWebsite.id}}/actions/wizard" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n								<th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n						    <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n								<th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="chatApplications">\n					    <tr data-ng-repeat="application in chatApplications">\n								<td align="center">\n									<span>\n										<i data-ng-class="application.User ? \'icon-user\' : \'icon-docs\'"></i>\n									</span>\n								</td>\n								<td align="center">{{application.timeout}}</td>\n								<td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n								<td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/view/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="chatApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/chat/website/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.settings" ng-submit="updateItem()" novalidate>\n					<!-- START APP -->\n					<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n							<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n							<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n								<div ng-bind-html="app.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END APP -->\n\n					<!-- START HOST -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n						<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END HOST -->\n\n					<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n						<!-- START QUEUE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n							<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select class="input-medium" data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n									<div ng-bind-html="queue.name | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END QUEUE -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n						<!-- START AGENT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n								<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n									<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END AGENT -->\n					</div>\n\n					<!-- START INTERVAL_TYPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n							<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n								{{ intType.name | translate }}\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END INTERVAL_TYPE -->\n\n					<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n						<!-- START TIME -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n							<div class="input-group input-large">\n								<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n									<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n								</fieldset>\n								<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n								<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n								<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n							</div>\n						</div>\n						<!-- END TIME -->\n\n						<!-- START ALWAYS -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n							<div class="input-group input-large">\n								<label class="control-label pointer-cursor">\n									<input\n										bs-switch\n										data-ng-model="application.alwaysTime"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n									<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n								</label>\n							</div>\n						</div>\n						<!-- END ALWAYS -->\n\n						<!-- START WEEKDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END WEEKDAY -->\n\n						<!-- START MONTHDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTHDAY -->\n\n						<!-- START MONTH -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTH -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n						<!-- START INTERVALS -->\n						<div class="form-group inpu" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n									{{ interval.name}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVALS -->\n\n					</div>\n					<button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n				</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/chat/website/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n						<form name="forms.action" novalidate>\n							<!-- START APP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n									<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n										<div ng-bind-html="app.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APP -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n								<span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n								<!-- START QUEUE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.ChatQueueId" name="queue" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n											<div ng-bind-html="queue.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n								<!-- START AGENT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n									<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n										<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n											<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END AGENT -->\n							</div>\n\n							<!-- START INTERVAL_TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n										{{ intType.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVAL_TYPE -->\n\n							<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n											<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n										</fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n										<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START ALWAYS -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n									<div class="input-group input-large">\n										<label class="control-label pointer-cursor">\n											<input\n												bs-switch\n												data-ng-model="application.alwaysTime"\n												type="checkbox"\n												switch-active="{{ isActive }}"\n												switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n												switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n												switch-on-color="{{ onColor }}"\n												switch-off-color="{{ offColor }}"\n												switch-animate="{{ animate }}"\n												switch-size="{{ size }}"\n												switch-label="{{ label }}"\n												switch-icon="{{ icon }}"\n												switch-radio-off="{{ radioOff }}"\n												switch-label-width="{{ labelWidth }}"\n												switch-handle-width="{{ handleWidth }}">\n											<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n										</label>\n									</div>\n								</div>\n								<!-- END ALWAYS -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n											{{ interval.name}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n\n							<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n						<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/view/snippet/view/view.html",'<div class="row" data-ng-init="getSnippetCode()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SNIPPET\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_EMBEDDING\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_APPEARANCE\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FORMS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_LABELS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_5" data-toggle="tab">{{\'APPLICATION_SETTINGS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n						<div class="col-md-8">\n							<div class="tab-content">\n								<!-- EMBEDDING TAB -->\n								<div class="tab-pane active" id="tab_1_1">\n									<h3>{{\'APPLICATION_EMBED_SNIPPET\' | translate}}</h3>\n									<p>\n										{{\'MESSAGE_EMBED_SNIPPET\' | translate}}\n									</p>\n									<div class="form-body">\n										<div class="form-group">\n											<div class="col-md-12">\n												<textarea name="snippet" rows="13" style="resize:none;cursor:text;" class="form-control" readonly data-ng-model="snippetCode"></textarea>\n											</div>\n										</div>\n									</div>\n								</div>\n								<!-- END EMBEDDING TAB -->\n\n								<!-- APPEARANCE TAB -->\n								<div class="tab-pane" id="tab_1_2">\n									<form name="forms.formAppearance" data-ng-submit="forms.formAppearance.$valid && updateItem()" novalidate>\n\n										<!-- START MAIN COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n											<label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{chatWebsite.color}}" class="form-control" data-ng-model="chatWebsite.color" required/>\n											<span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END MAIN COLOR -->\n\n										<!-- START FOCUS COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n											<label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{chatWebsite.color_focus}}" class="form-control" data-ng-model="chatWebsite.color_focus" required/>\n											<span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END FOCUS COLOR -->\n\n										<!-- START BUTTON COLOR -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n											<label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{chatWebsite.color_button}}" class="form-control" data-ng-model="chatWebsite.color_button" required/>\n											<span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END BUTTON COLOR -->\n\n										<!-- START HEADER SHAPE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n											<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n											<ui-select data-ng-model="chatWebsite.header_shape" name="headerShape" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n												<ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n													<div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END HEADER SHAPE -->\n\n										<!-- START ANIMATION TOGGLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n											<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n											<ui-select data-ng-model="chatWebsite.animation" name="animationToggle" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n												<ui-select-choices repeat="animationToggle in [true, false] | filter: $select.search">\n													<div ng-bind-html="animationToggle ? \'On\' : \'Off\' | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END ANIMATION TOGGLE -->\n\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END APPEARANCE TAB -->\n\n								<!-- FORMS TAB -->\n								<div class="tab-pane" id="tab_1_3">\n									<form name="forms.formFunctionality" data-ng-submit="forms.formFunctionality.$valid && updateItem()" novalidate>\n\n										<!-- START DOWNLOAD TRANSCRIPT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n											<label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n											<ui-select data-ng-model="chatWebsite.download_transcript" name="downloadTranscript" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n												<ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n													<div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<!-- END DOWNLOAD TRANSCRIPT -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END FORMS TAB -->\n\n								<!-- STRINGS TAB -->\n								<div class="tab-pane" id="tab_1_4">\n									<form name="forms.formLabel" data-ng-submit="forms.formLabel.$valid && updateItem()" novalidate>\n\n										<h4 class="block" data-ng-show="statePreview.state == \'online\'">{{\'APPLICATION_ONLINE_STATE\' | translate}}</h4>\n\n										<!-- START HEADER ONLINE -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n											<input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_online"/>\n										</div>\n										<!-- END HEADER ONLINE -->\n\n										<!-- START ONLINE MESSAGE-->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n											<input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.online_message"/>\n										</div>\n										<!-- END HEADER ONLINE -->\n\n										<!-- START USERNAME PLACEHOLDER -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n											<label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.username_placeholder"/>\n										</div>\n										<!-- END USERNAME PLACEHOLDER -->\n\n										<!-- START EMAIL PLACEHOLDER -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\' || statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n											<label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.email_placeholder"/>\n										</div>\n										<!-- END EMAIL PLACEHOLDER -->\n\n										<!-- START START CHAT BUTTON -->\n										<div class="form-group" data-ng-show="statePreview.state == \'online\'" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n											<label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n											<input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.start_chat_button"/>\n										</div>\n										<!-- END START CHAT BUTTON -->\n\n										<h4 class="block" data-ng-show="statePreview.state == \'offline\'">{{\'APPLICATION_OFFLINE_STATE\' | translate}}</h4>\n\n										<!-- START HEADER OFFLINE -->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n											<input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="chatWebsite.header_offline"/>\n										</div>\n										<!-- END HEADER OFFLINE -->\n\n										<!-- START OFFLINE MESSAGE-->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n											<input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="chatWebsite.offline_message"/>\n										</div>\n										<!-- END OFFLINE MESSAGE -->\n\n										<!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n											<input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_message_placeholder"/>\n										</div>\n										<!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n										<!-- START ENQUIRY BUTTON -->\n										<div class="form-group" data-ng-show="statePreview.state == \'offline\'" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n											<label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n											<input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="chatWebsite.enquiry_button"/>\n										</div>\n										<!-- END ENQUIRY BUTTON -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END STRINGS TAB -->\n\n								<!-- SETTINGS TAB -->\n								<div class="tab-pane" id="tab_1_5">\n									<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n										<!-- START NAME -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n											<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="chatWebsite.name" required/>\n											<span data-ng-show="(forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSettings.name.$invalid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END NAME -->\n\n										<!-- START ADDRESS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n											<label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="chatWebsite.address" required/>\n											<span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END ADDRESS -->\n\n										<!-- START REMOTE IP -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n											<label class="control-label">{{\'APPLICATION_REMOTE\' | translate}} <span class="required" aria-required="true">*</span></label>\n											<input type="url" name="remote" placeholder="{{\'APPLICATION_REMOTE\' | translate}}" class="form-control" data-ng-model="chatWebsite.remote" required/>\n											<span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END REMOTE IP -->\n\n										<!-- START DESCRIPTION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.description.$touched || forms.formSetting.$submitted) && forms.formSetting.description.$invalid}">\n											<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n											<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="chatWebsite.description"/>\n										</div>\n										<!-- END DESCRIPTION -->\n\n										<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n									</form>\n								</div>\n								<!-- END SETTINGS TAB -->\n							</div>\n						</div>\n						<div class="col-md-4">\n							<!-- START STATE -->\n							<div class="form-group">\n								<!-- <label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label> -->\n								<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n								<ui-select data-ng-model="statePreview.state" name="statePreview" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="statePreview in [\'online\',\'offline\'] | filter: $select.search">\n										<div ng-bind-html="statePreview | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END STATE -->\n							<preview></preview>\n						</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/chat/website/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bubble"></i>\n					<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-globe"></i>\n					<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{chatWebsite.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/website.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{chatWebsite.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{chatWebsite.address}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.includes(\'main.chat.websites.view.snippet\')}">\n							<a ng-href="/chat/websites/view/{{chatWebsite.id}}/snippet/view">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SNIPPET\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.chat.websites.view.actions\')}">\n							<a ng-href="/chat/websites/view/{{chatWebsite.id}}/actions/list">\n							<i class="icon-directions"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/chat/website/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bubble"></i>\n						<a href="#">{{ \'APPLICATION_CHAT\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-globe"></i>\n						<a href="/chat/websites/list">{{ \'APPLICATION_WEB_SITES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_WEB_SITE\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_WEB_SITE_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.name.$touched || forms.formSetting.$submitted) && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$touched && !forms.formSettings.name.$valid && forms.formSetting.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WEB_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="address" placeholder="{{\'APPLICATION_WEB_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.address" required/>\n								<span data-ng-show="(forms.formSetting.address.$touched || forms.formSetting.$submitted) && forms.formSetting.address.$invalid && forms.formSetting.address.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ADDRESS -->\n\n							<!-- START REMOTE IP -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remote" placeholder="{{\'APPLICATION_REMOTE\' | translate}}" class="form-control" data-ng-model="item.remote" required/>\n								<span data-ng-show="(forms.formSetting.remote.$touched || forms.formSetting.$submitted) && forms.formSetting.remote.$invalid && forms.formSetting.remote.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END REMOTE IP -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.form.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_WEB_SITE_APPEARANCE\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n						<form name="forms.formAppearance" novalidate>\n\n							<!-- START MAIN COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAIN_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="mainColor" placeholder="{{\'APPLICATION_MAIN_COLOR\' | translate}}" style="color:{{item.color}}" class="form-control" data-ng-model="item.color" required/>\n								<span data-ng-show="(forms.formAppearance.mainColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.mainColor.$invalid && forms.formAppearance.mainColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAIN COLOR -->\n\n							<!-- START FOCUS COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FOCUS_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="focusColor" placeholder="{{\'APPLICATION_FOCUS_COLOR\' | translate}}" style="color:{{item.color_focus}}" class="form-control" data-ng-model="item.color_focus" required/>\n								<span data-ng-show="(forms.formAppearance.focusColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.focusColor.$invalid && forms.formAppearance.focusColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FOCUS COLOR -->\n\n							<!-- START BUTTON COLOR -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid}">\n								<label class="control-label">{{\'APPLICATION_BUTTON_COLOR\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input colorpicker type="text" name="buttonColor" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" style="color:{{item.color_button}}" class="form-control" data-ng-model="item.color_button" required/>\n								<span data-ng-show="(forms.formAppearance.buttonColor.$touched || forms.formAppearance.$submitted) && forms.formAppearance.buttonColor.$invalid && forms.formAppearance.buttonColor.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END BUTTON COLOR -->\n\n							<!-- START HEADER SHAPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.headerShape.$touched || forms.formAppearance.$submitted) && forms.formAppearance.headerShape.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_SHAPE\' | translate}}</label>\n								<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="item.animation" required/> -->\n								<ui-select data-ng-model="item.header_shape" name="headerShape" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant(\'APPLICATION_\' + $select.selected.toUpperCase())}}</ui-select-match>\n									<ui-select-choices repeat="headerShape in [\'rounded\',\'squared\'] | filter: $select.search">\n										<div ng-bind-html="$translate.instant(\'APPLICATION_\' + headerShape.toUpperCase()) | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END HEADER SHAPE -->\n\n							<!-- START ANIMATION TOGGLE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formAppearance.animationToggle.$touched || forms.formAppearance.$submitted) && forms.formAppearance.animationToggle.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANIMATION\' | translate}}</label>\n								<ui-select data-ng-model="item.animation" name="animationToggle" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected  ? \'On\' : \'Off\'}}</ui-select-match>\n									<ui-select-choices repeat="filter in [true,false] | filter: $select.search">\n										<div ng-bind-html="filter ? \'On\' : \'Off\' | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END ANIMATION TOGGLE -->\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_LABELS\' | translate}}" canexit="exitValidation(forms.formLabel.$valid)">\n						<form name="forms.formLabel" novalidate>\n\n							<!-- START HEADER ONLINE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOnline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_ONLINE\' | translate}}</label>\n								<input type="text" name="headerOnline" placeholder="{{\'APPLICATION_HEADER_ONLINE\' | translate}}" class="form-control" data-ng-model="item.header_online"/>\n							</div>\n							<!-- END HEADER ONLINE -->\n\n							<!-- START ONLINE MESSAGE-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.onlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}</label>\n								<input type="text" name="onlineMessage" placeholder="{{\'APPLICATION_ONLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.online_message"/>\n							</div>\n							<!-- END HEADER ONLINE -->\n\n							<!-- START USERNAME PLACEHOLDER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.usernamePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.usernamePlaceholder.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="usernamePlaceholder" placeholder="{{\'APPLICATION_USERNAME_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.username_placeholder"/>\n							</div>\n							<!-- END USERNAME PLACEHOLDER -->\n\n							<!-- START EMAIL PLACEHOLDER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.emailPlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.emailPlaceholder.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="emailPlaceholder" placeholder="{{\'APPLICATION_EMAIL_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.email_placeholder"/>\n							</div>\n							<!-- END EMAIL PLACEHOLDER -->\n\n							<!-- START START CHAT BUTTON -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.startChatButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n								<label class="control-label">{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}</label>\n								<input type="text" name="startChatButton" placeholder="{{\'APPLICATION_START_CHAT_BUTTON\' | translate}}" class="form-control" data-ng-model="item.start_chat_button"/>\n							</div>\n							<!-- END START CHAT BUTTON -->\n\n							<!-- START HEADER OFFLINE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.headerOffline.$touched || forms.formLabel.$submitted) && forms.formLabel.headerOnline.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HEADER_OFFLINE\' | translate}}</label>\n								<input type="text" name="headerOffline" placeholder="{{\'APPLICATION_HEADER_OFFLINE\' | translate}}" class="form-control" data-ng-model="item.header_offline"/>\n							</div>\n							<!-- END HEADER OFFLINE -->\n\n							<!-- START OFFLINE MESSAGE-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.offlineMessage.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}</label>\n								<input type="text" name="offlineMessage" placeholder="{{\'APPLICATION_OFFLINE_MESSAGE\' | translate}}" class="form-control" data-ng-model="item.offline_message"/>\n							</div>\n							<!-- END OFFLINE MESSAGE -->\n\n							<!-- START ENQUIRY MESSAGE PLACEHOLDER-->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryMessagePlaceholder.$touched || forms.formLabel.$submitted) && forms.formLabel.onlineMessage.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}</label>\n								<input type="text" name="enquiryMessagePlaceholder" placeholder="{{\'APPLICATION_ENQUIRY_MESSAGE_PLACEHOLDER\' | translate}}" class="form-control" data-ng-model="item.enquiry_message_placeholder"/>\n							</div>\n							<!-- END ENQUIRY MESSAGE PLACEHOLDER -->\n\n							<!-- START ENQUIRY BUTTON -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formLabel.enquiryButton.$touched || forms.formLabel.$submitted) && forms.formLabel.startChatButton.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}</label>\n								<input type="text" name="enquiryButton" placeholder="{{\'APPLICATION_ENQUIRY_BUTTON\' | translate}}" class="form-control" data-ng-model="item.enquiry_button"/>\n							</div>\n							<!-- END ENQUIRY BUTTON -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_FORMS\' | translate}}" canexit="exitValidation(forms.formAppearance.$valid)">\n						<form name="forms.formFunctionality" novalidate>\n\n							<!-- START DOWNLOAD TRANSCRIPT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formFunctionality.animationToggle.$touched || forms.formFunctionality.$submitted) && forms.formFunctionality.animationToggle.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DOWNLOAD_TRANSCRIPT\' | translate}}</label>\n								<ui-select data-ng-model="item.download_transcript" name="downloadTranscript" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected ? \'On\' : \'Off\'}}</ui-select-match>\n									<ui-select-choices repeat="downloadTranscript in [true, false] | filter: $select.search">\n										<div ng-bind-html="downloadTranscript ? \'On\' : \'Off\' | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n							<!-- END DOWNLOAD TRANSCRIPT -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="fa fa-users"></i>\n					<a href="/contactmanager/list">{{ \'APPLICATION_CONTACT_MANAGER\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="fa fa-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONTACTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="contacts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTACT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/contactmanager/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getContacts([\'mailbox\', \'fullname\', \'email\'])" csv-header="[\'name\', \'surname\', \'description\']" field-separator=";" filename="contacts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedContacts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.contactsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="contactByPage in contactsByPage | filter: $select.search">\n													<div ng-bind-html="contactByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(contact, checked)" checklist-model checklist-value="uniqueid"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="surname">{{ \'APPLICATION_SURNAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="contact in displayedContacts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="contacts.checked" checklist-value="contact.uniqueid"></td>\n								<td>{{contact.name}} {{}}</td>\n                <td>{{contact.surname}}</td>\n					      <td>{{contact.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/contactmanager/view/{{contact.uniqueid}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(contact.mailbox,contact.uniqueid)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedContacts.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="surname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SURNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.contactsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/view/view.history.html",'<div class="row" data-ng-init="getHistory()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_HISTORY\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_CALLERID\' | translate }}</th>\n						    <th>{{ \'APPLICATION_DATE\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="contactHistory">\n					    <tr data-ng-repeat="history in contactHistory">\n								<td>{{history.callerid}}</td>\n								<td>{{history.name}}</td>\n					    </tr>\n							<tr data-ng-hide="contactHistory.length">\n								<td colspan="2" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_CONTACTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/contactmanager/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getContact()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="fa fa-users"></i>\n					<a href="/contactmanager/list">{{ \'APPLICATION_CONTACT\' | translate }}</a>\n					<i data-ng-show="contact" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="contact">\n					<a href="#">{{contact.mailbox}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/contact.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{contact.mailbox}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.contactmanager.view.settings\')}">\n							<a data-ng-href="/contactmanager/view/{{contact.uniqueid}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n            <li data-ng-class="{active: $state.is(\'main.contactmanager.view.history\')}">\n              <a data-ng-href="/contactmanager/view/{{contact.uniqueid}}/history">\n              <i class="icon-speech"></i>\n              {{ \'APPLICATION_HISTORY\' | translate}} </a>\n            </li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/contactmanager/view/view.settings.html",'<div class="row" data-ng-init="getContexts()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONTACT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<!-- <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li> -->\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateContact()" novalidate>\n\n							<!-- START MAILBOX -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="contact.mailbox" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAILBOX -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}</label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="contact.password" />\n								<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START CONFIRM PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}</label>\n								<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="contact.rpassword" nx-equal="contact.password"/>\n								<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONFIRM PASSWORD -->\n\n							<!-- START FULLNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="contact.fullname" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FULLNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="contact.email" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="contact.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<!-- <div class="tab-pane" id="tab_1_2">\n						<form name="forms.advanced" data-ng-submit="updateContact()" novalidate>\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div> -->\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/contactmanager/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard()">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="fa fa-users"></i>\n				<a href="/contactmanager/list">{{ \'APPLICATION_CONTACT_MANAGER\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-user-follow"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-envelope-letter font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_CONTACT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START MAILBOX -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="item.mailbox" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END MAILBOX -->\n\n						<!-- START PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n							<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PASSWORD -->\n\n						<!-- START CONFIRM PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n							<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CONFIRM PASSWORD -->\n\n            <!-- START FULLNAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n              <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END FULLNAME -->\n\n            <!-- START EMAIL -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n              <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EMAIL -->\n\n            <!-- START CONTEXT -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <ui-select data-ng-model="item.context" name="context" theme="bootstrap" required>\n                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                  <div ng-bind-html="context.name | highlight: $select.search"></div>\n                </ui-select-choices>\n              </ui-select>\n              <span class="help-block">\n                {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n              </span>\n              <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END CONTEXT -->\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/dashboard/dashboard.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/dashboard/voice">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n									<!-- <li dropdown>\n											<a href="#" dropdown-toggle>\n													{{ \'APPLICATION_VOICE\' | translate }}\n													<b class=\'caret\'></b>\n											</a>\n											<tree tree=\'voice\'></tree>\n									</li>\n									<li dropdown>\n											<a href="#" dropdown-toggle>\n													{{ \'APPLICATION_MAIL\' | translate }}\n													<b class=\'caret\'></b>\n											</a>\n											<tree tree=\'mail\'></tree>\n									</li> -->\n		                <li data-ng-class="{active: $state.is(\'main.dashboard.voice\')}">\n		                    <a href="/dashboard/voice">\n													<b class=\'icon-earphones-alt\'></b>\n		                        {{ \'APPLICATION_VOICE\' | translate }}\n		                    </a>\n		                    <!-- <tree tree=\'voice\'></tree> -->\n		                </li>\n										<li data-ng-class="{active: $state.is(\'main.dashboard.mail\')}">\n		                    <a href="/dashboard/mail">\n													<b class=\'icon-envelope\'></b>\n		                        {{ \'APPLICATION_MAIL\' | translate }}\n		                    </a>\n		                    <!-- <tree tree=\'mail\'></tree> -->\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/dashboard/mail/mail.html",'<div class="col-md-12">\nThis is the mail view.\n</div>\n'),a.put("app/dashboard/voice/voice.html",'<div class="row" ng-init=\'getQueueStats()\'>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat red-intense">\n      <div class="visual">\n        <i class="fa fa-comments"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.abandonedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ABANDONED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat green-haze">\n      <div class="visual">\n        <i class="fa fa-bar-chart-o"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.completedCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_COMPLETED\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat purple-plum">\n      <div class="visual">\n        <i class="fa fa-shopping-cart"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.waitCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_WAIT\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n  <div class="col-lg-3 col-md-3 col-sm-6 col-xs-12">\n    <div class="dashboard-stat blue-madison">\n      <div class="visual">\n        <i class="fa fa-globe"></i>\n      </div>\n      <div class="details">\n        <div class="number">\n          {{queueStats.activeCalls}}\n        </div>\n        <div class="desc">\n          {{\'APPLICATION_DASHBOARD_ACTIVE\' | translate}}\n        </div>\n      </div>\n      <a class="more" href="/voice/realtime/view/queues">\n      {{\'APPLICATION_VIEW_MORE\' | translate}} <i class="m-icon-swapright m-icon-white"></i>\n      </a>\n    </div>\n  </div>\n</div>\n'),a.put("app/fax/account/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="fax_accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/accounts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAccounts([\'name\', \'description\', \'phone\'])" csv-header="[\'Name\', \'Description\', \'Phone\']" field-separator=";" filename="fax_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.faxAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="faxAccountByPage in faxAccountsByPage | filter: $select.search">\n													<div ng-bind-html="faxAccountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAccount, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="phone">{{ \'APPLICATION_PHONE\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="faxAccount in displayedFaxAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="fax_accounts.checked" checklist-value="faxAccount.id"></td>\n					      <td>{{faxAccount.name}}</td>\n								<td>{{faxAccount.description}}</td>\n								<td>{{faxAccount.phone}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/accounts/view/{{faxAccount.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAccount.name,faxAccount.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxAccounts.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No fax account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td></td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="phone" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PHONE\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.faxAccountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.applications.html",'<div class="row" data-ng-init="initApplication()">\n	<div class="col-md-12">\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<!-- START APP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n									<label class="control-label">{{\'APPLICATION_APPLICATION\' | translate}}</label>\n									<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n				            <ui-select-match placeholder="{{\'APPLICATION_APPLICATION\' | translate}}">{{$select.selected | uppercase}}</ui-select-match>\n				            <ui-select-choices repeat="filter in [\'queue\', \'agent\'] | filter: $select.search">\n				              <div ng-bind-html="filter | uppercase | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APP -->\n\n								<!-- START APPADATA -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n									<label class="control-label">{{\'APPLICATION_ARGUMENTS\' | translate}}</label>\n									<ui-select data-ng-model="application.appdata" name="appdata" theme="bootstrap" required>\n				            <ui-select-match placeholder="{{\'APPLICATION_ARGUMENTS\' | translate}}">{{$select.selected.name}}</ui-select-match>\n				            <ui-select-choices repeat="item in items | filter: $select.search">\n				              <div data-ng-bind-html="item.name | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APPADATA -->\n\n								<!-- START TIMEOUT -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid}">\n									<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n									<input type="text" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" required>\n									<span data-ng-show="(forms.info.timeout.$touched || forms.info.$submitted) && forms.info.timeout.$invalid && forms.info.timeout.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END TIMEOUT -->\n\n								<!-- START INTERVAL -->\n								<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL\' | translate}}</label>\n									<input type="text" name="interval" placeholder="*|*|*|*" class="form-control" data-ng-model="application.interval">\n									<span data-ng-show="(forms.info.info.interval.$touched || forms.info.$submitted) && forms.info.interval.$invalid && forms.info.interval.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div> -->\n								<!-- END INTERVAL -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-paper-plane"></i>\n					<a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="account"></i>\n				</li>\n				<li data-ng-show="account">\n					<a href="#">{{ account.name || account.description }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/account.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ account.name || account.description }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ account.phone }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.accounts.view.settings\')}">\n							<a href="/fax/accounts/view/{{account.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.fax.accounts.view.routes\') || $state.is(\'main.fax.accounts.view.applications\')}">\n							<a href="/fax/accounts/view/{{account.id}}/routes">\n							<i class="icon-directions"></i>\n							{{\'APPLICATION_ROUTES\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/account/view/view.routes.html",'<div class="row" data-ng-init="getFaxApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ROUTES\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/fax/accounts/view/{{account.id}}/applications" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n								<!-- <th width="5%">{{ \'APPLICATION_ID\' | translate }}</th> -->\n						    <th>{{\'APPLICATION_APPLICATION\' | translate}}</th>\n						    <th>{{\'APPLICATION_ARGUMENTS\' | translate}}</th>\n								<th>{{\'APPLICATION_TIMEOUT\' | translate}}</th>\n						    <!-- <th>{{\'APPLICATION_INTERVAL\' | translate}}</th> -->\n								<th width="5%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n						<tbody ui-sortable="sortableOptions" data-ng-model="faxApplications">\n					    <tr data-ng-repeat="application in faxApplications | orderBy:\'priority\'">\n								<td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td>\n								<td>{{getAppdata(application.app, application.appdata)}}</td>\n								<td>{{application.timeout}}</td>\n								<!-- <td>{{application.interval}}</td> -->\n					      <td>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app,application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="faxApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/account/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItemFaxAccount()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START TRUNKS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="account.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n										<div data-ng-bind="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START TRUNKS -->\n\n							<!-- START PHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="account.phone" required/>\n								<span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PHONE -->\n\n							<!-- START ECM -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n								<!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="account.ecm" bs-checkbox>{{account.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n								<input\n									bs-switch\n									ng-model="account.ecm"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END ECM -->\n\n							<!-- START FAXHEADER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="account.faxheader" required/>\n								<span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FAXHEADER -->\n\n							<!-- START LOCALID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="account.localid" required/>\n								<span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LOCALID -->\n\n							<!-- START MAXRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n								<ui-select data-ng-model="account.maxrate" name="maxrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="maxrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MAXRATE -->\n\n							<!-- START MINRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n								<ui-select data-ng-model="account.minrate" name="minrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="minrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MINRATE -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/fax/account/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="/fax/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START TRUNKS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="item.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_TRUNK\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in trunks | filter: $select.search">\n										<div data-ng-bind="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.trunk.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START TRUNKS -->\n\n							<!-- START PHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.phone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PHONE\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="phone" placeholder="{{\'APPLICATION_PHONE\' | translate}}" class="form-control" data-ng-model="item.phone" required/>\n								<span data-ng-show="forms.formSetting.phone.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PHONE -->\n\n							<!-- START ECM -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_ECM\' | translate}}<span class="required" aria-required="true">*</span></label><br>\n								<!-- <button type="button" name="ecm" class="btn btn-default form-control" data-ng-model="item.ecm" bs-checkbox>{{item.ecm ? \'ENABLED\' : \'DISABLED\'}}</button> -->\n								<input\n									bs-switch\n									ng-model="item.ecm"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END ECM -->\n\n							<!-- START FAXHEADER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.faxheader.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FAXHEADER\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="faxheader" placeholder="{{\'APPLICATION_FAXHEADER\' | translate}}" class="form-control" data-ng-model="item.faxheader" required/>\n								<span data-ng-show="forms.formSetting.faxheader.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FAXHEADER -->\n\n							<!-- START LOCALID -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.localid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LOCALID\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="localid" placeholder="{{\'APPLICATION_LOCALID\' | translate}}" class="form-control" data-ng-model="item.localid" required/>\n								<span data-ng-show="forms.formSetting.localid.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LOCALID -->\n\n							<!-- START MAXRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.maxrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXRATE\' | translate}}</label>\n								<ui-select data-ng-model="item.maxrate" name="maxrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="maxrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="maxrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.maxrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MAXRATE -->\n\n							<!-- START MINRATE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.minrate.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MINRATE\' | translate}}</label>\n								<ui-select data-ng-model="item.minrate" name="minrate" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_MAXRATE\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="minrate in [\'9600\', \'14400\', \'33600\'] | filter: $select.search">\n										<div data-ng-bind="minrate | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.minrate.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START MINRATE -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-settings"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="faxAutomations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="fax_automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.faxAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="faxAutomationByPage in faxAutomationsByPage | filter: $select.search">\n													<div ng-bind-html="faxAutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(faxAutomation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="faxAutomation in displayedFaxAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxAutomations.checked" checklist-value="faxAutomation.id"></td>\n					      <td>{{faxAutomation.name}}</td>\n								<td>{{faxAutomation.description}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(faxAutomation.id, faxAutomation.status)",\n								    bs-switch\n								    ng-model="faxAutomation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/fax/automations/view/{{faxAutomation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(faxAutomation.name, faxAutomation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>{{\'MESSAGE_NO_AVAILABLE_AUTOMATIONS\' | translate}}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.faxAutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{automation.description}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.automations.view.settings\')}">\n							<a href="/fax/automations/view/{{automation.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'or\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<div class="tab-pane" id="tab_1_3">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'and\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n											<span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_4">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewAction()">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="action in automation.BusinessActions">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n													<div data-ng-bind="action.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3" data-ng-switch="action.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-4">\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeAction(action.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessActions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/fax/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid && forms.automation.$valid)">\n						<form name="forms.automation" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n										<span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n										<input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n										<span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<hr>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'or\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-user"></i>\n									<span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.or">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'or\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.or.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'and\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-people"></i>\n									<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.and">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'and\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.and.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'actions\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-magic-wand"></i>\n									<span class="caption-subject">Perform these actions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.actions">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n														<div data-ng-bind="action.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n												<input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4">\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.actions.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add action</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n								</div>\n							</div>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/fax/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-note"></i>\n						<a href="/fax/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n	<div class="col-md-12" ui-view>\n	</div>\n</div>\n'),a.put("app/fax/inbox/incoming/incoming.html",'<!-- END PAGE HEADER-->\n<div data-ng-init="getRooms()">\n	<!-- <pre>\n		{{faxRooms | json}}\n	</pre> -->\n	<div class="inbox-header">\n		<h1 class="pull-left">Inbox</h1>\n	</div>\n	<div class="inbox-content">\n		<table class="table table-advance" st-table="displayedFaxRooms" st-safe-src="faxRooms">\n			<thead>\n				<tr>\n					<th colspan="8" style="background: #eef4f7; border: none; border-bottom: solid 5px #fff;">\n						<div class="row">\n							<div class="col-md-6">\n								<input type="checkbox" class="mail-checkbox mail-group-checkbox checker" data-ng-model="checked" data-ng-change="switchCheckbox(displayedFaxRooms, checked)">\n								<div class="btn-group">\n									<a data-ng-href="/fax/inbox/compose" class="btn btn-sm blue">{{\'APPLICATION_NEW_MESSAGE\' | translate}} <i class="fa fa-plus"></i></a>\n									<!-- <a class="btn btn-sm blue dropdown-toggle" href="#" data-toggle="dropdown">\n										{{\'APPLICATION_MORE\' | translate}} <i class="fa fa-angle-down"></i>\n									</a> -->\n									<ul class="dropdown-menu">\n										<li>\n											<a href="#" data-ng-click="markAsRead(true)">\n											<i class="icon-paper-plane-open"></i> {{\'APPLICATION_MARK_AS_READ\' | translate}} </a>\n										</li>\n										<li>\n											<a href="#" data-ng-click="markAsRead(false)">\n											<i class="icon-paper-plane"></i> {{\'APPLICATION_MARK_AS_UNREAD\' | translate}} </a>\n										</li>\n										<li class="divider">\n										</li>\n										<li>\n											<a href="#" data-ng-click="deleteMessage()">\n											<i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}} </a>\n										</li>\n									</ul>\n								</div>\n							</div>\n							<div class="col-md-6">\n								<div class="input-group input-medium pull-right">\n									<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n									<span class="input-group-addon btn green" style="cursor: default;">\n										<i class="icon-magnifier" style="color: white;"></i>\n									</span>\n								</div>\n								<ui-select data-ng-model="conf.faxRoomsByPage" theme="bootstrap" style="width: 100px;" class="pull-right margin-right-10">\n									<ui-select-match placeholder="{{ \'APPLICATION_SEARCH\' | translate }}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="p in [10, 20, 35, 50] | filter: $select.search">\n										<span ng-bind-html="p | highlight: $select.search"></span>\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n					</th>\n				</tr>\n			</thead>\n			<tbody>\n				<tr data-ng-repeat="faxRoom in displayedFaxRooms | orderBy:\'-updatedAt\'" data-ng-class="{unread: !faxRoom.read}" data-ng-click="go(\'/fax/inbox/room/\' + faxRoom.id, faxRoom.id, \'OPEN\')" class="animate-repeat">\n					<td class="inbox-small-cells" style="border: none;">\n						<input type="checkbox" class="checker" checklist-model="checkedMailMessages.id" checklist-value="faxRoom.id">\n					</td>\n					<!-- <td class="inbox-small-cells" style="border: none;">\n						<i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n					</td> -->\n					<td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n						#{{faxRoom.id}}\n					</td>\n					<!-- <td class="inbox-small-cells" style="border: none;">\n						<i class="fa fa-star" data-ng-class="{\'inbox-started\': faxRoom.favorite}" data-ng-click="markAsFavorite(faxRoom.id, faxRoom.favorite)"></i>\n					</td> -->\n					<!-- <td class="view-message hidden-xs" style="cursor:pointer; border:none;">\n						{{faxRoom.subject}}\n					</td> -->\n					<td class="view-message" style="cursor:pointer; border:none;">\n					 	{{faxRoom.from}}\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;">\n					 	{{faxRoom.MailAccount.description ? faxRoom.MailAccount.description : faxRoom.MailAccount.name}}\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;" data-ng-switch="faxRoom.status">\n						<span class="badge badge-default" data-ng-class="{\n						\'badge-danger\': faxRoom.status == \'NEW\',\n						\'badge-warning\': faxRoom.status == \'OPEN\',\n						\'badge-info\': faxRoom.status == \'PENDING\',\n						\'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n					</td>\n					<td class="view-message" style="cursor:pointer; border:none;">\n						<span class="badge badge-success badge-roundless" data-ng-show="faxRoom.User.fullname"> {{faxRoom.User.fullname}} </span>\n						<span class="badge badge-default badge-roundless" data-ng-hide="faxRoom.User.fullname"> {{\'APPLICATION_UNASSIGNED\' | translate}} </span>\n					</td>\n					<td class="view-message text-right" context-menu="menuOptions" style="border: none;">\n						<time is="relative-time" datetime="{{faxRoom.updatedAt}}">\n							April 1, 2014\n						</time>\n					</td>\n				</tr>\n				<tr data-ng-hide="faxRooms.length">\n					<td colspan="6" class="text-center">\n						<i>{{\'MESSAGE_NO_AVAILABLE_MESSAGES\' | translate}}</i>\n					</td>\n				</tr>\n				<tr>\n					<td colspan="8" class="text-center" style="border: none;">\n						<div st-pagination class="pagination" st-items-by-page="conf.faxRoomsByPage" st-displayed-pages="7"></div>\n					</td>\n				</tr>\n			</tbody>\n		</table>\n	</div>\n</div>\n'),a.put("app/fax/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n	<div class="portlet light">\n		<!-- PROJECT HEAD -->\n		<div class="portlet-title">\n			<div class="caption" data-ng-show="faxRoom">\n				<i class="icon-bar-chart font-green-sharp hide"></i>\n				<span class="badge badge-default" data-ng-class="{\'badge-error\': faxRoom.status == \'NEW\',\n				\'badge-warning\': faxRoom.status == \'OPEN\',\n				\'badge-info\': faxRoom.status == \'PENDING\',\n				\'badge-success\': faxRoom.status == \'CLOSED\'}"> {{faxRoom.status | uppercase}} </span>\n			</div>\n			<div class="actions" data-ng-show="faxRoom">\n				<div class="btn-group" data-ng-show="Auth.isAdmin()">\n					<a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li data-ng-repeat="agent in agents">\n							<a href="#" data-ng-click="assignAgent(agent.id)">\n							{{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n				<div class="btn-group">\n					<a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_STATUS\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'PENDING\')">\n							{{\'STATUS_PENING\' | translate}} <span class="badge badge-danger">\n							P </span>\n							</a>\n						</li>\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'CLOSED\')">\n							{{\'STATUS_CLOSED\' | translate}} <span class="badge badge-success">\n							C </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n			</div>\n		</div>\n		<!-- end PROJECT HEAD -->\n		<div class="portlet-body">\n			<div class="row">\n				<div data-ng-show="faxRoom" data-ng-class="{\'col-md-7 col-sm-7\': faxRoom}">\n					<div class="scroller" id="faxMessages" style="height: 500px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n						<ul class="chats">\n							<li data-ng-class="{\'in\': faxMessage.status == \'RECEIVED\', \'out\': (faxMessage.status == \'SENT\' || faxMessage.status == \'SENDING\' || faxMessage.status == \'FAILED\' || faxMessage.status == \'NOT SENT\')}" data-ng-repeat="faxMessage in faxRoom.FaxMessages | orderBy:\'createdAt\'">\n							<img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && faxMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<span class="bold">{{\'APPLICATION_FROM\' | translate}}: </span>\n								<span>{{faxMessage.From.fullname}} </span>\n								<span> &#60;{{faxMessage.From.phone}}&#62; </span>\n								<br>\n								<span class="bold">{{\'APPLICATION_TO\' | translate}}: </span>\n								<span>{{faxMessage.To.fullname}} </span>\n								<span> &#60;{{faxMessage.To.phone}}&#62; </span>\n								<br>\n								<span class="todo-tasklist-date">\n									<i class="fa fa-calendar"></i>\n									<time is="relative-time" datetime="{{faxMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<span data-ng-show="faxMessage.status == \'FAILED\' || faxMessage.status == \'SENDING\'" class="badge badge-default" data-ng-class="{\'badge-error\': faxMessage.status == \'FAILED\', \'badge-warning\': faxMessage.status == \'SENDING\'}"> {{faxMessage.status | uppercase}} </span>\n								<br>\n								<br>\n								<span class="body">\n									<div class="wrapper" ng-controller="FaxInboxRoomCtrl" style="max-height:600px; overflow:auto;">\n					          <ng-pdf pdf-url="/api/fax/messages/{{faxMessage.id}}/content" template-url="/assets/plugins/angular-pdf/example/partials/viewer.html" scale="0.5" page=1></ng-pdf>\n					        </div>\n								</span>\n								<br>\n							</div>\n						</li>\n						</ul>\n					</div>\n				</div>\n				<div data-ng-class="{\'col-md-5 col-sm-5\': faxRoom, \'col-md-12 col-sm-12\': !faxRoom}">\n					<form name="forms.compose" data-ng-submit="forms.compose.$valid && sendFax()" class="form-horizontal" novalidate>\n						<!-- TASK HEAD -->\n						<div class="form">\n							<div class="form-group">\n								<div class="col-md-12 col-sm-12">\n									<div class="todo-taskbody-user">\n										<img class="todo-userpic pull-left" data-ng-src="api/users/avatar/{{getCurrentUser().userpic ? getCurrentUser().userpic : \'unknown_avatar\'}}" width="50px" height="50px">\n										<span class="todo-username pull-left">{{ getCurrentUser().fullname }}</span>\n									</div>\n								</div>\n							</div>\n							<!-- END TASK HEAD -->\n\n							<!-- FAX FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_FROM\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_FROM\' | translate}}...">{{$select.selected.name}} - {{$select.selected.phone}}</ui-select-match>\n												<ui-select-choices repeat="faxAccount in faxAccounts | filter: $select.search">\n													<div ng-bind-html="faxAccount.name | highlight: $select.search"></div>\n													<small ng-bind-html="faxAccount.phone | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n\n							<!-- FAX TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_TO\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_TO\' | translate}}...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n\n							<!-- TASK DESC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n								</div>\n							</div>\n							<!-- END TASK DESC -->\n\n							<!-- START ATTACH -->\n							<div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div>\n							<!-- END ATTACH -->\n\n						</div>\n					</form>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n<!-- END TODO CONTENT -->\n'),a.put("app/fax/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="/fax/queues/lis">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="faxQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/fax/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getFaxQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="fax_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedFaxQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n								<th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate}}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedFaxQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="faxQueues.checked" checklist-value="queue.id"></td>\n					      <td>{{queue.name}}</td>\n								<td>{{queue.description}}</td>\n								<td>{{queue.strategy | uppercase}}</td>\n								<td>{{queue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/fax/queues/view/{{queue.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name, queue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedFaxQueues.length">\n								<td colspan="6" class="text-center">\n									<i>No available queues</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body" style="width: 50%; margin: 0 auto;">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-paper-plane"></i>\n					<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.fax.queues.view.settings\')}">\n							<a data-ng-href="/fax/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.fax.queues.view.agents\')}">\n							<a data-ng-href="/fax/queues/view/{{queue.id}}/agents">\n							<i class="icon-people"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/fax/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateFaxQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}</label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<!-- <input colorpicker type="text" name="animationToggle" placeholder="{{\'APPLICATION_BUTTON_COLOR\' | translate}}" class="form-control" data-ng-model="chatWebsite.animation" required/> -->\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/fax/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-paper-plane"></i>\n				<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/fax/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n							<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END TIMEOUT -->\n\n						<!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STRATEGY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
+a.put("app/fax/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-paper-plane"></i>\n						<a href="#">{{ \'APPLICATION_FAX\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/fax/timeline/list"> {{\'APPLICATION_TIMELINE\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				{{\'APPLICATION_TIMELINE\' | translate}}\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-paper-plane font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">{{\'APPLICATION_AT\' | translate}} {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/fax/inbox/room/{{event.FaxRoomId}}">{{\'APPLICATION_GO_TO\' | translate}} {{\'APPLICATION_FAX\' | translate}}</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.FaxRoom.subject ? event.FaxRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/integration/list/list.html",'\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-game-controller"></i>\n					<a href="/integrations/list">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered" data-ng-init="initList()">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-eye font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTEGRATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n				  <span class="btn green-jungle btn-file">\n            <span> <i class="icon-plus"></i> New App </span>\n            <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n          </span>\n          <a class="btn btn-icon-only btn-default" href="#" ng-csv="displayedIntegrations" filename="integrations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<a class="btn btn-icon-only btn-default fullscreen" href="#"></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedIntegrations" st-safe-src="integrations" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<select class="form-control input-small select2me" data-ng-model="integrationsByPage">\n												<option value="10">10</option>\n												<option value="25">25</option>\n												<option value="50">50</option>\n												<option value="{{integrations.length}}">{{ \'APPLICATION_ALL\' | translate }}</option>\n											</select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th>\n						    <th st-sort="fullname">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="name">{{ \'APPLICATION_FILENAME\' | translate }}</th>\n								<th st-sort="name">{{ \'APPLICATION_VERSION\' | translate }}</th>\n						    <th st-sort="name">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="integration in displayedIntegrations">\n								<td>{{integration.id}}</td>\n								<td>{{integration.name}}</td>\n								<td>{{integration.filename}}</td>\n								<td>{{integration.version}}</td>\n					      <td>{{integration.description}}</td>\n								<td>\n									<span class="btn default btn-xs blue-stripe btn-file">\n				            <span> {{ \'APPLICATION_UPDATE\' | translate }} </span>\n				            <input type="file" accept=".zip" nv-file-select="" uploader="uploader"/>\n				          </span>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(integration.name, integration.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="integrations.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No integrations available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="id" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="filename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FILENAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n						    </td>\n								<td>\n						    </td>\n								<td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="integrationsByPage" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-clock"></i>\n					<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-clock font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTERVALS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="intervals.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_INTERVAL\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/intervals/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getIntervals([\'name\'])" csv-header="[\'Name\']" field-separator=";" filename="intervals.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedIntervals" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="3">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.intervalsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="intervalByPage in intervalsByPage | filter: $select.search">\n													<div ng-bind-html="intervalByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(interval, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="interval in displayedIntervals">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="intervals.checked" checklist-value="interval.id"></td>\n								<td>{{interval.name}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(interval.name,interval.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedIntervals.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_INTERVALS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="3" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.intervalsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getInterval()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-clock"></i>\n					<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n					<i data-ng-show="interval" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="interval">\n					<a href="#">{{interval.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/interval.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{interval.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.intervals.view.settings\')}">\n							<a data-ng-href="/intervals/view/{{interval.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.intervals.view.subintervals\') || $state.is(\'main.intervals.view.subinterval\') || $state.is(\'main.intervals.view.subintervals.settings\')}">\n							<a data-ng-href="/intervals/view/{{interval.id}}/subintervals">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_SUBINTERVALS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERVAL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateInterval()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="interval.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/interval/view/view.subinterval.html",'\n<div class="row" data-ng-init="initSubInterval()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.subinterval.name.$valid)">\n            <form name="forms.subinterval" novalidate>\n\n              <!-- START NAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$invalid}">\n                <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="subinterval.name" required/>\n                <span data-ng-show="(forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END NAME -->\n\n							<!-- START TIME -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                <div class="input-group input-large">\n									<fieldset class="pull-left" ng-disabled="splittedInterval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="splittedInterval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n									<fieldset ng-disabled="splittedInterval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="splittedInterval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n									<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="splittedInterval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                </div>\n              </div>\n              <!-- END TIME -->\n\n              <!-- START WEEKDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.wd_from" theme="bootstrap" name="wd_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.wd_to" theme="bootstrap" name="wd_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END WEEKDAY -->\n\n              <!-- START MONTHDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.md_from" theme="bootstrap" name="md_from">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.md_to" theme="bootstrap" name="md_to">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTHDAY -->\n\n              <!-- START MONTH -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.m_from" theme="bootstrap" name="m_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.m_to" theme="bootstrap" name="m_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTH -->\n\n\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n            </form>\n          </wz-step>\n\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.subintervalSettings.html",'\n<div class="row" data-ng-init="getSubInterval()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_SUBINTERVAL_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{subinterval.name}}\n					</div>\n          <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.subinterval.name.$valid)">\n            <form name="forms.subinterval" novalidate>\n\n              <!-- START NAME -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$invalid}">\n                <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="subinterval.name" required/>\n                <span data-ng-show="(forms.subinterval.name.$touched || forms.subinterval.$submitted) && forms.subinterval.name.$error.required" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END NAME -->\n\n              <!-- START TIME -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n                <div class="input-group input-large">\n									<fieldset class="pull-left" ng-disabled="splittedInterval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="splittedInterval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n                  <div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n									<fieldset ng-disabled="splittedInterval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="splittedInterval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n									<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="splittedInterval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n                </div>\n              </div>\n              <!-- END TIME -->\n\n              <!-- START WEEKDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.wd_from" theme="bootstrap" name="wd_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.wd_to" theme="bootstrap" name="wd_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n                      {{$translate.instant(weekDay.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END WEEKDAY -->\n\n              <!-- START MONTHDAY -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.md_from" theme="bootstrap" name="md_from">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.md_to" theme="bootstrap" name="md_to">\n                    <ui-select-match>{{$select.selected}}</ui-select-match>\n                    <ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n                      {{monthDay}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTHDAY -->\n\n              <!-- START MONTH -->\n              <div class="form-group">\n                <label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n                <div class="input-group input-large">\n                  <ui-select data-ng-model="splittedInterval.m_from" theme="bootstrap" name="m_from">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                  <span class="input-group-addon">to</span>\n                  <ui-select data-ng-model="splittedInterval.m_to" theme="bootstrap" name="m_to">\n                    <ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                    <ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n                      {{$translate.instant(month.name)}}\n                    </ui-select-choices>\n                  </ui-select>\n                </div>\n              </div>\n              <!-- END MONTH -->\n\n\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n            </form>\n          </wz-step>\n\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/interval/view/view.subintervals.html",'<div ui-view class="profile-content">\n<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SUBINTERVALS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/intervals/view/{{interval.id}}/subinterval" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_SUBINTERVAL\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="subIntervals">\n					    <tr data-ng-repeat="subinterval in subIntervals">\n								<td>{{subinterval.name}}</td>\n								<td>{{subinterval.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/intervals/view/{{interval.id}}/subintervals/settings/{{subinterval.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(subinterval.name+\' interval\',subinterval.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="subIntervals.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_SUBINTERVALS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),
+a.put("app/interval/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-clock"></i>\n				<a href="/intervals/list">{{ \'APPLICATION_INTERVALS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/intervals/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-clock font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INTERVAL\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.interval.$valid)">\n			    <form name="forms.interval" novalidate>\n\n            <!-- START NAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$invalid}">\n              <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n              <span data-ng-show="(forms.interval.name.$touched || forms.interval.$submitted) && forms.interval.name.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END NAME -->\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/login/login.html",'<!-- BEGIN LOGO -->\n<div class="logo">\n	<a href="index.html">\n	<img src="assets/images/logo-big.png" alt=""/>\n	</a>\n</div>\n<!-- END LOGO -->\n<!-- BEGIN LOGIN -->\n<div class="content">\n	<!-- BEGIN LOGIN FORM -->\n	<form class="login-form" name="loginForm" data-ng-show="!flagLogin1" data-ng-submit="login(loginForm)" novalidate>\n		<h3 class="form-title">Sign In</h3>\n		<div class="alert alert-danger" data-ng-class="{\'display-hide\': !loginSubmitted || !errorLogin}">\n			<button class="close" data-close="alert"></button>\n			<span>{{ errorLog ? errorLog : \'Enter any username and password.\'}}</span>\n		</div>\n		<div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.name.$invalid}">\n			<label class="control-label">Username</label>\n      <div class="input-icon">\n        <i class="fa fa-user"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="text" autocomplete="off" placeholder="Username" name="name" ng-model="userLogin.name" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.name.$invalid" class="help-block">Username is required.</span>\n		</div>\n		<div class="form-group" data-ng-class="{\'has-error\': loginSubmitted && loginForm.password.$invalid}">\n			<label class="control-label">Password</label>\n      <div class="input-icon">\n        <i class="fa fa-lock"></i>\n        <input ng-enter="login(loginForm)" class="form-control form-control-solid placeholder-no-fix" type="password" autocomplete="off" placeholder="Password" name="password" ng-model="userLogin.password" required/>\n      </div>\n      <span data-ng-show="loginSubmitted && loginForm.password.$invalid" class="help-block">Password is required.</span>\n		</div>\n		<div class="form-actions">\n			<button type="submit" class="btn btn-success uppercase">Login</button>\n      <label class="rememberme check">\n        <input type="checkbox"> Remember me\n      </label>\n			<!-- <label class="rememberme check">\n			<input type="checkbox" name="remember" value="1"/>Remember </label> -->\n			<!-- <a href="javascript:;" id="forget-password" class="forget-password">Forgot Password?</a> -->\n		</div>\n		<div class="login-options">\n			<h4>Follow Us on</h4>\n			<ul class="social-icons">\n				<li>\n					<a class="social-icon-color facebook" data-original-title="facebook" href="https://www.facebook.com/xenialab"></a>\n				</li>\n				<li>\n					<a class="social-icon-color twitter" data-original-title="Twitter" href="https://twitter.com/xenialab"></a>\n				</li>\n				<li>\n					<a class="social-icon-color googleplus" data-original-title="Goole Plus" href="#"></a>\n				</li>\n				<li>\n					<a class="social-icon-color linkedin" data-original-title="Linkedin" href="#"></a>\n				</li>\n			</ul>\n		</div>\n	</form>\n</div>\n<div class="copyright">\n	 2016 Â© xCALLY MOTION.\n</div>\n<!-- END LOGIN -->\n'),a.put("app/mail/account/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-notebook"></i>\n						<a href="#">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailAccounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/accounts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAccounts([\'name\', \'description\', {MailServerIn:\'username\'}])" csv-header="[\'Name\', \'Description\', \'Email Address\']" field-separator=";" filename="mail_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n				  <thead>\n						<tr>\n							<th colspan="6">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.mailAccountsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="mailAccountByPage in mailAccountsByPage | filter: $select.search">\n												<div ng-bind-html="mailAccountByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div>\n									</div>\n								</div>\n							</th>\n						</tr>\n					  <tr>\n							<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAccount, checked)" checklist-model checklist-value="id"></th>\n					    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n							<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n							<th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n							<th st-sort="description"> IMAP</th>\n							<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n					  </tr>\n				  </thead>\n				  <tbody>\n				    <tr data-ng-repeat="mailAccount in displayedMailAccounts">\n							<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAccounts.checked" checklist-value="mailAccount.id"></td>\n				      <td>{{mailAccount.name}}</td>\n							<td>{{mailAccount.description}}</td>\n							<td><a ng-href="mailto:{{mailAccount.MailServerIn.username}}">{{mailAccount.MailServerIn.username}}</a></td>\n							<td>\n								<span class="label label-sm" data-ng-class="mailAccount.MailServerIn.state === \'CONNECTED\' ? \'label-success\' : \'label-danger\'">\n									{{ mailAccount.MailServerIn.state | uppercase }}\n								</span>\n							</td>\n				      <td>\n				        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{mailAccount.id}}/settings">\n									{{ \'APPLICATION_PROFILE\' | translate }}\n				        </a>\n				        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAccount.name, mailAccount.id)">\n									{{ \'APPLICATION_DELETE\' | translate }}\n				        </a>\n				      </td>\n				    </tr>\n						<tr data-ng-hide="displayedMailAccounts.length">\n							<td colspan="6" class="text-center">\n							<i>{{ \'MESSAGE_NO_AVAILABLE_ACCOUNTS\' | translate }}</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td/>\n					    <td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td>\n							<td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td>\n							<!-- <td>\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="address" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n					    </td> -->\n					    <td/>\n							<td/>\n					  </tr>\n						<tr>\n							<td colspan="6" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.mailAccountsByPage.value" st-displayed-pages="7"></div>\n							</td>\n						</tr>\n				  </tfoot>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/action/list/list.html",'<div class="row" data-ng-init="initActons()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/mail/accounts/view/{{account.id}}/actions/wizard" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACTION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th class="input-small" align="center">{{\'APPLICATION_APPLICATION\' | translate}}</th>\n								<th class="input-small" align="center">{{\'APPLICATION_TIMEOUT\' | translate}} [s]</th>\n						    <th align="center">{{ \'APPLICATION_INTERVAL\' | translate }}</th>\n								<th class="input-small">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="mailApplications">\n					    <tr data-ng-repeat="application in mailApplications">\n								<!-- <td><span data-ng-class="{\'label-info\': application.app == \'agent\', \'label-success\': application.app == \'queue\'}" class="label label-sm"> {{application.app}} </span></td> -->\n								<td align="center">\n									<span>\n										<i data-ng-class="application.User ? \'icon-user\' : \'icon-docs\'"></i>\n									</span>\n								</td>\n								<td align="center">{{application.timeout}}</td>\n								<td align="center">{{application.Interval ? application.Interval.name : application.interval}}</td>\n								<td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/mail/accounts/view/{{account.id}}/actions/view/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app, application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="mailApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No applications available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/account/view/action/view/view.html",'\n<div class="row" data-ng-init="initAction()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.settings" ng-submit="updateItem()" novalidate>\n					<!-- START APP -->\n					<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n							<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n							<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n								<div ng-bind-html="app.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END APP -->\n\n					<!-- START HOST -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n						<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n						<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n						<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END HOST -->\n\n					<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n						<!-- START QUEUE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n							<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n									<div ng-bind-html="queue.name | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END QUEUE -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n						<!-- START AGENT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n								<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n									<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.agent.$touched || forms.settings.$submitted) && forms.settings.agent.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END AGENT -->\n					</div>\n\n					<!-- START INTERVAL_TYPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$invalid}">\n						<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n						<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n							<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n								{{ intType.name | translate }}\n							</ui-select-choices>\n						</ui-select>\n						<span data-ng-show="(forms.settings.intType.$touched || forms.settings.$submitted) && forms.settings.intType.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END INTERVAL_TYPE -->\n\n					<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n						<!-- START TIME -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n							<div class="input-group input-large">\n								<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n									<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n								</fieldset>\n								<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n								<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n								<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n							</div>\n						</div>\n						<!-- END TIME -->\n\n						<!-- START ALWAYS -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n							<div class="input-group input-large">\n								<label class="control-label pointer-cursor">\n									<input\n										bs-switch\n										data-ng-model="application.alwaysTime"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n									<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n								</label>\n							</div>\n						</div>\n						<!-- END ALWAYS -->\n\n						<!-- START WEEKDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n										{{ weekDay.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END WEEKDAY -->\n\n						<!-- START MONTHDAY -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n									<ui-select-match>{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n										{{monthDay}}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTHDAY -->\n\n						<!-- START MONTH -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n							<div class="input-group input-large">\n								<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span class="input-group-addon">to</span>\n								<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n									<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n										{{ month.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n							</div>\n						</div>\n						<!-- END MONTH -->\n					</div>\n\n					<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n						<!-- START INTERVALS -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n								<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n									{{ interval.name}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.settings.IntervalId.$touched || forms.settings.$submitted) && forms.settings.IntervalId.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVALS -->\n\n					</div>\n					<button class="btn green-haze" type="submit">{{\'APPLICATION_UPDATE\' | translate}}</button>\n				</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/action/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-directions font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACTION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.action.$valid)">\n						<form name="forms.action" novalidate>\n							<!-- START APP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': forms.action.$submitted && forms.action.app.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.app" name="app" theme="bootstrap" required>\n									<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="app.value as app in apps | filter: $select.search">\n										<div ng-bind-html="app.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.action.$submitted && forms.action.app.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APP -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="number" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="application.timeout" min="0" required/>\n								<span data-ng-show="(forms.action.timeout.$touched || forms.action.$submitted) && forms.action.timeout.$invalid && forms.action.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<div class="app-settings" ng-slide-down="application.app === \'queue\'" lazy-render duration="1" data-ng-init="getQueues()">\n								<!-- START QUEUE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.MailQueueId" name="queue" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queue.id as queue in queues | filter: $select.search">\n											<div ng-bind-html="queue.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.queue.$touched || forms.action.$submitted) && forms.action.queue.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.app === \'agent\'" lazy-render duration="1" data-ng-init="getAgents()">\n								<!-- START AGENT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$invalid}">\n									<label class="control-label">{{\'APPLICATION_AGENT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.UserId" name="agent" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.fullname}}</ui-select-match>\n										<ui-select-choices repeat="agent.id as agent in agents | filter: $select.search">\n											<div ng-bind-html="agent.fullname | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.agent.$touched || forms.action.$submitted) && forms.action.agent.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END AGENT -->\n							</div>\n\n							<!-- START INTERVAL_TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_INTERVAL_TYPE\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.intType" theme="bootstrap" name="intType" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name | translate }}</ui-select-match>\n									<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n										{{ intType.name | translate }}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.action.intType.$touched || forms.action.$submitted) && forms.action.intType.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVAL_TYPE -->\n\n							<div class="app-settings" ng-slide-down="application.intType === \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="application.alwaysTime">\n											<uib-timepicker name="t_from" data-ng-model="application.t_from" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker>\n										</fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="application.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="application.t_to" show-meridian="false" show-spinners="false" mousewheel="false"></uib-timepicker></fieldset>\n										<!-- <label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="application.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label> -->\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START ALWAYS -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_ALWAYS\' | translate }}</label>\n									<div class="input-group input-large">\n										<label class="control-label pointer-cursor">\n											<input\n												bs-switch\n												data-ng-model="application.alwaysTime"\n												type="checkbox"\n												switch-active="{{ isActive }}"\n												switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n												switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n												switch-on-color="{{ onColor }}"\n												switch-off-color="{{ offColor }}"\n												switch-animate="{{ animate }}"\n												switch-size="{{ size }}"\n												switch-label="{{ label }}"\n												switch-icon="{{ icon }}"\n												switch-radio-off="{{ radioOff }}"\n												switch-label-width="{{ labelWidth }}"\n												switch-handle-width="{{ handleWidth }}">\n											<!-- <input type="checkbox" data-ng-model="application.alwaysTime"> -->\n										</label>\n									</div>\n								</div>\n								<!-- END ALWAYS -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{ weekDay.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="application.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="application.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{ $select.selected.name | translate }}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{ month.name | translate }}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div class="app-settings" ng-slide-down="application.intType === \'list\'" lazy-render duration="1" data-ng-init="getIntervals()">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{ $select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in intervals | filter: $select.search">\n											{{ interval.name}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.action.IntervalId.$touched || forms.action.$submitted) && forms.action.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n\n							<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONTINUE\' | translate}}"/>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<!-- <button class="btn green-haze" type="button" wz-previous><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button> -->\n						<input class="btn green-haze" type="submit" data-ng-click="next()" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/mail/account/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="account"></i>\n				</li>\n				<li data-ng-show="account">\n					<a href="#">{{ account.description || account.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/account.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ account.description || account.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.email}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li ng-class="{active: $state.is(\'main.mail.accounts.view.settings\')}">\n							<a href="/mail/accounts/view/{{account.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li ng-class="{active: $state.includes(\'main.mail.accounts.view.actions\')}">\n							<a href="/mail/accounts/view/{{account.id}}/actions/list">\n							<i class="icon-directions"></i>\n							{{\'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/account/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">IMAP</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">SMTP</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formInfo" data-ng-submit="forms.formInfo.$valid && updateItemMailAccount()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formInfo.name.$touched || forms.formInfo.$submitted) && forms.formInfo.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="(forms.formInfo.name.$touched || forms.formInfo.$submitted) && forms.formInfo.name.$invalid && forms.formInfo.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<!-- START EMAIL -->\n							<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.formInfo.address.$touched || forms.formInfo.$submitted) && forms.formInfo.address.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="address" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="account.address" required/>\n								<span data-ng-show="(forms.formInfo.infoEmail.$touched || forms.formInfo.$submitted) && forms.formInfo.address.$invalid && forms.formInfo.address.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div> -->\n							<!-- END EMAIL -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.formIn" data-ng-submit="forms.formIn.$valid && updateItemMailServerIn()" novalidate>\n							<!-- START PROTOCOL -->\n							<!-- <div class="form-group">\n								<label class="control-label">IMAP/POP3</label>\n								<button type="button" name="protocol" class="btn btn-default form-control" data-ng-model="account.MailServerIn.protocol" bs-checkbox>{{account.MailServerIn.protocol ? \'IMAP\' : \'POP3\'}}</button>\n							</div> -->\n							<!-- END PROTOCOL -->\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.host" required/>\n								<span data-ng-show="(forms.formIn.host.$touched || forms.formIn.$submitted) && forms.formIn.host.$invalid && forms.formIn.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.username" name="username" required/>\n								<span data-ng-show="(forms.formIn.username.$touched || forms.formIn.$submitted) && forms.formIn.username.$invalid && forms.formIn.username.$error.required"  class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.password" required/>\n								<span data-ng-show="(forms.formIn.password.$touched || forms.formIn.$submitted) && forms.formIn.password.$invalid && forms.formIn.password.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.port" required/>\n								<span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formIn.port.$touched || forms.formIn.$submitted) && forms.formIn.port.$invalid && forms.formIn.port.$error.number" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START MAILBOX -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n								<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="account.MailServerIn.mailbox"/>\n							</div>\n							<!-- END MAILBOX -->\n\n							<!-- START SEARCH FILTER -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n								<ui-select data-ng-model="account.MailServerIn.filter" name="filter" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n										<div ng-bind-html="filter | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<!-- <input type="text" name="filter" placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}" class="form-control" data-ng-model="forms.formIn.form.filter"/> -->\n							</div>\n							<!-- START SEARCH FILTER -->\n\n							<!-- START DELETE -->\n							<div class="form-group" data-ng-show="account.MailServerIn.protocol">\n								<label class="control-label">{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}</label><br>\n								<!-- <button type="button" name="delete"  class="btn btn-default form-control" data-ng-model="account.MailServerIn.delete" btn-checkbox> {{account.MailServerIn.delete ? $translate.instant(\'APPLICATION_YES\') : $translate.instant(\'APPLICATION_NO\') | uppercase}} </button> -->\n								<input\n									bs-switch\n									ng-model="account.MailServerIn.delete"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END DELETE -->\n\n							<!-- START SSL -->\n							<div class="form-group">\n								<label class="control-label">SSL</label><br>\n								<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="account.MailServerIn.ssl" btn-checkbox> {{account.MailServerIn.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n								<input\n									bs-switch\n									ng-model="account.MailServerIn.ssl"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END SSL -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_3">\n						<form name="forms.formOut" data-ng-submit="forms.formOut.$valid && updateItemMailServerOut()" novalidate>\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.host" required/>\n								<span data-ng-show="(forms.formOut.host.$touched || forms.formOut.$submitted) && forms.formOut.host.$invalid && forms.formOut.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.username" required/>\n								<span data-ng-show="(forms.formOut.username.$touched || forms.formOut.$submitted) && forms.formOut.username.$invalid && forms.formOut.username.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.password" required/>\n								<span data-ng-show="(forms.formOut.password.$touched || forms.formOut.$submitted) && forms.formOut.password.$invalid && forms.formOut.password.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.formOut.port.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="account.MailServerOut.port" required/>\n								<span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formOut.form.$touched || forms.formOut.$submitted) && forms.formOut.port.$invalid && forms.formOut.port.$error.number" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START SSL -->\n							<div class="form-group">\n								<label class="control-label">SSL</label><br>\n								<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="account.MailServerOut.ssl" btn-checkbox> {{account.MailServerOut.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n								<input\n									bs-switch\n									ng-model="account.MailServerOut.ssl"\n									type="checkbox"\n									switch-active="{{ isActive }}"\n									switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n									switch-on-color="{{ onColor }}"\n									switch-off-color="{{ offColor }}"\n									switch-animate="{{ animate }}"\n									switch-size="{{ size }}"\n									switch-label="{{ label }}"\n									switch-icon="{{ icon }}"\n									switch-radio-off="{{ radioOff }}"\n									switch-label-width="{{ labelWidth }}"\n									switch-handle-width="{{ handleWidth }}">\n							</div>\n							<!-- END SSL -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/account/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-notebook"></i>\n					<a href="/mail/accounts/list">{{ \'APPLICATION_ACCOUNTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="info.name" required/>\n									<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="info.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<!-- START EMAIL -->\n								<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid}">\n									<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="email" name="address" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="info.address" required/>\n									<span data-ng-show="(forms.info.address.$touched || forms.info.$submitted) && forms.info.address.$invalid && forms.info.address.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div> -->\n								<!-- END EMAIL -->\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="IMAP" canexit="formValidation(forms.in.$valid)">\n							<form name="forms.in" novalidate>\n								<!-- START PROTOCOL -->\n								<!-- <div class="form-group">\n									<label class="control-label">IMAP/POP3</label>\n									<button type="button" name="protocol" class="btn btn-default form-control" data-ng-model="in.protocol" bs-checkbox>{{in.protocol ? \'IMAP\' : \'POP3\'}}</button>\n								</div> -->\n								<!-- END PROTOCOL -->\n\n								<!-- START HOST -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid}">\n									<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="in.host" required/>\n									<span data-ng-show="(forms.in.host.$touched || forms.in.$submitted) && forms.in.host.$invalid && forms.in.host.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END HOST -->\n\n								<!-- START USERNAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid}">\n									<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="in.username" name="username" required/>\n									<span data-ng-show="(forms.in.username.$touched || forms.in.$submitted) && forms.in.username.$invalid && forms.in.username.$error.required"  class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END USERNAME -->\n\n								<!-- START PASSWORD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="in.password" required/>\n									<span data-ng-show="(forms.in.password.$touched || forms.in.$submitted) && forms.in.password.$invalid && forms.in.password.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PASSWORD -->\n\n								<!-- START PORT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="in.port" required/>\n									<span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n									<span data-ng-show="(forms.in.port.$touched || forms.in.$submitted) && forms.in.port.$invalid && forms.in.port.$error.number" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PORT -->\n\n								<!-- START MAILBOX -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}</label>\n									<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="in.mailbox"/>\n								</div>\n								<!-- END MAILBOX -->\n\n								<!-- START SEARCH FILTER -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_SEARCH_FILTER\' | translate}}</label>\n									<ui-select data-ng-model="in.filter" name="filter" theme="bootstrap">\n				            <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n				            <ui-select-choices repeat="filter in [\'UNSEEN\'] | filter: $select.search">\n				              <div data-ng-bind="filter | highlight: $select.search"></div>\n				            </ui-select-choices>\n				          </ui-select>\n									<!-- <input type="text" name="filter" placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}" class="form-control" data-ng-model="in.filter"/> -->\n								</div>\n								<!-- START SEARCH FILTER -->\n\n								<!-- START DELETE -->\n								<div class="form-group" data-ng-show="in.protocol">\n									<label class="control-label">{{\'APPLICATION_DELETE_MAIL_FROM_SERVER\' | translate}}</label><br>\n									<!-- <button type="button" name="delete"  class="btn btn-default form-control" data-ng-model="in.delete" btn-checkbox> {{in.delete ? $translate.instant(\'APPLICATION_YES\') : $translate.instant(\'APPLICATION_NO\') | uppercase}} </button> -->\n									<input\n										bs-switch\n										ng-model="in.delete"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n								</div>\n								<!-- END DELETE -->\n\n								<!-- START SSL -->\n								<div class="form-group">\n									<label class="control-label">SSL</label><br>\n									<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="in.ssl" btn-checkbox> {{in.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n									<input\n										bs-switch\n										ng-model="in.ssl"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n								</div>\n								<!-- END SSL -->\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n							</form>\n						</wz-step>\n						<wz-step title="SMTP" canexit="formValidation(forms.out.$valid)">\n							<form name="forms.out" novalidate>\n\n								<!-- START HOST -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid}">\n									<label class="control-label">{{\'APPLICATION_HOST\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="out.host" required/>\n									<span data-ng-show="(forms.out.host.$touched || forms.out.$submitted) && forms.out.host.$invalid && forms.out.host.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END HOST -->\n\n								<!-- START USERNAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid}">\n									<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="username" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="out.username" required/>\n									<span data-ng-show="(forms.out.username.$touched || forms.out.$submitted) && forms.out.username.$invalid && forms.out.username.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END USERNAME -->\n\n								<!-- START PASSWORD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="out.password" required/>\n									<span data-ng-show="(forms.out.password.$touched || forms.out.$submitted) && forms.out.password.$invalid && forms.out.password.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PASSWORD -->\n\n								<!-- START PORT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.out.port.$touched || forms.out.$submitted) && forms.out.port.$invalid}">\n									<label class="control-label">{{\'APPLICATION_PORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<input type="number" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="out.port" required/>\n									<span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n									<span data-ng-show="(out.$touched || forms.out.$submitted) && forms.out.port.$invalid && forms.out.port.$error.number" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_NUMERIC_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END PORT -->\n\n								<!-- START SSL -->\n								<div class="form-group">\n									<label class="control-label">SSL</label><br>\n									<!-- <button type="button" name="ssl"  class="btn btn-default form-control" data-ng-model="out.ssl" btn-checkbox> {{out.ssl ? $translate.instant(\'APPLICATION_ENABLED\') : $translate.instant(\'APPLICATION_DISABLED\') | uppercase}} </button> -->\n									<input\n										bs-switch\n										ng-model="out.ssl"\n										type="checkbox"\n										switch-active="{{ isActive }}"\n										switch-on-text="{{ \'APPLICATION_ENABLED\' | translate }}"\n										switch-off-text="{{ \'APPLICATION_DISABLED\' | translate }}"\n										switch-on-color="{{ onColor }}"\n										switch-off-color="{{ offColor }}"\n										switch-animate="{{ animate }}"\n										switch-size="{{ size }}"\n										switch-label="{{ label }}"\n										switch-icon="{{ icon }}"\n										switch-radio-off="{{ radioOff }}"\n										switch-label-width="{{ labelWidth }}"\n										switch-handle-width="{{ handleWidth }}">\n								</div>\n								<!-- END SSL -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n								<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n							</form>\n						</wz-step>\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/mail/automation/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-settings"></i>\n						<a href="#">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailAutomations.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_AUTOMATION\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/automations/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailAutomations([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="mail_automations.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailAutomations" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.mailAutomationsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="mailAutomationByPage in mailAutomationsByPage | filter: $select.search">\n													<div ng-bind-html="mailAutomationByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(mailAutomation, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="mailAutomation in displayedMailAutomations">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailAutomations.checked" checklist-value="mailAutomation.id"></td>\n					      <td>{{mailAutomation.name}}</td>\n								<td>{{mailAutomation.description}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(mailAutomation.id, mailAutomation.status)",\n								    bs-switch\n								    ng-model="mailAutomation.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/mail/automations/view/{{mailAutomation.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(mailAutomation.name, mailAutomation.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailAutomations.length">\n								<td colspan="6" class="text-center">\n									<i>No available automations</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.mailAutomationsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/mail/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="automation"></i>\n				</li>\n				<li data-ng-show="automation">\n					<a href="#">{{ automation.description || automation.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/automation.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ automation.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{automation.description}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.automations.view.settings\')}">\n							<a href="/mail/automations/view/{{automation.id}}/settings">\n							<i class="icon-settings"></i>\n							{{\'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/automation/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">OR {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">AND {{\'APPLICATION_CONDITIONS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_4" data-toggle="tab">{{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="forms.info.$valid && updateAutomation()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="automation.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="automation.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n					<!-- IMAP TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'or\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'or\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n					<!-- END IMAP TAB -->\n\n					<div class="tab-pane" id="tab_1_3">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewCondition(\'and\')">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="condition in automation.BusinessConditions | filter: {type: \'and\'}">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.condition" name="conditionAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="condition.key as condition in automations.conditions | filter: $select.search">\n													<div data-ng-bind="condition.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3">\n										<div class="form-group">\n											<ui-select data-ng-model="condition.operator" name="operatorAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'operator\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="operator.key as operator in getOperatorsByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="operator.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-4" data-ng-switch="condition.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="condition.attribute" name="attributeAnd{{$index}}" theme="bootstrap" on-select="updateCondition(condition.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(condition.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" name="attributeOr{{$index}}" value="" data-ng-model="condition.attribute" data-ng-blur="updateCondition(condition.id, \'attribute\', condition.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n											<span data-ng-show="forms.and.attributeAnd{{$index}}.$invalid && forms.and.attributeAnd{{$index}}.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeCondition(condition.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessConditions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n					</div>\n\n					<!-- SMTP TAB -->\n					<div class="tab-pane" id="tab_1_4">\n						<div class="row">\n							<div class="col-md-12">\n								<a href="#" data-ng-click="addNewAction()">\n									<i class="icon-plus"></i>\n								</a>\n								<i class="icon-people"></i>\n								<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n							</div>\n						</div>\n						<div class="row" data-ng-repeat="action in automation.BusinessActions">\n							<div class="col-md-12">\n								<div class="row">\n									<div class="col-md-12">\n										<hr>\n									</div>\n								</div>\n								<div class="row">\n									<div class="col-md-4">\n										<div class="form-group">\n											<ui-select data-ng-model="action.condition" theme="bootstrap" on-select="updateAction(action.id, \'condition\', $item.key)" required>\n												<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="action.key as action in automations.actions | filter: $select.search">\n													<div data-ng-bind="action.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n									<div class="col-md-3" data-ng-switch="action.condition">\n										<div class="form-group" data-ng-switch-when="status">\n											<ui-select data-ng-model="action.attribute" theme="bootstrap" on-select="updateAction(action.id, \'attribute\', $item.key)" required>\n												<ui-select-match>{{$select.selected.value}}</ui-select-match>\n												<ui-select-choices repeat="attribute.key as attribute in getAttributesByCondition(action.condition) | filter: $select.search">\n													<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="form-group" data-ng-switch-when="createdAt">\n											<input class="form-control" type="text" data-ng-model="action.attribute" data-ng-blur="updateAction(action.id, \'attribute\', action.attribute)" data-ng-class="{\'has-error\': forms.and.attributeAnd{{$index}}.$invalid}" required>\n										</div>\n									</div>\n									<div class="col-md-4">\n									</div>\n									<div class="col-md-1">\n										<a href="#" data-ng-click="removeAction(action.id)">\n											<i class="icon-close"></i>\n										</a>\n									</div>\n								</div>\n							</div>\n						</div>\n						<div class="row" data-ng-hide="automation.BusinessActions.length">\n							<div class="col-md-12 text-center">\n								<hr>\n								<i>Add condition</i>\n							</div>\n						</div>\n\n					</div>\n					<!-- END SMTP TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/automation/wizard/wizard.html",'\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-settings"></i>\n					<a href="/mail/automations/list">{{ \'APPLICATION_AUTOMATIONS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-settings font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_AUTOMATIONS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_NEW_AUTOMATION\' | translate}}" canexit="formValidation(forms.automation.$valid)">\n						<form name="forms.automation" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.name.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<input class="form-control" type="text" name="name" value="" data-ng-model="automations.name" required>\n										<span data-ng-show="forms.automation.name.$invalid && forms.automation.name.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n\n									<div class="form-group" data-ng-class="{\'has-error\': forms.automation.description.$invalid && forms.automation.$submitted}">\n										<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n										<input class="form-control" type="text" name="description" value="" data-ng-model="automations.description">\n										<span data-ng-show="forms.automation.description.$invalid && forms.automation.description.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<hr>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'or\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-user"></i>\n									<span class="caption-subject">Meet <strong>any</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.or">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionOr{{$index}}.$invalid && forms.automation.$submitted && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].condition" name="conditionOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.or[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionOr{{$index}}.$invalid && forms.automation.conditionOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorOr{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].operator" name="operatorOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.or[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorOr{{$index}}.$invalid && forms.automation.operatorOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.or[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.or[$index].attribute" name="attributeOr{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.or[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeOr{{$index}}" value="" data-ng-model="automations.or[$index].attribute" required>\n												<span data-ng-show="forms.automation.attributeOr{{$index}}.$invalid && forms.automation.attributeOr{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'or\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.or.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'and\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-people"></i>\n									<span class="caption-subject">Meet <strong>all</strong> of the following conditions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.and">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].condition" name="conditionAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="condition in automations.and[$index].conditions | filter: $select.search">\n														<div data-ng-bind="condition.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.conditionAnd{{$index}}.$invalid && forms.automation.conditionAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].operator" name="operatorAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="operator.key as operator in automations.and[$index].condition.operators | filter: $select.search">\n														<div data-ng-bind="operator.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.operatorAnd{{$index}}.$invalid && forms.automation.operatorAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4" data-ng-switch="automations.and[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.and[$index].attribute" name="attributeAnd{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.and[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number">\n												<input class="form-control" type="text" min="0" name="attributeAnd{{$index}}" value="" data-ng-model="automations.and[$index].attribute" data-ng-class="{\'has-error\': forms.automation.attributeAnd{{$index}}.$invalid}" required>\n												<span data-ng-show="forms.automation.attributeAnd{{$index}}.$invalid && forms.automation.attributeAnd{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'and\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.and.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add condition</i>\n								</div>\n							</div>\n\n							<div class="row">\n								<div class="col-md-12">\n									<a href="#" data-ng-click="addNewChoice(\'actions\')">\n										<i class="icon-plus"></i>\n									</a>\n									<i class="icon-magic-wand"></i>\n									<span class="caption-subject">Perform these actions:</a> </span>\n								</div>\n							</div>\n							<div class="row" data-ng-repeat="automation in automations.actions">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-12">\n											<hr>\n										</div>\n									</div>\n									<div class="row">\n										<div class="col-md-4">\n											<div class="form-group" data-ng-class="{\'has-error\': forms.actions.conditionAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].condition" name="conditionAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match placeholder="-- Click to select condition. --">{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="action in automations.actions[$index].actions | filter: $select.search">\n														<div data-ng-bind="action.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.conditionAction{{$index}}.$invalid && forms.actions.conditionAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-3" data-ng-switch="automations.actions[$index].condition.input">\n											<div class="form-group" data-ng-switch-when="ui-select" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid && forms.automation.$submitted}">\n												<ui-select data-ng-model="automations.actions[$index].attribute" name="attributeAction{{$index}}" theme="bootstrap" required>\n													<ui-select-match>{{$select.selected.value}}</ui-select-match>\n													<ui-select-choices repeat="attribute.key as attribute in automations.actions[$index].condition.attributes | filter: $select.search">\n														<div data-ng-bind="attribute.value | highlight: $select.search"></div>\n													</ui-select-choices>\n												</ui-select>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n											<div class="form-group" data-ng-switch-when="number" data-ng-class="{\'has-error\': forms.actions.attributeAction{{$index}}.$invalid}">\n												<input class="form-control" type="text" min="0" name="attributeAction{{$index}}" value="" data-ng-model="automations.actions[$index].attribute" required>\n												<span data-ng-show="forms.actions.attributeAction{{$index}}.$invalid && forms.actions.attributeAction{{$index}}.$error.required && forms.automation.$submitted" class="help-block help-block-error">\n													<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n												</span>\n											</div>\n										</div>\n										<div class="col-md-4">\n										</div>\n										<div class="col-md-1">\n											<a href="#" data-ng-click="removeChoice(\'actions\', $index)">\n												<i class="icon-close"></i>\n											</a>\n										</div>\n									</div>\n								</div>\n							</div>\n							<div class="row" data-ng-hide="automations.actions.length">\n								<div class="col-md-12 text-center">\n									<hr>\n									<i>Add action</i>\n								</div>\n							</div>\n							<div class="row">\n								<div class="col-md-12">\n									<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n								</div>\n							</div>\n						</form>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/mail/inbox/compose/compose.html",'<form class="inbox-compose form-horizontal" id="fileupload" enctype="multipart/form-data" data-ng-init="getMessage()">\n	<pre>\n		{{mailAccounts | json}}\n	</pre>\n	<div class="inbox-compose-btn">\n		<button data-ng-click="sendMailMessage()" class="btn blue"><i class="fa fa-check"></i>{{\'APPLICATION_SEND\' | translate}}</button>\n		<button class="btn inbox-discard-btn" data-ng-click="discard()">{{\'APPLICATION_DISCARD\' | translate}}</button>\n		<button class="btn" data-ng-click="saveMessageAsDraft()">{{\'APPLICATION_SAVE_AS_DRAFT\' | translate}}</button>\n		<span class="message-info"><i>{{form.message}}</i></span>\n	</div>\n	<div class="inbox-form-group">\n		<label class="control-label">{{\'APPLICATION_FROM\' | translate}}: </label>\n		<div class="controls">\n			<ui-select data-ng-model="form.body.from" theme="bootstrap">\n        <ui-select-match placeholder="Select an account">{{$select.selected.name}} <{{$select.selected.address}}></ui-select-match>\n        <ui-select-choices repeat="account in mailAccounts | filter: $select.search">\n          <div ng-bind-html="account.name | highlight: $select.search"></div>\n          <small ng-bind-html="account.address | highlight: $select.search"></small>\n        </ui-select-choices>\n      </ui-select>\n		</div>\n	</div>\n	<div class="inbox-form-group mail-to">\n		<label class="control-label">{{\'APPLICATION_TO\' | translate}}: </label>\n		<div class="controls controls-to">\n			<input type="text" class="form-control" name="to" data-ng-model="form.body.to.address">\n			<span class="inbox-cc-bcc">\n			<span class="inbox-cc" data-ng-show="!flagCC" data-ng-click="switchFlagCC()">\n			Cc </span>\n			<span class="inbox-bcc" data-ng-show="!flagBCC" data-ng-click="switchFlagBCC()">\n			{{\'APPLICATION_BCC\' | translate}} </span>\n			</span>\n		</div>\n	</div>\n	<div class="inbox-form-group input-cc" data-ng-class="{\'display-hide\': !flagCC}">\n		<a href="javascript:;" class="close" data-ng-click="switchFlagCC()">\n		</a>\n		<label class="control-label">Cc:</label>\n		<div class="controls controls-cc">\n			<input type="text" name="cc" class="form-control" data-ng-model="form.body.cc.address">\n		</div>\n	</div>\n	<div class="inbox-form-group input-bcc" data-ng-class="{\'display-hide\': !flagBCC}">\n		<a href="javascript:;" class="close" data-ng-click="switchFlagBCC()">\n		</a>\n		<label class="control-label">{{\'APPLICATION_BCC\' | translate}}:</label>\n		<div class="controls controls-bcc">\n			<input type="text" name="bcc" class="form-control" data-ng-model="form.body.bcc.address">\n		</div>\n	</div>\n	<div class="inbox-form-group">\n		<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}: </label>\n		<div class="controls">\n			<input type="text" class="form-control" name="subject" data-ng-model="form.subject">\n		</div>\n	</div>\n	<div class="inbox-form-group">\n		<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html"></div>\n	</div>\n	<div class="inbox-compose-btn">\n		<button data-ng-click="sendMailMessage()" class="btn blue"><i class="fa fa-check"></i>{{\'APPLICATION_SEND\' | translate}}</button>\n		<button class="btn" data-ng-click="discard()">{{\'APPLICATION_DISCARD\' | translate}}</button>\n		<button class="btn" data-ng-click="saveMessageAsDraft()">{{\'APPLICATION_DRAFT\' | translate}}</button>\n	</div>\n</form>\n'),a.put("app/mail/inbox/inbox.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-note"></i>\n					<a href="/mail/inbox/incoming">{{ \'APPLICATION_INBOX\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n<div class="row inbox">\n	<div class="col-md-12" ui-view>\n	</div>\n</div>\n'),a.put("app/mail/inbox/incoming/incoming.html",'<div class="row inbox">\n	<div class="col-md-12">\n		<div class="inbox-header">\n			<h1 class="pull-left">Inbox</h1>\n			<form class="form-inline pull-right" action="#">\n				<!-- <div class="input-group input-medium">\n					<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search">\n					<span class="input-group-btn">\n					<button type="submit" class="btn green"><i class="fa fa-search"></i></button>\n					</span>\n				</div> -->\n			</form>\n		</div>\n		<div class="inbox-content">\n			<table class="table table-striped table-advance table-hover" st-table="displayedMailRooms" st-pipe="initList">\n				<thead>\n					<tr>\n						<th colspan="9">\n							<input type="checkbox" ng-change="check(null, checked)" checklist-model checklist-value="id">\n							<div class="btn-group">\n								<a data-ng-href="/mail/inbox/compose" class="btn btn-sm blue">\n									<i class="icon-plus"></i> {{\'APPLICATION_NEW_MESSAGE\' | translate}}\n								</a>\n							</div>\n							<div class="btn-group" data-ng-show="mailRooms.checked.length">\n								<a href="#" class="btn btn-sm red" data-ng-click="deleteItems()">\n									<i class="icon-trash"></i> {{\'APPLICATION_DELETE\' | translate}}\n								</a>\n							</div>\n							<div class="input-group input-medium pull-right">\n								<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n								<span class="input-group-addon">\n									<i class="fa fa-search"></i>\n								</span>\n							</div>\n						</th>\n						<!-- <th class="pagination-control" colspan="7"> -->\n							<!-- <span class="pagination-info">\n							1-30 of 789 </span>\n							<a class="btn btn-sm blue">\n							<i class="fa fa-angle-left"></i>\n							</a>\n							<a class="btn btn-sm blue">\n							<i class="fa fa-angle-right"></i>\n							</a> -->\n						<!-- </th> -->\n					</tr>\n				</thead>\n				<tbody>\n					<tr data-messageid="1" data-ng-repeat="mailRoom in displayedMailRooms" class="animate-repeat">\n						<td class="inbox-small-cells">\n							<input type="checkbox" checklist-model="mailRooms.checked" checklist-value="mailRoom.id">\n						</td>\n						<td class="inbox-small-cells" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							#{{mailRoom.id}}\n						</td>\n						<td class="view-message hidden-xs" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n						 {{mailRoom.subject}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							{{mailRoom.from}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							{{mailRoom.MailAccount.description ? mailRoom.MailAccount.description : mailRoom.MailAccount.name || \'APPLICATION_UNKNOWN\' | translate | uppercase}}\n						</td>\n						<td class="view-message" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							<span class="badge badge-success badge-roundless" data-ng-show="mailRoom.User.fullname"> {{mailRoom.User.fullname}} </span>\n							<span class="badge badge-default badge-roundless" data-ng-hide="mailRoom.User.fullname"> UNASSIGNED </span>\n						</td>\n						<td class="view-message" data-ng-switch="mailRoom.status" data-ng-click="go(\'/mail/inbox/room/\' + mailRoom.id, mailRoom.id, \'OPEN\')">\n							<span class="badge badge-default" data-ng-class="{\n							\'badge-danger\': mailRoom.status == \'NEW\',\n							\'badge-warning\': mailRoom.status == \'OPEN\',\n							\'badge-info\': mailRoom.status == \'PENDING\',\n							\'badge-success\': mailRoom.status == \'CLOSED\'}"> {{mailRoom.status | uppercase}} </span>\n						</td>\n						<td class="view-message inbox-small-cells">\n							<i data-ng-show="mailRoom.attachment" class="fa fa-paperclip"></i>\n						</td>\n						<td class="view-message pull-right">\n							<time is="relative-time" datetime="{{mailRoom.updatedAt}}">\n								April 1, 2014\n							</time>\n						</td>\n					</tr>\n					<tr data-ng-hide="displayedMailRooms.length">\n						<td colspan="9" style="text-align:center;">\n							<i>{{ \'MESSAGE_NO_AVAILABLE_CONVERSATIONS\' | translate }}</i>\n						</td>\n					</tr>\n				</tbody>\n				<tfoot>\n					<tr>\n						<td colspan="9" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.mailRoomsByPage.value" st-displayed-pages="7"></div>\n						</td>\n					</tr>\n				</tfoot>\n			</table>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/inbox/room/room.html",'<!-- BEGIN TODO CONTENT -->\n<div class="todo-content" data-ng-init="initRoomView()">\n	<div class="portlet light">\n		<!-- PROJECT HEAD -->\n		<div class="portlet-title">\n			<div class="caption" data-ng-show="mailRoom">\n				<i class="icon-bar-chart font-green-sharp hide"></i>\n				<span class="badge badge-default" data-ng-class="{\'badge-error\': mailRoom.status == \'NEW\',\n				\'badge-warning\': mailRoom.status == \'OPEN\',\n				\'badge-info\': mailRoom.status == \'PENDING\',\n				\'badge-success\': mailRoom.status == \'CLOSED\'}"> {{mailRoom.status | uppercase}} </span> -\n				<span class="caption-subject font-green-sharp bold uppercase">{{mailRoom.subject}}</span>\n			</div>\n			<div class="actions" data-ng-show="mailRoom">\n				<div class="btn-group" data-ng-show="Auth.isAdmin()">\n					<a class="btn grey-salsa btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_ASSIGN\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li data-ng-repeat="agent in agents">\n							<a href="#" data-ng-click="assignAgent(agent.id)">\n							{{agent.fullname}} <span class="badge badge-default"> {{agent.fullname | uppercase | limitTo : 1}} </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n				<div class="btn-group">\n					<a class="btn green-haze btn-circle btn-sm" href="#" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n					{{ \'APPLICATION_SUBMIT\' | translate }} <i class="fa fa-angle-down"></i>\n					</a>\n					<ul class="dropdown-menu pull-right">\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'PENDING\')">\n							{{ \'STATUS_NEW\' | translate | uppercase }} <span class="badge badge-danger">{{ \'STATUS_NEW\' | translate | uppercase | limitTo : 1 }} </span>\n							</a>\n						</li>\n						<li>\n							<a href="#" data-ng-click="updateStatus(\'CLOSED\')">\n							{{ \'STATUS_CLOSED\' | translate | uppercase }} <span class="badge badge-success">{{ \'STATUS_CLOSED\' | translate | uppercase | limitTo : 1 }} </span>\n							</a>\n						</li>\n					</ul>\n				</div>\n			</div>\n		</div>\n		<!-- end PROJECT HEAD -->\n		<div class="portlet-body">\n			<div class="row">\n				<div data-ng-show="mailRoom" data-ng-class="{\'col-md-7 col-sm-7\': mailRoom}">\n					<div class="scroller" id="mailMessages" style="height: 500px; overflow-y: scroll; width: auto;" data-always-visible="1" data-rail-visible1="1" data-initialized="1">\n						<ul class="chats">\n							<li data-ng-class="{\'in\': mailMessage.status == \'RECEIVED\', \'out\': mailMessage.status == \'SENT\' || mailMessage.status == \'SENDING\' || mailMessage.status == \'FAILED\'}" data-ng-repeat="mailMessage in mailRoom.MailMessages | orderBy:\'createdAt\'">\n							<img class="avatar" alt="" data-ng-src="api/users/avatar/{{getCurrentUser().userpic && mailMessage.status === \'SENT\' ? getCurrentUser().userpic : \'unknown_avatar\'}}">\n							<div class="message">\n								<span class="arrow">\n								</span>\n								<span class="bold">From: </span>\n								<!-- <span>{{mailMessage.From.fullname}} </span> -->\n								<span>{{mailMessage.from}}</span>\n								<br>\n								<span class="bold">To: </span>\n								<span>{{mailMessage.to}} </span>\n								<br>\n								<span data-ng-show="mailMessage.cc" class="bold">Cc: </span>\n								<span data-ng-show="mailMessage.cc">{{mailMessage.cc}} </span>\n								<br data-ng-show="mailMessage.cc">\n								<span class="todo-tasklist-date">\n									<i class="fa fa-calendar"></i>\n									<time is="relative-time" datetime="{{mailMessage.createdAt}}">\n										April 1, 2014\n									</time>\n								</span>\n								<!-- <p data-ng-class="{\'text-danger\': mailMessage.status === \'FAILED\'}">{{mailMessage.status}}</p> -->\n								<br><br>\n								<span class="body" data-ng-bind-html="mailMessage.html || mailMessage.text" style="white-space: pre-wrap;">\n								</span>\n								<br>\n								<div data-ng-repeat="mailAttachment in mailMessage.MailAttachments">\n									<strong>{{mailAttachment.fileName}}</strong>\n									<span>\n									{{mailAttachment.length}}B </span>\n									<a target="_self" download="{{mailAttachment.fileName}}" href="api/mail/attachments/{{mailAttachment.id}}">\n										{{ \'APPLICATION_DOWNLOAD\' | translate }}\n									</a>\n								</div>\n							</div>\n						</li>\n						</ul>\n					</div>\n				</div>\n				<div data-ng-class="{\'col-md-5 col-sm-5\': mailRoom, \'col-md-12 col-sm-12\': !mailRoom}">\n					<form name="forms.compose" data-ng-submit="forms.compose.$valid && sendMail()" class="form-horizontal" novalidate>\n						<!-- START HEAD -->\n						<div class="form">\n							<div class="form-group">\n								<div class="col-md-12 col-sm-12">\n									<div class="todo-taskbody-user">\n										<img class="todo-userpic pull-left" data-ng-src="api/users/avatar/{{getCurrentUser().userpic ? getCurrentUser().userpic : \'unknown_avatar\'}}" width="50px" height="50px">\n										<span class="todo-username pull-left">{{ getCurrentUser().fullname }}</span>\n									</div>\n								</div>\n							</div>\n\n							<!-- START FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.from.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">From:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n												<ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n												<!-- <ui-select-match placeholder="From...">{{$select.selected.name}} - {{$select.selected.address}}</ui-select-match> -->\n												<ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n													<div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n													<small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.from.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END FROM -->\n\n							<!-- FAX TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.to.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">To:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n												<ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.compose.to.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END TO -->\n\n							<!-- START CC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Cc:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n												<ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="cc in form.cc">\n													{{cc}}\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END CC -->\n\n							<!-- START SUBJECT -->\n							<div data-ng-hide="mailRoom" class="form-group" data-ng-class="{\'has-error\': forms.compose.subject.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Subject:</label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="Subject..." rows="8" data-ng-model="form.subject">\n											<span data-ng-show="forms.compose.subject.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END SUJBECT -->\n\n							<!-- START HTML -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.compose.text.$invalid && forms.compose.$submitted}">\n								<div class="col-md-12">\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n										<span data-ng-show="forms.compose.text.$invalid && forms.compose.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n								</div>\n							</div>\n							<!-- END HTML -->\n\n							<!-- START ATTACH -->\n							<div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div>\n							<!-- END ATTACH -->\n\n						</div>\n					</form>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n<!-- END TODO CONTENT -->\n'),a.put("app/mail/queue/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="/square/projects">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-layers"></i>\n						<a href="#">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailQueues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailQueues([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th>\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedMailQueues">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailQueues.checked" checklist-value="queue.id"></td>\n					      <td>{{queue.name}}</td>\n								<td>{{queue.description}}</td>\n								<td>{{queue.strategy | uppercase}}</td>\n								<td>{{queue.timeout}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/queues/view/{{queue.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name, queue.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailQueues.length">\n								<td colspan="6" class="text-center">\n									<i>No available queues</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="teams.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n					</p>\n				</div>\n				<div  style="width: 50%; margin: 0 auto;">\n					<div class="col-md-9" id="multi-select-team" data-ng-show="teams.length"></div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.queues.view.settings\')}">\n							<a data-ng-href="/mail/queues/view/{{queue.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.mail.queues.view.agents\')}">\n							<a data-ng-href="/mail/queues/view/{{queue.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.general" data-ng-submit="forms.general.$valid && updateMailQueue()" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n						<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n						<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="queue.name" required/>\n						<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n							<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n						</span>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"/>\n					</div>\n					<!-- END DESCRIPTION -->\n\n					<!-- START TIMEOUT -->\n					<div class="form-group">\n						<label class="control-label">Agent Timeout</label>\n						<input type="number" name="timeout" placeholder="Timeout" class="form-control" min="1" data-ng-model="queue.timeout"/>\n					</div>\n					<!-- END TIMEOUT -->\n\n					<!-- START HEADER SHAPE -->\n					<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n						<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}</label>\n						<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap">\n							<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n							<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n								<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n					</div>\n					<!-- END HEADER SHAPE -->\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/mail/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-layers"></i>\n				<a href="/mail/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n					<form name="forms.general" data-ng-submit="forms.general.$valid && createItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<!-- START TIMEOUT -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n							<label class="control-label">{{\'APPLICATION_AGENT_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" min="0" name="timeout" placeholder="Timeout" class="form-control" data-ng-model="item.timeout" required/>\n							<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid && forms.general.timeout.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END TIMEOUT -->\n\n						<!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'rrmemory\',\'beepall\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid && forms.general.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END STRATEGY -->\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CREATE\' | translate}}"/>\n					</form>\n			  </wz-step>\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{ \'APPLICATION_CONFIRM\' | translate }}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/mail/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n						<th st-sort="agentcalledAt" st-sort-default="reverse">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentringnoanswerAt">{{ \'APPLICATION_UNASWER_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': agent.lastevent === \'called\',\n								\'icon-user-following font-green\': agent.lastevent === \'agent\',\n								\'icon-user-unfollow font-red\': agent.lastevent === \'timeout\',\n								\'icon-user-unfollow font-blue\': agent.lastevent === \'answered_elsewhere\'}"></i>\n							</span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.mailqueuename}}</td>\n						<td>{{agent.fullname}}</td>\n						<td>{{agent.subject}}</td>\n						<td>{{agent.from}}</td>\n						<td>{{agent.accountname}}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectedAt}}" data-ng-show="agent.agentconnectedAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentringnoanswerAt}}" data-ng-show="agent.agentringnoanswerAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n						</td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/session/session.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initMails()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedMails" st-safe-src="sessions" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="12">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.sessionsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="sessionByPage in sessionsByPage | filter: $select.search">\n											<div ng-bind-html="sessionByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid" reverse class="input-small">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue" class="input-medium">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername" class="input-medium">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="subject" class="input-small">{{ \'APPLICATION_SUBJECT\' | translate }}</th>\n						<th st-sort="from" class="input-small">{{ \'APPLICATION_FROM\' | translate }}</th>\n						<th st-sort="accountname" class="input-small">{{ \'APPLICATION_TO\' | translate }}</th>\n						<th st-sort="sessioncalledAt" st-sort-default="reverse">{{ \'APPLICATION_JOIN_AT\' | translate }}</th>\n						<th st-sort="sessionconnectAt">{{ \'APPLICATION_LEAVE_AT\' | translate }}</th>\n						<th st-sort="sessionringnoanswerAt">{{ \'APPLICATION_UNMANAGED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="session in displayedMails">\n						<td>\n							<span>\n								<i data-ng-class="{\'icon-user font-yellow\': session.mailjoinAt && !session.mailleaveAt,\n								\'icon-user-following font-green\': session.fullname,\n								\'icon-user-unfollow font-red\': session.mailunmanagedAt}"></i>\n							</span>\n						</td>\n						<td>{{session.uniqueid}}</td>\n						<td>{{session.mailqueuename}}</td>\n						<td>{{session.fullname}}</td>\n						<td>{{session.subject}}</td>\n						<td>{{session.from}}</td>\n						<td>{{session.accountname}}</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailleaveAt}}" data-ng-show="session.mailleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{session.mailunmanagedAt}}" data-ng-show="session.mailunmanagedAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedMails.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No sessions available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SUBJECT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n						</td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="from" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FROM\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="accountname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_TO\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="12" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.sessionsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/mail/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n										<li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_SESSIONS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'sessions\'></tree>\n		                </li>\n		            </ul>\n		            <!-- <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul> -->\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="/agent">{{ \'APPLICATION_MAILS\' | translate }}</a>\n				</li>\n				<li>\n					<a href="#">{{agent.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/statistics.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{agent.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{agent.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.statistics.summary\')}">\n							<a data-ng-href="/mail/statistics/summary">\n							<i class="icon-bar-chart"></i>\n							{{ \'APPLICATION_SUMMARY\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/statistics/statistics.summary.html",'<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONVERSATIONS\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n					<div class="col-md-6">\n						<div class="portlet sale-summary">\n							<div class="portlet-body">\n								<ul class="list-unstyled">\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_INBOX\' | translate }} <i class="fa fa-img-up"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'INBOX\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_SENT\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'SENT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_OUTGOING\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'NOT SENT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_DRAFT\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'DRAFT\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_TRASH\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ directory:\'TRASH\' }).length }} </span>\n									</li>\n								</ul>\n							</div>\n						</div>\n					</div>\n					<div class="col-md-6">\n						<canvas class="chart chart-pie" data="[\n						(mailMessages | filter:{ directory:\'INBOX\' }).length,\n						(mailMessages | filter:{ directory:\'SENT\' }).length,\n						(mailMessages | filter:{ directory:\'NOT SENT\' }).length,\n						(mailMessages | filter:{ directory:\'DRAFT\' }).length,\n						(mailMessages | filter:{ directory:\'TRASH\' }).length]" labels="[\n						$translate.instant(\'APPLICATION_INBOX\'),\n						$translate.instant(\'APPLICATION_SENT\'),\n						$translate.instant(\'APPLICATION_OUTGOING\'),\n						$translate.instant(\'APPLICATION_DRAFT\'),\n						$translate.instant(\'APPLICATION_TRASH\')]" legend="true"></canvas>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n\n		<!-- BEGIN PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-pencil font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_OTHER_INFO\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="row">\n					<div class="col-md-6">\n						<div class="portlet sale-summary">\n							<div class="portlet-body">\n								<ul class="list-unstyled">\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_READ\' | translate }} <i class="fa fa-img-up"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ read:\'true\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_UNREAD\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ read:\'false\' }).length }} </span>\n									</li>\n									<li>\n										<span class="sale-info">\n										{{ \'APPLICATION_FAVORITE\' | translate }} <i class="fa fa-img-down"></i>\n										</span>\n										<span class="sale-num">\n										{{ (mailMessages | filter:{ favorite:\'true\' }).length }} </span>\n									</li>\n								</ul>\n							</div>\n						</div>\n					</div>\n					<div class="col-md-6">\n						<canvas class="chart chart-pie" data="[\n						(mailMessages | filter:{ read:\'true\' }).length,\n						(mailMessages | filter:{ read:\'false\' }).length]" labels="[\n						$translate.instant(\'APPLICATION_READ\'),\n						$translate.instant(\'APPLICATION_UNREAD\')]" legend="true"></canvas>\n					</div>\n				</div>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n'),a.put("app/mail/template/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="/square/projects">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-docs"></i>\n						<a href="#">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mailTemplates.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEMPLATE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/mail/templates/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMailTemplates([\'name\', \'description\', \'timeout\', \'strategy\'])" csv-header="[\'Name\', \'Description\', \'Timeout\', \'Strategy\']" field-separator=";" filename="mail_templates.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMailTemplates" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.templatesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queueByPage in templatesByPage | filter: $select.search">\n													<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(template, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<!-- <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="timeout">{{ \'APPLICATION_AGENT_TIMEOUT\' | translate }}</th> -->\n						    <th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="template in displayedMailTemplates">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mailTemplates.checked" checklist-value="template.id"></td>\n					      <td>{{template.name}}</td>\n								<td>{{template.description}}</td>\n								<!-- <td>{{template.strategy | uppercase}}</td>\n								<td>{{template.timeout}}</td> -->\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/mail/templates/view/{{template.id}}/settings">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(template.name, template.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMailTemplates.length">\n								<td colspan="6" class="text-center">\n									<i>No available templates</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<!-- <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td/> -->\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="67" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.templatesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/mail/template/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="teams.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n					</p>\n				</div>\n				<div  style="width: 50%; margin: 0 auto;">\n					<div class="col-md-9" id="multi-select-team" data-ng-show="teams.length"></div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/template/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initItem()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope"></i>\n					<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/mail/templates/list">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n					<i data-ng-show="item" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="item">\n					<a href="#">{{item.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/template.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{item.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.mail.templates.view.settings\')}">\n							<a data-ng-href="/mail/templates/view/{{item.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/mail/template/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<form name="forms.template" data-ng-submit="forms.template.$valid && updateItem()" class="form-horizontal" novalidate>\n					<!-- START NAME -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.name.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." rows="8" data-ng-model="item.name">\n									<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START DESCRIPTION -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.description.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="item.description">\n									<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END NAME -->\n\n					<!-- START FROM -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.from.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">From:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<ui-select data-ng-model="item.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n										<ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n											<div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n											<small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="forms.template.from.$invalid && forms.template.$submitted" class="help-block help-block-error">\n					          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					        </span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END FROM -->\n\n					<!-- FAX TO -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.to.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">To:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<ui-select tagging tagging-label="" multiple required data-ng-model="item.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n										<ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n										<ui-select-choices repeat="to in item.to | filter:$select.search">\n											{{to}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="forms.template.to.$invalid && forms.template.$submitted" class="help-block help-block-error">\n					          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n					        </span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END TO -->\n\n					<!-- START CC -->\n					<div class="form-group">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">Cc:</label>\n								</div>\n								<div class="col-md-11">\n									<ui-select tagging tagging-label="" multiple data-ng-model="item.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n										<ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n										<ui-select-choices repeat="cc in item.cc">\n											{{cc}}\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END CC -->\n\n					<!-- START SUBJECT -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.subject.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="row">\n								<div class="col-md-1">\n									<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}:<span class="required" aria-required="true">*</span></label>\n								</div>\n								<div class="col-md-11">\n									<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="item.subject">\n									<span data-ng-show="forms.template.subject.$invalid && forms.template.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n							</div>\n						</div>\n					</div>\n					<!-- END SUJBECT -->\n\n					<!-- START HTML -->\n					<div class="form-group" data-ng-class="{\'has-error\': forms.template.text.$invalid && forms.template.$submitted}">\n						<div class="col-md-12">\n							<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="item.html" name="html"></div>\n							<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n								<span data-ng-show="forms.template.text.$invalid && forms.template.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n						</div>\n					</div>\n					<!-- END HTML -->\n\n					<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n				</form>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/mail/template/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope"></i>\n				<a href="#">{{ \'APPLICATION_MAILS\' | translate }}</a>\n        <i class="fa fa-angle-right"></i>\n			</li>\n      <li>\n				<i class="icon-docs"></i>\n				<a href="/mail/templates/list">{{ \'APPLICATION_TEMPLATES\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_TEMPLATES\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n					<form name="forms.template" data-ng-submit="forms.template.$valid && saveTemplate()" class="form-horizontal" novalidate>\n						<!-- START HEAD -->\n						<div class="form">\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.name.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_NAME\' | translate}}:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_NAME\' | translate}}..." rows="8" data-ng-model="form.name">\n											<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.description.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}:</label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="name" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}..." rows="8" data-ng-model="form.description">\n											<span data-ng-show="forms.template.name.$invalid && forms.template.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START FROM -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.from.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">From:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<ui-select data-ng-model="form.from" theme="bootstrap" name="from" required ng-disabled="disabled">\n												<ui-select-match placeholder="From...">{{$select.selected.name}}</ui-select-match>\n												<!-- <ui-select-match placeholder="From...">{{$select.selected.name}} - {{$select.selected.address}}</ui-select-match> -->\n												<ui-select-choices repeat="{address: mailAccount.MailServerOut.username, name: mailAccount.name, id: mailAccount.id} as mailAccount in mailAccounts | filter: $select.search">\n													<div data-ng-bind-html="mailAccount.name | highlight: $select.search"></div>\n													<small data-ng-bind-html="mailAccount.MailServerOut.username | highlight: $select.search"></small>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.template.from.$invalid && forms.template.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END FROM -->\n\n							<!-- FAX TO -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.to.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">To:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple required data-ng-model="form.sto" theme="bootstrap" name="to" ng-disabled="disabled">\n												<ui-select-match placeholder="To...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="to in form.to | filter:$select.search">\n													{{to}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="forms.template.to.$invalid && forms.template.$submitted" class="help-block help-block-error">\n							          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							        </span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END TO -->\n\n							<!-- START CC -->\n							<div class="form-group">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">Cc:</label>\n										</div>\n										<div class="col-md-11">\n											<ui-select tagging tagging-label="" multiple data-ng-model="form.scc" theme="bootstrap" name="cc" ng-disabled="disabled">\n												<ui-select-match placeholder="Cc...">{{$item}}</ui-select-match>\n												<ui-select-choices repeat="cc in form.cc">\n													{{cc}}\n												</ui-select-choices>\n											</ui-select>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END CC -->\n\n							<!-- START SUBJECT -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.subject.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="row">\n										<div class="col-md-1">\n											<label class="control-label">{{\'APPLICATION_SUBJECT\' | translate}}:<span class="required" aria-required="true">*</span></label>\n										</div>\n										<div class="col-md-11">\n											<input type="text" name="subject" class="form-control todo-taskbody-taskdesc" placeholder="{{\'APPLICATION_SUBJECT\' | translate}}..." rows="8" data-ng-model="form.subject">\n											<span data-ng-show="forms.template.subject.$invalid && forms.template.$submitted" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n									</div>\n								</div>\n							</div>\n							<!-- END SUJBECT -->\n\n							<!-- START HTML -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.template.text.$invalid && forms.template.$submitted}">\n								<div class="col-md-12">\n									<div class="inbox-editor inbox-wysihtml5" text-angular data-ng-model="form.html" name="html"></div>\n									<!-- <textarea class="form-control todo-taskbody-taskdesc" rows="8" data-ng-model="form.text" name="text" style="resize: none;"></textarea> -->\n										<span data-ng-show="forms.template.text.$invalid && forms.template.$submitted" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n								</div>\n							</div>\n							<!-- END HTML -->\n\n							<!-- START ATTACH -->\n							<!-- <div class="form-group">\n								<div class="col-md-6">\n									<input type="file" nv-file-select uploader="uploader" name="file">\n									<table class="table" border="0">\n										<tbody>\n										<tr data-ng-repeat="item in uploader.queue">\n												<td style="border-top-style:none">\n													<strong>\n														{{ item.file.name }}\n													</strong>\n												</td>\n												<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n													{{ item.file.size/1024/1024|number:2 }} MB\n												</td>\n												<td nowrap style="border-top-style:none">\n													<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n															<span class="glyphicon glyphicon-trash"></span> Remove\n													</button>\n												</td>\n											</tr>\n										</tbody>\n									</table>\n								</div>\n								<div class="col-md-6">\n									<div class="form-actions right todo-form-actions">\n										<button class="btn btn-circle btn-sm green-haze">{{ \'APPLICATION_SEND\' | translate }}</button>\n										<input type="button" name="cancel" value="{{ \'APPLICATION_CANCEL\' | translate }}" class="btn btn-circle btn-sm btn-default" data-ng-click="cancel()">\n									</div>\n								</div>\n							</div> -->\n							<!-- END ATTACH -->\n						</div>\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n					</form>\n			  </wz-step>\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{ \'APPLICATION_CONFIRM\' | translate }}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/mail/timeline/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-envelope"></i>\n						<a href="#">{{ \'APPLICATION_MAIL\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-list"></i>\n						<a href="/mail/timeline/list"> Timeline</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initList()">\n	<div class="col-md-12">\n    <h3 class="page-title">\n				Timeline\n			</h3>\n			<!-- END PAGE HEADER-->\n			<!-- BEGIN PAGE CONTENT-->\n			<div class="timeline">\n				<!-- TIMELINE ITEM -->\n				<div class="timeline-item" data-ng-repeat="event in events | orderBy:\'-id\'">\n					<div class="timeline-badge">\n						<div class="timeline-icon">\n							<i class="icon-envelope font-green-haze"></i>\n						</div>\n					</div>\n					<div class="timeline-body">\n						<div class="timeline-body-arrow"></div>\n						<div class="timeline-body-head">\n							<div class="timeline-body-head-caption">\n								<span class="timeline-body-alerttitle" data-ng-class="{\'font-red\': event.name == \'INCOMING\', \'font-blue\': event.name == \'ATTEMPT\', \'font-green\': event.name == \'TAKEN\'}">{{event.name | uppercase}}</span>\n								<span class="timeline-body-time font-grey-cascade">at {{event.createdAt | date:\'yyyy-MM-dd HH:mm:ss\'}}</span>\n							</div>\n							<div class="timeline-body-head-actions">\n								<div class="btn-group">\n									<a class="btn btn-circle btn-sm dropdown-toggle btn-success" href="/mail/inbox/room/{{event.MailRoomId}}">Go To Mail</a>\n								</div>\n							</div>\n						</div>\n						<div class="timeline-body-content">\n							<span class="font-grey-cascade" data-ng-show="event.User">\n							{{event.MailRoom.subject ? event.MailRoom.subject + \' - \' : \'\'}}<a href="/agents/view/{{event.UserId}}/account">{{event.User.fullname}}</a>\n							</span>\n						</div>\n					</div>\n				</div>\n				<!-- END TIMELINE ITEM -->\n			</div>\n			<!-- END PAGE CONTENT-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/main/main.html",'<!-- BEGIN HEADER -->\n<div data-ng-include="\'components/header/header.html\'" data-ng-controller="HeaderController" class="page-header navbar navbar-fixed-top">\n</div>\n<!-- END HEADER -->\n\n<div class="clearfix">\n</div>\n<!-- BEGIN CONTAINER -->\n<div class="page-container" data-ng-init="initMain()">\n\n  <!-- BEGIN SIDEBAR -->\n  <div data-ng-include="\'components/sidebar/sidebar.html\'" data-ng-controller="SidebarController" class="page-sidebar-wrapper">\n  </div>\n  <!-- END SIDEBAR -->\n\n  <!-- BEGIN CONTENT -->\n  <div class="page-content-wrapper">\n    <div class="page-content">\n\n      <!-- BEGIN PAGE CONTENT -->\n      <!-- <toaster-container></toaster-container> -->\n      <uib-tabset>\n        <uib-tab select="addWorkspace()" active="mainTab.active">\n          <uib-tab-heading>\n            Motion <i class="icon-plus-sign"></i>\n          </uib-tab-heading>\n          <div ui-view class=""></div>\n        </uib-tab>\n        <uib-tab data-ng-repeat="workspace in workspaces" heading="{{workspace.name}}" active="workspace.active" data-ng-switch="workspace.type">\n          <div class="">\n\n          </div>\n        </uib-tab>\n        <uib-tab select="addWorkspace()">\n          <uib-tab-heading>\n            <i class="icon-plus"></i>\n          </uib-tab-heading>\n        </uib-tab>\n      </uib-tabset>\n      <!-- END PAGE CONTENT  -->\n\n    </div>\n  </div>\n  <!-- END CONTENT -->\n\n  <!-- BEGIN QUICK SIDEBAR -->\n  <a href="javascript:;" class="page-quick-sidebar-toggler"><i class="icon-close"></i></a>\n  <div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper">\n  </div>\n  <!-- END QUICK SIDEBAR -->\n\n</div>\n<!-- END CONTAINER -->\n\n<!-- BEGIN FOOTER -->\n<div data-ng-include="\'components/footer/footer.html\'" data-ng-controller="FooterController" class="page-footer">\n</div>\n<!-- END FOOTER -->\n\n<!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->\n<!-- BEGIN CORE PLUGINS -->\n<!--[if lt IE 9]>\n<script src="../../assets/global/plugins/respond.min.js"></script>\n<script src="../../assets/global/plugins/excanvas.min.js"></script>\n<![endif]-->\n\n<!-- END JAVASCRIPTS -->\n'),a.put("app/main/template.queryBuilderView.html",'\n		<div class="alert alert-warning alert-group">\n				<div class="row">\n						<ui-select data-ng-model="group.boolean" theme="bootstrap" class="col-md-2" data-ng-if="group.type == \'CONDITION\'">\n							<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n							<ui-select-choices repeat="bool.name as bool in booleans| filter: $select.search">\n								<div ng-bind-html="bool.name | highlight: $select.search"></div>\n							</ui-select-choices>\n						</ui-select>\n						<button ng-click="addCondition(group.type)" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_\'+group.type | translate}}</button>\n						<button ng-click="addGroup(group.type)" data-ng-if="group.type == \'CONDITION\' && group.main" class="btn btn-success col-md-2 left-margin" ><span class="glyphicon glyphicon-plus-sign" ></span> {{\'APPLICATION_ADD_GROUP\' | translate}}</button>\n						<button ng-click="removeGroup()" data-ng-if="group.type == \'CONDITION\' && !group.main" class="btn btn-danger col-md-2 left-margin" ><span class="glyphicon glyphicon-minus-sign"></span> {{\'APPLICATION_REMOVE_GROUP\' | translate}}</button>\n				</div>\n				<div class="group-conditions">\n					<!-- <pre>\n						{{group | json}}\n					</pre> -->\n						<div ng-repeat="rule in group.rules | orderBy:\'index\'" class="condition">\n								<div ng-switch="rule.hasOwnProperty(\'group\')">\n										<div ng-switch-when="true">\n												<query-builder group="rule.group" fields="fields" operators="operators" properties="properties"></query-builder>\n										</div>\n										<div ng-switch-default="ng-switch-default">\n												<div class="row">\n															<ui-select data-ng-model="rule.field" theme="bootstrap" class="col-md-2">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="field in fields | filter: $select.search">\n																	<div ng-bind-html="field.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n															<ui-select data-ng-model="rule.operator" theme="bootstrap" class="col-md-2 left-margin" data-ng-if="group.type == \'CONDITION\' && rule.field">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="operator.value as operator in operators[rule.field.operators]| filter: $select.search">\n																	<div ng-bind-html="operator.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n															<div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'input\'">\n																<input type="text" ng-model="rule.data" class="form-control"/>\n															</div>\n															<div class="col-md-2 left-margin" ng-if="rule.field && rule.field.propertyField==\'number\'">\n																<input type="number" ng-model="rule.data" class="form-control"/>\n															</div>\n															<ui-select ng-if="rule.field && rule.field.propertyField==\'select\'" data-ng-model="rule.data" class="col-md-2 left-margin" theme="bootstrap">\n																<ui-select-match placeholder="">{{$select.selected.name | translate}}</ui-select-match>\n																<ui-select-choices repeat="property.value as property in properties[rule.field.value]| filter: $select.search">\n																	<div ng-bind-html="property.name | translate | highlight: $select.search"></div>\n																</ui-select-choices>\n															</ui-select>\n															<button ng-click="removeCondition($index)" class="btn btn-danger remove-condition col-md-1 left-margin"><span class="glyphicon glyphicon-minus-sign"></span></button>\n												</div>\n										</div>\n								</div>\n						</div>\n				</div>\n		</div>\n'),a.put("app/market/market.html",'<div class="row" data-ng-init="getProject()">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/market">Market Place</a>\n          </li>\n        </ul>\n			</div>\n		</div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n    <!-- Our Integration -->\n    <div class="headline">\n      <h3>Our Integrations</h3>\n    </div>\n    <div class="row thumbnails">\n      <div class="col-md-3">\n        <div class="our-integrations">\n          <h3> Zendesk <small> Xenialab s.r.l</small></h3>\n          <img src="https://d3kjp0zrek7zit.cloudfront.net/uploads/product/image/574/large_detail_1406764757.png" alt="Zendesk" class="img-responsive"/>\n          <div class="integration-info">\n            <p>\n               Allows your customer care to manage professional Asterisk call center solutions...\n            </p>\n            <div class="pull-right">\n                <a href="#" class="btn btn-xs green-meadow">\n									Install 1.0.0 <i class="fa fa-download"></i>\n                </a>\n                <a href="#" class="btn btn-xs grey-cascade">\n									More <i class="fa fa-link"></i>\n                </a>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class="col-md-3">\n        <div class="our-integrations">\n          <h3> SalesForce <small> Xenialab s.r.l</small></h3>\n          <img src="http://501partners.com/wp-content/uploads/SF-300x300.png" alt="Salesforce" class="img-responsive"/>\n          <div class="integration-info">\n            <p>\n               xCALLY provides a new seamless CTI integration with Salesforce, CRM leader solution....\n            </p>\n            <div class="pull-right">\n                <a href="#" class="btn btn-xs green-meadow">\n									Install 1.0.1 <i class="fa fa-download"></i>\n                </a>\n                <a href="#" class="btn btn-xs grey-cascade">\n									More <i class="fa fa-link"></i>\n                </a>\n            </div>\n          </div>\n        </div>\n      </div>\n      <div class="col-md-3">\n        <div class="our-integrations">\n          <h3> Desk.com <small> Xenialab s.r.l</small></h3>\n          <img src="http://a470.phobos.apple.com/us/r1000/088/Purple/v4/d5/5a/f3/d55af305-cbb5-fc52-dd09-5b69f979b551/mzl.fiyydcmj.png" alt="desk.com" class="img-responsive"/>\n          <div class="integration-info">\n            <p>\n               The new xCALLY â Desk Integration ensures a proper Case will be displayed on the....\n            </p>\n            <div class="pull-right">\n                <a href="#" class="btn btn-xs green-meadow">\n									Install 1.1.4 <i class="fa fa-download"></i>\n                </a>\n                <a href="#" class="btn btn-xs grey-cascade">\n									More <i class="fa fa-link"></i>\n                </a>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <!--/thumbnails-->\n    <!-- //End Meer Our Team -->\n  </div>\n</div>\n'),
+a.put("app/motionbar/motionbar.chat.html",'<div data-ng-include="\'components/quickSidebar/quickSidebar.html\'" data-ng-controller="QuickSidebarController" class="page-quick-sidebar-wrapper" style="margin-top: -92px;"></div>\n'),a.put("app/sound/list/list.html",'<div class="page-bar">\n  <ul class="page-breadcrumb">\n    <li>\n      <i class="icon-rocket"></i>\n      <a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n      <i class="fa fa-angle-right"></i>\n    </li>\n    <li>\n      <i class="icon-music-tone-alt"></i>\n      <a href="#">{{ \'APPLICATION_SOUNDS\' | translate }}</a>\n    </li>\n  </ul>\n  <div class="page-toolbar">\n  </div>\n</div>\n<!-- END PAGE HEADER-->\n<!-- BEGIN PAGE CONTENT-->\n<!-- Audio Portlets -->\n<div class="headline">\n  <h3><i class="icon-music-tone-alt sounds-title-icon"></i> {{ \'APPLICATION_SOUNDS\' | translate }}</h3>\n</div>\n<div class="portlet light bg-inverse">\n  <div class="portlet-title collapsible" ng-click="isCollapsed = !isCollapsed">\n    <div class="caption">\n      <i class="icon-puzzle font-red-flamingo"></i>\n      <span class="caption-subject bold font-red-flamingo uppercase">\n      {{\'APPLICATION_FILE_UPLOAD\' | translate}} </span>\n    </div>\n    <div class="tools">\n      <a href="" ng-class="{\'collapse\': !isCollapsed, \'expand\' : isCollapsed}">\n      </a>\n      <a href="" class="fullscreen">\n      </a>\n    </div>\n  </div>\n  <div class="portlet-body" ng-slide-down="!isCollapsed">\n    <div class="row" nv-file-drop="" uploader="uploader" filters="queueLimit, customFilter">\n    	<div class="col-md-4">\n    		<div class="portlet light bordered">\n    			<div class="portlet-title">\n    				<div class="caption font-green-sharp">\n    					<i class="icon-settings font-green-sharp"></i>\n    					<span class="caption-subject bold uppercase">{{\'APPLICATION_SELECT_FILES\' | translate}}</span>\n    					<span class="caption-helper hide"></span>\n    				</div>\n    				<div class="actions">\n    				</div>\n    			</div>\n    			<div class="portlet-body">\n    				<div ng-show="uploader.isHTML5">\n    					<div class="file-drop-zone margin-bottom-20" nv-file-over="" uploader="uploader" over-class="file-drop-zone-over">\n    						Base drop zone\n    					</div>\n    				</div>\n    				<span class="btn default btn-file">\n    				<span class="fileinput-new">\n    				{{\'APPLICATION_FILE_UPLOAD\' | translate}}</span>\n    				<input type="file" nv-file-select="" uploader="uploader" />\n    				</span>\n    				<span class="btn default btn-file">\n    				<span class="fileinput-new">\n    				{{\'APPLICATION_MULTI_FILE_UPLOAD\' | translate}}</span>\n    				<input type="file" nv-file-select="" uploader="uploader" multiple  /><br/>\n          </span>\n          <p>\n            </br>\n            {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>wav, mp3, gsm, ogg</b>.\n          </p>\n          <p>\n            {{ \'MESSAGE_MAXIMUM_SOUND_UPLOAD_SIZE\' | translate }} <b>15 Mb</b>.\n          </p>\n    			</div>\n    		</div>\n    	</div>\n    	<div class="col-md-8">\n    		<div class="portlet light bordered">\n    			<div class="portlet-title">\n    				<div class="caption font-green-sharp">\n    					<i class="icon-settings font-green-sharp"></i>\n    					<span class="caption-subject bold uppercase">{{\'APPLICATION_UPLOAD_QUEUE\' | translate}}</span>\n    					<span class="caption-helper">{{\'APPLICATION_QUEUE_LENGTH\' | translate}}: {{ uploader.queue.length }}</span>\n    				</div>\n    				<div class="actions">\n    				</div>\n    			</div>\n    			<div class="portlet-body">\n    				<div class="table-scrollable table-scrollable-borderless">\n    					<table class="table table-hover table-light">\n    						<thead>\n    							<tr class="uppercase">\n    								<th width="50%">{{\'APPLICATION_NAME\' | translate}}</th>\n    								<th ng-show="uploader.isHTML5">{{\'APPLICATION_SIZE\' | translate}}</th>\n    								<th ng-show="uploader.isHTML5">{{\'APPLICATION_PROGRESS\' | translate}}</th>\n    								<th>{{\'APPLICATION_STATUS\' | translate}}</th>\n    								<th>{{\'APPLICATION_MESSAGE\' | translate}}</th>\n    								<th>{{\'APPLICATION_ACTIONS\' | translate}}</th>\n    							</tr>\n    						</thead>\n    						<tbody>\n    							<tr ng-repeat="item in uploader.queue">\n    								<td><strong>{{ item.file.name }}</strong></td>\n    								<td ng-show="uploader.isHTML5" nowrap>{{ item.file.size/1024/1024|number:2 }} MB</td>\n    								<td ng-show="uploader.isHTML5">\n    									<div class="progress progress-sm" style="margin-bottom: 0;">\n    										<div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': item.progress + \'%\' }"></div>\n    									</div>\n    								</td>\n    								<td class="text-center">\n    									<span ng-show="item.isSuccess" class="text-success"><i class="glyphicon glyphicon-ok"></i></span>\n    									<span ng-show="item.isCancel" class="text-info"><i class="glyphicon glyphicon-ban-circle"></i></span>\n    									<span ng-show="item.isError" class="text-danger"><i class="glyphicon glyphicon-remove"></i></span>\n    									<span ng-show="item.isUploading" class="text-info"><i class="glyphicon glyphicon-upload"></i></span>\n    								</td>\n    								<td class="text-center">\n    									<span ng-show="item.responseMessage" class="text-danger">{{item.responseMessage}}</span>\n    								</td>\n    								<td nowrap>\n    									<button type="button" class="btn btn-success btn-xs" ng-click="item.upload()" ng-disabled="item.isReady || item.isUploading || item.isSuccess">\n    									<span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD\' | translate}}\n    									</button>\n    									<button type="button" class="btn btn-warning btn-xs" ng-click="item.cancel()" ng-disabled="!item.isUploading">\n    									<span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL\' | translate}}\n    									</button>\n    									<button type="button" class="btn btn-danger btn-xs" ng-click="item.remove()">\n    									<span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE\' | translate}}\n    									</button>\n    								</td>\n    							</tr>\n    						</tbody>\n    					</table>\n    				</div>\n    				<div>\n    					<p>{{\'APPLICATION_UPLOAD_QUEUE_PROGRESS\' | translate}}:</p>\n    					<div class="progress progress-sm" style="">\n    						<div class="progress-bar progress-bar-info" role="progressbar" ng-style="{ \'width\': uploader.progress + \'%\' }"></div>\n    					</div>\n    				</div>\n    				<button type="button" class="btn btn-success btn-s" ng-click="uploader.uploadAll()" ng-disabled="!uploader.getNotUploadedItems().length">\n    				<span class="glyphicon glyphicon-upload"></span> {{\'APPLICATION_UPLOAD_ALL\' | translate}}\n    				</button>\n    				<button type="button" class="btn btn-warning btn-s" ng-click="uploader.cancelAll()" ng-disabled="!uploader.isUploading">\n    				<span class="glyphicon glyphicon-ban-circle"></span> {{\'APPLICATION_CANCEL_ALL\' | translate}}\n    				</button>\n    				<button type="button" class="btn btn-danger btn-s" ng-click="uploader.clearQueue()" ng-disabled="!uploader.queue.length">\n    				<span class="glyphicon glyphicon-trash"></span> {{\'APPLICATION_REMOVE_ALL\' | translate}}\n    				</button>\n    			</div>\n    		</div>\n    	</div>\n    </div>\n  </div>\n</div>\n<div class="row thumbnails" data-ng-init="initList()">\n  <div class="row" ng-show="sounds.length == 0">\n    <div class="col-md-12 page-404">\n      <div class="details">\n        <h3>{{ \'MESSAGE_NO_SOUNDS\' | translate }}</h3>\n        <p>\n          <a href="/">\n          {{ \'MESSAGE_RETURN_HOME\' | translate }} </a>\n          {{ \'MESSAGE_OR_UPLOAD_SOUND_FILE\' | translate }}\n        </p>\n      </div>\n    </div>\n  </div>\n  <div class="audio-portlet-wrapper animate-repeat" ng-repeat="sound in sounds">\n    <div class="audio-portlet">\n      <div class="audio-portlet-title"><a href="#" editable-text="sound.display_name" onbeforesave="updateAudio(sound.id,{display_name : $data})">{{ sound.display_name || "Empty" }}</a></div>\n      <img src="../assets/images/note_placeholder.png" alt="" class="img-responsive"/>\n      <div class="file-info">\n        <div class="audio-tag-wrapper">\n          <audio controls ng-src="{{getSecureSrc(audioSources[sound.id])}}" preload="none">\n            {{ \'MESSAGE_AUDIO_NOT_SUPPORTED\' | translate }}\n          </audio>\n        </div>\n        <p id="description_div">\n          <a href="#" editable-text="sound.description" onbeforesave="updateAudio(sound.id,{description : $data})">{{ sound.description || "Empty" }}</a>\n        </p>\n        <p class="float-right">\n            <button class="btn btn-xs green-meadow" tooltip-html-unsafe="<ul class=\'list-unstyled\'><li><b>Format : </b>{{sound.original_format}}</li><li><b>Duration : </b>{{sound.original_duration | date: \'mm:ss\'}}</li><li><b>Channels : </b>{{sound.original_channelCount}}</li><li><b>Bitrate : </b>{{sound.original_bitRate/1024}} kbs</li><li><b>Sample Rate : </b>{{sound.original_sampleRate/1000}} KHz</li></ul>"><i class="icon-list"></i></button>\n            <a class="btn btn-xs blue-hoki" href="{{getSecureDownloadSrc(audioSources[sound.id])}}" download="{{sound.name+\'.\'+sound.original_format}}" target="_self" tooltip="Download"><i class="icon-cloud-download"></i></a>\n            <button class="btn btn-xs red-sunglo" ng-click="delete(sound.display_name, sound.id)" tooltip="Delete"><i class="icon-close" ></i></button>\n        </p>\n      </div>\n    </div>\n  </div>\n</div>\n<!-- End Audio Portlets -->\n'),a.put("app/sound/sound.html","<!-- BEGIN PAGE CONTENT-->\n<div ui-view></div>\n<!-- END PAGE CONTENT-->\n"),a.put("app/square/odbc/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ODBCS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Odbcs.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ODBC\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/square/odbcs/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getOdbcs([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_odbcs.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedOdbcs" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.odbcsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="odbcByPage in odbcsByPage | filter: $select.search">\n													<div ng-bind-html="odbcByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(odbc, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="odbc in displayedOdbcs" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="odbc.defaultEntry" type="checkbox" checklist-model="Odbcs.checked" checklist-value="odbc.id"></td>\n								<td>{{odbc.name}}</td>\n					      <td>{{odbc.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/square/odbcs/view/{{odbc.id}}/settings" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(odbc.name,odbc.id)" data-ng-class="{\'disabled\': odbc.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedOdbcs.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ODBCS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.odbcsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getOdbc()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n					<i data-ng-show="odbc" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="odbc">\n					<a href="#">{{odbc.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/odbc.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{odbc.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.square.odbcs.view.settings\')}">\n							<a data-ng-href="/square/odbcs/view/{{odbc.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/odbc/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_ODBC\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateOdbc()" novalidate>\n\n							<!-- START NAME -->\n				      <div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n				        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n				        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="odbc.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n				        </span>\n				      </div>\n				      <!-- END NAME -->\n\n							<!-- START DSN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="odbc.dsn" required/>\n								<span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DSN -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="odbc.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/square/odbc/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/square/odbcs/list">{{ \'APPLICATION_ODBCS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/square/odbcs/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_ODBC\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.odbc.$valid)">\n			    <form name="forms.odbc" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.odbc.name.$touched || forms.odbc.$submitted) && forms.odbc.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DSN -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_DSN\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="dsn" placeholder="{{\'APPLICATION_DSN\' | translate}}" class="form-control" data-ng-model="item.dsn" required/>\n							<span data-ng-show="(forms.odbc.dsn.$touched || forms.odbc.$submitted) && forms.odbc.dsn.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END DSN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/square/project/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n        <li>\n          <i class="fa fa-slack"></i>\n          <a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n        </li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_PROJECTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Projects.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_PROJECT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/square/projects/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getProjects([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="square_projects.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedProjects" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.projectsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="projectByPage in projectsByPage | filter: $select.search">\n													<div ng-bind-html="projectByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="project in displayedProjects" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="project.defaultEntry" type="checkbox" checklist-model="Projects.checked" checklist-value="project.id"></td>\n								<td>{{project.name}}</td>\n					      <td>{{project.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/square/projects/view/{{project.id}}" data-ng-class="{\'disabled\': project.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(project.name,project.id)" data-ng-class="{\'disabled\': project.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedProjects.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_PROJECTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.projectsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/square/project/view/view.html",'<div class="row" data-ng-init="getProject()">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="fa fa-superscript"></i>\n						<a href="/square/projects">{{ \'APPLICATION_CALLYSQUARE\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="fa fa-slack"></i>\n						<a href="/square/projects">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n          <li>\n						<a ng-href="/square/projects/view/{{squareProject.id}}">{{squareProject.name}}</a>\n          </li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n  <div class="col-md-12">\n		<div id="geEditor" class="geEditor"></div>\n  </div>\n</div>\n<!-- END PAGE CONTENT-->\n<script>\n\n\n</script>\n'),a.put("app/square/project/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/square/projects/list">{{ \'APPLICATION_PROJECTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/square/projects/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_PROJECT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.project.$valid)">\n			    <form name="forms.project" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.project.name.$touched || forms.project.$submitted) && forms.project.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
+a.put("app/tag/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_TAG\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.tag" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.tag.name.$touched || forms.tag.$submitted) && forms.tag.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.tag.name.$touched || forms.tag.$submitted) && forms.tag.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.tag.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/tag/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-tag"></i>\n					<a href="/tags/list">{{ \'APPLICATION_TAGS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TAGS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Tags.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TAG\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTags([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="tags.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTags" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.tagsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="tagByPage in tagsByPage | filter: $select.search">\n													<div ng-bind-html="tagByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(tag, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="tag in displayedTags" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="tag.defaultEntry" type="checkbox" checklist-model="Tags.checked" checklist-value="tag.id"></td>\n								<td>{{tag.name}}</td>\n					      <td>{{tag.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/tags/view/{{tag.id}}/settings" data-ng-class="{\'disabled\': tag.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(tag.name,tag.id)" data-ng-class="{\'disabled\': tag.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTags.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_TAGS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.tagsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tag/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTag()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-tag"></i>\n					<a href="/tags/list">{{ \'APPLICATION_TAGS\' | translate }}</a>\n					<i data-ng-show="tag" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="tag">\n					<a href="#">{{tag.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/tag.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{tag.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.tags.view.settings\')}">\n							<a data-ng-href="/tags/view/{{tag.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/tag/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_TAG\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTag()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="tag.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="tag.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/team/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-shield"></i>\n						<a href="#">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-shield font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEAMS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="teams.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TEAM\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/teams/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTeams([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="teams.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTeams" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.teamsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="teamByPage in teamsByPage | filter: $select.search">\n													<div ng-bind-html="teamByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(agent, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="team in displayedTeams" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="teams.checked" checklist-value="team.id"></td>\n					      <td>{{team.name}}</td>\n								<td>{{team.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/teams/view/{{team.id}}/settings" data-ng-class="{\'disabled\': team.defaultEntry}">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(team.name, team.id)" data-ng-class="{\'disabled\': team.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n              <tr data-ng-hide="displayedTeams.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No teams available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.teamsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/team/view/view.agents.html",'<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n			<!-- GENERAL TAB -->\n				<!-- BEGIN PORTLET-->\n					<!-- BEGIN FORM-->\n					<form action="index.html" class="form-horizontal form-row-seperated">\n						<div class="form-body">\n							<div class="form-group last">\n								<div class="col-md-9" id="multi-select-team">\n								</div>\n							</div>\n						</div>\n					</form>\n					<!-- END FORM-->\n				<!-- END PORTLET-->\n			<!-- END GENERAL TAB -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/team/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-shield"></i>\n					<a href="/teams/list">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{team.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img ng-src="assets/images/media/team.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{team.name}}\n					</div>\n\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.teams.view.settings\')}">\n							<a data-ng-href="/teams/view/{{team.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.teams.view.agents\')}">\n							<a data-ng-href="/teams/view/{{team.id}}/agents">\n							<i class="icon-users"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/team/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n			</div>\n\n			<div class="portlet-body">\n				<!-- PERSONAL INFO TAB -->\n				<div>\n\n					<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n						<!-- START NAME -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n							<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="team.name" required/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="team.description"/>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n					</form>\n				</div>\n				<!-- END PERSONAL INFO TAB -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/team/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-shield"></i>\n						<a href="/teams/list">{{ \'APPLICATION_TEAMS\' | translate }}</a>\n            <i class="fa fa-angle-right"></i>\n					</li>\n          <li>\n						<i class="icon-user-following"></i>\n						<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div id="team" class="row" data-ng-init="getAgents()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TEAM\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_TEAM_INFO\' | translate}}" canexit="formValidation(forms.info.$valid)">\n						<form name="forms.info" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="goNext()"/>\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trigger/list/list.html",'<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-bulb"></i>\n						<a href="#">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Triggers.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRIGGER\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/triggers/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTriggers([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="triggers.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTriggers" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.TriggersByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="TriggerByPage in TriggersByPage | filter: $select.search">\n													<div ng-bind-html="TriggerByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<!-- <th st-sort="id" width="5%" st-sort-default="reverse">{{ \'APPLICATION_ID\' | translate }}</th> -->\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(Trigger, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th st-sort="channel">{{ \'APPLICATION_CHANNEL\' | translate }}</th>\n								<th>{{ \'APPLICATION_STATUS\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="Trigger in displayedTriggers">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="Triggers.checked" checklist-value="Trigger.id"></td>\n					      <td>{{Trigger.name}}</td>\n								<td>{{Trigger.description}}</td>\n								<td>{{Trigger.channel | capitalize}}</td>\n								<td>\n									<input\n										data-ng-change="updateItem(Trigger.id, Trigger.status)",\n								    bs-switch\n								    ng-model="Trigger.status"\n								    type="checkbox"\n								    switch-active="{{ isActive }}"\n								    switch-on-text="{{ onText }}"\n								    switch-off-text="{{ offText }}"\n								    switch-on-color="{{ onColor }}"\n								    switch-off-color="{{ offColor }}"\n								    switch-animate="{{ animate }}"\n								    switch-size="{{ size }}"\n								    switch-label="{{ label }}"\n								    switch-icon="{{ icon }}"\n								    switch-radio-off="{{ radioOff }}"\n								    switch-label-width="{{ labelWidth }}"\n								    switch-handle-width="{{ handleWidth }}">\n								</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/triggers/view/{{Trigger.id}}/settings">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(Trigger.name, Trigger.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTriggers.length">\n								<td colspan="6" class="text-center">\n									<i>No available triggers</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="channel" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CHANNEL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n								<td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.TriggersByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/trigger/view/view.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row" data-ng-init="initView();getProperties();">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bulb"></i>\n					<a href="/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n					<i class="fa fa-angle-right" data-ng-show="trigger"></i>\n				</li>\n				<li data-ng-show="trigger">\n					<a href="#">{{ trigger.description || trigger.name }}</a>\n				</li>\n			</ul>\n		</div>\n\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/trigger.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{ trigger.name }}\n					</div>\n					<div class="profile-usertitle-job">\n						{{ trigger.description }}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.triggers.view.settings\')}">\n							<a href="/triggers/view/{{trigger.id}}/settings">\n							<i class="icon-bulb"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trigger/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_CONDITIONS\' | translate}} & {{\'APPLICATION_ACTIONS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<!-- <pre>\n					{{conditionsData.query | json}}\n				</pre>\n				<pre>\n					{{actionsData.query | json}}\n				</pre> -->\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTrigger()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trigger.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trigger.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- <pre>\n						{{conditionsFilter | json}}\n					</pre> -->\n\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$triggers.operators"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[trigger.channel]"></query-builder>\n							</div>\n						</div>\n\n						<input class="btn green-haze" type="button" value="{{\'APPLICATION_UPDATE\' | translate}}" data-ng-click="updateTrigger()"/>\n					</div>\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/trigger/wizard/wizard.html",'\n<div class="row" data-ng-init="getProperties()">\n	<div class="col-md-12">\n		<!-- BEGIN PAGE HEADER-->\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-bulb"></i>\n					<a href="/triggers/list">{{ \'APPLICATION_TRIGGERS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n		<!-- END PAGE HEADER-->\n\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-bulb font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRIGGERS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n						<form name="forms.general" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name"/ required>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n					</wz-step>\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}">\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CHANNEL\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<div class="form-group"  >\n									<label class="control-label">{{ \'APPLICATION_CHANNEL\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="item.channel" name="channel" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_CHANNEL\' | translate }}">{{$select.selected | capitalize}}</ui-select-match>\n										<ui-select-choices repeat="channel in $triggers.channels | filter: $select.search">\n											<div ng-bind-html="channel | highlight: $select.search | capitalize"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_CONDITIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="conditionsFilter.group" fields="fields.conditions" operators="$triggers.operators"></query-builder>\n							</div>\n						</div>\n						<div class="portlet light bordered">\n							<div class="portlet-title">\n								<div class="caption font-blue-hoki">\n									<i class="icon-tag font-blue-hoki"></i>\n									<span class="caption-subject">{{ \'APPLICATION_ACTIONS\' | translate }}</a> </span>\n								</div>\n							</div>\n							<div class="portlet-body">\n								<query-builder group="actionsFilter.group" fields="fields.actions" properties="properties[item.channel]"></query-builder>\n							</div>\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</wz-step>\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-link"></i>\n					<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-link font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_TRUNKS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="trunks.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_TRUNK\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/trunks/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getTrunks([\'name\', \'host\', \'context\', \'description\'])" csv-header="[\'Name\', \'Host\', \'Context\', \'Description\']" field-separator=";" filename="trunks.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedTrunks" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.trunksByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="trunkByPage in trunksByPage | filter: $select.search">\n													<div ng-bind-html="trunkByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(trunk, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="host">{{ \'APPLICATION_HOST\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="trunk in displayedTrunks" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="trunks.checked" checklist-value="trunk.id"></td>\n								<td>{{trunk.name}}</td>\n                <td>{{trunk.host}}</td>\n								<td>{{trunk.context}}</td>\n					      <td>{{trunk.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/trunks/view/{{trunk.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(trunk.name,trunk.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedTrunks.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_TRUNKS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="host" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_HOST\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.trunksByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getTrunk()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-link"></i>\n					<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n					<i data-ng-show="trunk" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="trunk">\n					<a href="#">{{trunk.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/trunk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{trunk.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.trunks.view.settings\')}">\n							<a data-ng-href="/trunks/view/{{trunk.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/trunk/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_TRUNK\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateTrunk()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="trunk.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n							<div class="row">\n								<div class="col-md-6">\n\n							<!-- START HOST -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$invalid}">\n								<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="trunk.host" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.host.$touched || forms.general.$submitted) && forms.general.host.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END HOST -->\n\n							<!-- START SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_SECRET\' | translate}}</label>\n								<input type="password" name="secret" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="trunk.secret">\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.secret.$touched || forms.general.$submitted) && forms.general.secret.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SECRET -->\n\n							<!-- START CONFIRM SECRET -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rsecret.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONFIRM_SECRET\' | translate}}</label>\n								<input type="password" name="rsecret" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="trunk.rsecret" nx-equal="trunk.secret"/>\n								<span data-ng-show="forms.general.$submitted && (forms.general.rsecret.$invalid || forms.general.rsecret.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONFIRM SECRET -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START CALLERID -->\n							<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLERID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="callerid" placeholder="{{\'APPLICATION_CALLERID\' | translate}}" class="form-control" data-ng-model="trunk.callerid" required/>\n								<span data-ng-show="(forms.general.callerid.$touched || forms.general.$submitted) && forms.general.callerid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div> -->\n							<!-- END CALLERID -->\n\n							<!-- START TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.type" name="type" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'user\',\'peer\',\'friend\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TYPE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.type.$touched || forms.general.$submitted) && forms.general.type.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TYPE -->\n\n							<!-- START DTMFMODE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DTMFMODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.dtmfmode" name="dtmfmode" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'rfc2833\', \'info\', \'shortinfo\', \'inband\',\'auto\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DTMFMODE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.dtmfmode.$touched || forms.general.$submitted) && forms.general.dtmfmode.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DTMFMODE -->\n\n						</div>\n						<div class="col-md-6">\n\n							<!-- START DEFAULT USER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT_USER\' | translate}}" class="form-control" data-ng-model="trunk.defaultuser" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n								</span>\n								<span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DEFAULT USER -->\n\n							<!-- START NAT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.nat" name="nat" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_NAT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.nat.$touched || forms.general.$submitted) && forms.general.nat.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAT -->\n\n							<!-- START QUALIFY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUALIFY\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.qualify" name="qualify" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_QUALIFY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.qualify.$touched || forms.general.$submitted) && forms.general.qualify.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUALIFY -->\n\n							<!-- START ALLOW -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ALLOW_CODEC\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.allow" name="allow" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'g723\',\'gsm\',\'ulaw\',\'alaw\',\'g726\',\'g722\',\'g729\',\'ilbc\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_ALLOW_CODEC\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.allow.$touched || forms.general.$submitted) && forms.general.allow.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ALLOW -->\n\n							<!-- START INSECURE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INSECURE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.insecure" name="insecure" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'port\',\'invite\',\'very\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_INSECURE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.insecure.$touched || forms.general.$submitted) && forms.general.insecure.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INSECURE -->\n\n							<!-- START CALLLIMIT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.call-limit.$touched || forms.general.$submitted) && forms.general.call-limit.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLLIMIT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" min="0" name="call-limit" placeholder="{{\'APPLICATION_CALLLIMIT\' | translate}}" class="form-control" data-ng-model="trunk[\'call-limit\']"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_CALLLIMIT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.call-limit.$touched || forms.general.$submitted) && forms.general.call-limit.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLLIMIT -->\n\n						</div>\n					</div>\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="trunk.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateTrunk()" novalidate>\n							<div class="row">\n								<div class="col-md-6">\n							<!-- START LIMITONPEERS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.limitonpeers.$touched || forms.advanced.$submitted) && forms.advanced.limitonpeers.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LIMITONPEERS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.limitonpeers" name="limitonpeers" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_LIMITONPEERS\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.limitonpeers.$touched || forms.advanced.$submitted) && forms.advanced.limitonpeers.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LIMITONPEERS -->\n\n							<!-- START REGISTRY -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n								<input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="trunk.registry"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n								</span>\n							</div>\n							<!-- END REGISTRY -->\n\n							<!-- START DIRECTMEDIA -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DIRECTMEDIA\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.directmedia" name="directmedia" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\', \'no\', \'nonat\', \'update\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_DIRECTMEDIA\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.directmedia.$touched || forms.advanced.$submitted) && forms.advanced.directmedia.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END DIRECTMEDIA -->\n\n							<!-- START CALLCOUNTER -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CALLCOUNTER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.callcounter" name="callcounter" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_CALLCOUNTER\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.callcounter.$touched || forms.advanced.$submitted) && forms.advanced.callcounter.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLCOUNTER -->\n\n							<!-- START FROMDOMAIN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromdomain.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FROMDOMAIN\' | translate}}</label>\n								<input type="text" name="fromdomain" placeholder="{{\'APPLICATION_FROMDOMAIN\' | translate}}" class="form-control" data-ng-model="trunk.fromdomain" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_FROMDOMAIN\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromdomain.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FROMDOMAIN -->\n\n							<!-- START FROMUSER -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.fromuser.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FROMUSER\' | translate}}</label>\n								<input type="text" name="fromuser" placeholder="{{\'APPLICATION_FROMUSER\' | translate}}" class="form-control" data-ng-model="trunk.fromuser" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_FROMUSER\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.fromuser.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FROMUSER -->\n\n						</div>\n						<div class="col-md-6">\n\n							<!-- START OUTBOUNDPROXY -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.advanced.$submitted && forms.advanced.outboundproxy.$invalid}">\n								<label class="control-label">{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}</label>\n								<input type="text" name="outboundproxy" placeholder="{{\'APPLICATION_OUTBOUNDPROXY\' | translate}}" class="form-control" data-ng-model="trunk.outboundproxy" />\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_OUTBOUNDPROXY\' | translate }}\n								</span>\n								<span data-ng-show="forms.advanced.$submitted && (forms.advanced.outboundproxy.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END OUTBOUNDPROXY -->\n\n							<!-- START USEREQPHONE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USEREQPHONE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.usereqphone" name="usereqphone" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_USEREQPHONE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.usereqphone.$touched || forms.advanced.$submitted) && forms.advanced.usereqphone.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USEREQPHONE -->\n\n							<!-- START TRUSTRPID -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUSTRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.trustrpid" name="trustrpid" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TRUSTRPID\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.trustrpid.$touched || forms.advanced.$submitted) && forms.advanced.trustrpid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRUSTRPID -->\n\n							<!-- START SENDRPID -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$invalid}">\n								<label class="control-label">{{\'APPLICATION_SENDRPID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.sendrpid" name="sendrpid" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_SENDRPID\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.sendrpid.$touched || forms.advanced.$submitted) && forms.advanced.sendrpid.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END SENDRPID -->\n\n							<!-- START ENCRYPTION -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ENCRYPTION\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="trunk.encryption" name="encryption" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_ENCRYPTION\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.encryption.$touched || forms.advanced.$submitted) && forms.advanced.encryption.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ENCRYPTION -->\n\n							<!-- START PORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PORT\' | translate}}</label>\n								<input type="number" min="0" name="port" placeholder="{{\'APPLICATION_PORT\' | translate}}" class="form-control" data-ng-model="trunk.port"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_PORT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.port.$touched || forms.advanced.$submitted) && forms.advanced.port.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PORT -->\n\n							<!-- START TRANSPORT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRANSPORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="trunk.transport" name="transport" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'udp\',\'wss\',\'ws\',\'tcp\',\'tls\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_TRUNK_TRANSPORT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.transport.$touched || forms.advanced.$submitted) && forms.advanced.transport.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRANSPORT -->\n\n						</div>\n					</div>\n					<!-- START OTHER FIELDS-->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_OTHER_FIELDS\' | translate}}</label>\n						<textarea type="text" name="otherFields" placeholder="{{\'APPLICATION_OTHER_FIELDS\' | translate}}" class="form-control" data-ng-model="trunk.otherFields"></textarea>\n						<span class="help-block">\n							{{ \'DESCRIPTION_TRUNK_OTHER_FIELDS\' | translate }}\n						</span>\n					</div>\n					<!-- END OTHER FIELDS -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/trunk/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard()">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-link"></i>\n				<a href="/trunks/list">{{ \'APPLICATION_TRUNKS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-link font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_TRUNK\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.name.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START ROLE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.role.$touched || forms.general.$submitted) && forms.general.role.$invalid}">\n							<label class="control-label">{{\'APPLICATION_USAGE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.role" name="role" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.value}}</ui-select-match>\n								<ui-select-choices repeat="type.key as type in types | filter: $select.search">\n									<div ng-bind-html="type.value | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_ROLE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.general.role.$touched || forms.general.$submitted) && forms.general.role.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ROLE -->\n\n						<!-- START HOST -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_HOST\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END HOST -->\n\n						<!-- START PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n							<label class="control-label">{{\'APPLICATION_SECRET\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.secret" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_SECRET\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PASSWORD -->\n\n						<!-- START CONFIRM PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CONFIRM_SECRET\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.secret" required/>\n							<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CONFIRM PASSWORD -->\n\n						<!-- START DEFAULT USER -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.defaultuser.$invalid}">\n							<label class="control-label">{{\'APPLICATION_DEFAULT_USER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="defaultuser" placeholder="{{\'APPLICATION_DEFAULT\' | translate}} {{\'APPLICATION_USER\' | translate}}" class="form-control" data-ng-model="item.defaultuser" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_DEFAULT_USER\' | translate }}\n							</span>\n							<span data-ng-show="forms.general.$submitted && (forms.general.defaultuser.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END DEFAULT USER -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n						<button class="btn green-haze" type="submit" ng-click="next(true)">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_ADVANCED\' | translate}}" canexit="exitValidation(forms.advanced.$valid)">\n					<form name="forms.advanced" novalidate>\n\n						<!-- START REGISTRY -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_REGISTRY\' | translate}}</label>\n							<input type="text" name="registry" placeholder="{{\'APPLICATION_REGISTRY\' | translate}}" class="form-control" data-ng-model="item.registry"/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_TRUNK_REGISTRY\' | translate }}\n							</span>\n						</div>\n						<!-- END REGISTRY -->\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/update/list/checkout/checkout.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("app/update/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-cloud-download"></i>\n					<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-cloud-download font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_UPDATES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<a class="btn btn-icon-only btn-default" href="#" data-ng-click="checkout()">\n						<i class="icon-cloud-download"></i>\n					</a>\n				</div>\n			</div>\n			<div class="portlet-body" data-ng-init="initList()">\n				<!-- BEGIN TABLE -->\n					<table st-table="displayedUpdates" st-safe-src="updates" class="table table-striped table-bordered table-hover">\n						<div class="table-responsive">\n						  <thead>\n								<tr>\n									<th st-sort="message">{{ \'APPLICATION_MESSAGE\' | translate }}</th>\n									<th>{{ \'APPLICATION_DATE\' | translate }}</th>\n									<th class="small-cells"></th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="update in displayedUpdates">\n									<td>\n										{{update.message | truncate: 30 : \'...\': true}}\n									</td>\n									<td>\n										<time is="relative-time" datetime="{{update.date}}">\n											April 1, 2014\n										</time>\n									</td>\n									<td>\n						        <a class="btn default btn-xs green-stripe" href="#" data-ng-click="checkout(update.hash)">\n											<i class="icon-cloud-download"></i> {{ \'APPLICATION_CHECKOUT\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="displayedUpdates.length">\n									<td colspan="9" style="text-align:center;">\n										<i>No agents available</i>\n									</td>\n								</tr>\n						  </tbody>\n						  <tfoot>\n								<tr>\n									<td colspan="1">\n										<div class="input-icon right">\n											<i class="fa fa-search"></i>\n											<input st-search="message" placeholder="{{ \'APPLICATION_MESSAGE\' | translate | lowercase}}" class="form-control" type="search"/>\n										</div>\n									<td colspan="9"></td>\n							  </tr>\n						    <tr>\n						      <td colspan="10" class="text-center">\n										<div class="pagination" st-pagination st-items-by-page="conf.updatesByPage.value" st-displayed-pages="7"></div>\n						      </td>\n						    </tr>\n						  </tfoot>\n						</div>\n					</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/update/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin()">\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li data-ng-show="Auth.isAdmin() || update.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && update.id === Auth.getCurrentUser().id}">\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane" data-ng-class="{\'active\': Auth.isAdmin()}" data-ng-show="Auth.isAdmin()" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="update.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="update.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="update.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START INTERNAL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="update.internal" required disabled/>\n								<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERNAL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin()" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											{{ \'APPLICATION_REMOVE\' | translate }}\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											{{ \'APPLICATION_CONFIRM\' | translate }}\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" data-ng-show="Auth.isAdmin() || update.id === Auth.getCurrentUser().id" data-ng-class="{\'active\': !Auth.isAdmin() && update.id === Auth.getCurrentUser().id}" id="tab_1_3">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="update.reNewPwd" nx-equal="update.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/update/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-people"></i>\n					<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{update.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{update.userpic ? update.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n\n				<!-- START SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{update.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{update.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.updates.view.account\')}">\n							<a data-ng-href="/updates/view/{{update.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/update/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-people"></i>\n				<a href="/updates/list">{{ \'APPLICATION_UPDATES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/updates/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" ng-init="getFirstFreeInternal();">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_UPDATE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/updates/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/updates/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n						<!-- START INTERNAL -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<div class="input-group">\n							<input type="number" min="1" name="internal" placeholder="{{\'APPLICATION_INTERNAL_NUMBER\' | translate}}" class="form-control" data-ng-model="item.internal" data-ng-disabled="!item.internalEnabled" data-ng-required="item.internalEnabled" ng-remote-validate="/api/updates/validate/internal"/>\n							<span class="input-group-addon">\n								<input type="checkbox" data-ng-model="item.internalEnabled">\n							</span>\n							</div>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n							<span data-ng-show="(forms.info.internal.$touched || forms.info.$submitted) && forms.info.internal.$error.ngRemoteValidate" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_INTERNAL\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERNAL -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_VOICE\' | translate}}" canexit="exitValidation(forms.voice.$valid)">\n					<form name="forms.voice" novalidate>\n\n						<!-- START ACCOUNTCODE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$invalid}">\n							<label class="control-label">{{\'APPLICATION_ACCOUNTCODE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="number" name="accountcode" placeholder="{{\'APPLICATION_ACCOUNTCODE\' | translate}}" class="form-control" data-ng-model="item.accountcode" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.accountcode.$touched || forms.voice.$submitted) && forms.voice.accountcode.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END ACCOUNTCODE -->\n\n						<!-- START TRANSPORT -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_TRANSPORT\' | translate}}</label>\n							<ui-select multiple name="transport" ng-model="item.transport" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select transport...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="transport in [\'udp\', \'tcp\', \'ws\', \'wss\'] | filter: $select.search">\n						    	{{transport}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TRANSPORT\' | translate }}\n							</span>\n						</div>\n						<!-- END TRANSPORT -->\n\n						<!-- START HOST -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$invalid}">\n							<label class="control-label">{{\'APPLICATION_HOST\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="text" name="host" placeholder="{{\'APPLICATION_HOST\' | translate}}" class="form-control" data-ng-model="item.host" required/>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_HOST\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.host.$touched || forms.voice.$submitted) && forms.voice.host.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END HOST -->\n\n						<!-- START NAT -->\n						<!-- <div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_NAT\' | translate}}</label>\n							<ui-select multiple ng-model="item.nat" name="nat" theme="bootstrap" ng-disabled="disabled">\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$item}}</ui-select-match>\n								<ui-select-choices repeat="nat in [\'yes\', \'no\', \'never\', \'route\', \'force_rport\', \'comedia\'] | filter: $select.search">\n									{{nat}}\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_NAT\' | translate }}\n							</span>\n						</div> -->\n\n						<!-- END NAT -->\n\n						<!-- START TYPE -->\n						<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$invalid}">\n							<label class="control-label">{{\'APPLICATION_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.type" name="type" theme="bootstrap" required>\n								<ui-select-match placeholder="{{ \'APPLICATION_SEARCH_FILTER\' | translate }}">{{$select.selected}}</ui-select-match>\n								<ui-select-choices repeat="type in [\'friend\', \'user\', \'peer\'] | filter: $select.search">\n									<div ng-bind-html="type | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_TYPE\' | translate }}\n							</span>\n							<span data-ng-show="(forms.voice.type.$touched || forms.voice.$submitted) && forms.voice.type.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div> -->\n						<!-- END TYPE -->\n\n						<!-- START CODEC -->\n						<div class="form-group">\n							<label class="control-label">{{ \'APPLICATION_ALLOWED_CODECS\' | translate}}</label>\n							<ui-select multiple ng-model="item.allow" name="allow" theme="bootstrap" ng-disabled="disabled">\n						    <ui-select-match placeholder="Select codec...">{{$item}}</ui-select-match>\n						    <ui-select-choices repeat="allow in [\'g729\', \'ilbc\', \'gsm\', \'ulaw\', \'alaw\'] | filter: $select.search">\n						    	{{allow}}\n						    </ui-select-choices>\n						  </ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_VOICE_CODEC\' | translate }}\n							</span>\n						</div>\n						<!-- END CODEC -->\n\n						<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n						<input class="btn default" type="button" value="{{\'APPLICATION_BACK\' | translate}}" wz-previous/>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),
+a.put("app/user/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-eye font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_USERS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="users.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_USER\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/users/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getUsers([\'name\', \'fullname\', \'email\'])" csv-header="[\'Username\', \'Fullname\', \'Email\']" field-separator=";" filename="users.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table id="table" st-table="displayedUsers" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.usersByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="userByPage in usersByPage | filter: $select.search">\n													<div ng-bind-html="userByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(user, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="name">{{ \'APPLICATION_USERNAME\' | translate }}</th>\n						    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="role">{{ \'APPLICATION_ROLE\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="user in displayedUsers" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="users.checked" checklist-value="user.id"></td>\n								<td>{{user.fullname}}</td>\n					      <td>{{user.name}}</td>\n					      <td><a ng-href="mailto:{{user.email}}">{{user.email}}</a></td>\n								<td>{{user.role}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/users/view/{{user.id}}/account">\n										{{ \'APPLICATION_PROFILE\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(user.fullname, user.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedUsers.length">\n								<td colspan="6" style="text-align:center;">\n									<i>No users available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_USERNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="role" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_ROLE\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.usersByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/user/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_PROFILE\' | translate}} {{ \'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_PERSONAL_INFO\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_CHANGE_AVATAR\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-ng-show="Auth.isAdmin() || user.id === getCurrentUser().id" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_CHANGE_PASSWORD\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- PERSONAL INFO TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.info" data-ng-submit="updateItem()" novalidate>\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="user.fullname" required/>\n								<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="user.name" required/>\n								<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="user.email" required/>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END PERSONAL INFO TAB -->\n					<!-- CHANGE AVATAR TAB -->\n					<div class="tab-pane" id="tab_1_2">\n						<form action="#" role="form">\n							<div class="form-group">\n								<div class="fileinput fileinput-new" data-provides="fileinput">\n									<div class="fileinput-new thumbnail" style="width: 200px; height: 150px;">\n										<img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/>\n									</div>\n									<div class="fileinput-preview fileinput-exists thumbnail" style="max-width: 200px; max-height: 150px;">\n									</div>\n									<div>\n										<span class="btn default btn-file" data-ng-show="!uploader.queue[0]">\n											<span> {{ \'APPLICATION_SELECT_IMAGE\' | translate }} </span>\n											<input type="file" nv-file-select="" uploader="uploader" /><br/>\n										</span>\n										<button type="button" class="btn default" data-ng-show="uploader.queue[0]" data-dismiss="fileinput" ng-click="uploader.queue[0].remove()">\n											<span> {{ \'APPLICATION_REMOVE\' | translate }} </span>\n										</button>\n										<button type="button" class="btn green-haze" data-ng-show="uploader.queue[0]" data-ng-click="uploader.queue[0].upload()" ng-disabled="uploader.queue[0].isReady || uploader.queue[0].isUploading || uploader.queue[0].isSuccess">\n											<span> {{ \'APPLICATION_CONFIRM\' | translate }} </span>\n										</button>\n									</div>\n									<p>\n										</br> {{ \'MESSAGE_SUPPORTED_FORMATS\' | translate }} <b>jpg, png, jpeg</b>.\n									</p>\n								</div>\n							</div>\n						</form>\n						<div class="row">\n							<div class="col-md-2">\n								<table class="table" border="0">\n									<tbody>\n									<tr data-ng-repeat="item in uploader.queue">\n											<td style="border-top-style:none">\n												<strong>\n													{{ item.file.name }}\n												</strong>\n											</td>\n											<td data-ng-show="uploader.isHTML5" nowrap style="border-top-style:none">\n												{{ item.file.size/1024/1024|number:2 }} MB\n											</td>\n											<td nowrap style="border-top-style:none">\n												<button type="button" class="btn btn-danger btn-xs" data-ng-click="item.remove()">\n														<span class="glyphicon glyphicon-trash"></span> Remove\n												</button>\n											</td>\n										</tr>\n									</tbody>\n								</table>\n							</div>\n						</div>\n					</div>\n					<!-- END CHANGE AVATAR TAB -->\n					<!-- CHANGE PASSWORD TAB -->\n					<div class="tab-pane" id="tab_1_3" data-ng-show="Auth.isAdmin() || user.id === getCurrentUser().id">\n						<form name="forms.changePwd" data-ng-submit="forms.changePwd.$valid && updatePassword()" novalidate>\n							<!-- START CURRENT PWD -->\n							<div class="form-group" data-ng-if="!Auth.isAdmin()" data-ng-class="{\'has-error\': (forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="current_pwd" placeholder="{{\'APPLICATION_CURRENT_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.currentPwd" required/>\n								<span data-ng-show="(forms.changePwd.current_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.current_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CURRENT PWD -->\n							<!-- START NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="new_pwd" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NEW PWD -->\n							<!-- START RE-NEW PWD -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.changePwd.re_new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.re_new_pwd.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="password" name="re_new_pwd" placeholder="{{\'APPLICATION_RE_TYPE_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="user.reNewPwd" nx-equal="user.newPwd" required/>\n								<span data-ng-show="(forms.changePwd.new_pwd.$touched || forms.changePwd.$submitted) && forms.changePwd.new_pwd.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RE-NEW PWD -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n						<!-- <form action="#">\n							<div class="form-group">\n								<label class="control-label">Current Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="form-group">\n								<label class="control-label">New Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="form-group">\n								<label class="control-label">Re-type New Password</label>\n								<input type="password" class="form-control"/>\n							</div>\n							<div class="margin-top-10">\n								<a href="#" class="btn green-haze">Change Password </a>\n								<a href="#" class="btn default">Cancel </a>\n							</div>\n						</form> -->\n					</div>\n					<!-- END CHANGE PASSWORD TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/user/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{user.fullname}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-userpic">\n					<img ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{user.fullname}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{user.role}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.users.view.account\')}">\n							<a data-ng-href="/users/view/{{user.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/user/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-eye"></i>\n				<a href="/users/list">{{ \'APPLICATION_USERS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/users/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-user font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_USER\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_ACCOUNT\' | translate}}" canexit="exitValidation(forms.info.$valid)">\n			    <form name="forms.info" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="fullname" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n							<span data-ng-show="(forms.info.fullname.$touched || forms.info.$submitted) && forms.info.fullname.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START USERNAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_USERNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_USERNAME\' | translate}}" class="form-control" data-ng-model="item.name" required ng-remote-validate="/api/users/validate/name"/>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.name.$touched || forms.info.$submitted) && forms.info.name.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END USERNAME -->\n\n			      <!-- START EMAIL -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required ng-remote-validate="/api/users/validate/email"/>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.email" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n			        </span>\n							<span data-ng-show="(forms.info.email.$touched || forms.info.$submitted) && forms.info.email.$error.ngRemoteValidate" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_EMAIL\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END EMAIL -->\n\n			      <!-- START PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n			        <span data-ng-show="(forms.info.password.$touched || forms.info.$submitted) && forms.info.password.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END PASSWORD -->\n\n			      <!-- START RE PASSWORD -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			        <span data-ng-show="(forms.info.rpassword.$touched || forms.info.$submitted) && forms.info.rpassword.$error.nxEqual" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END RE PASSWORD -->\n\n			      <input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" ng-click="next()"/>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/variable/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_VARIABLE\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.variable" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.variable.name.$touched || forms.variable.$submitted) && forms.variable.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.variable.name.$touched || forms.variable.$submitted) && forms.variable.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.variable.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/variable/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/variables/list">{{ \'APPLICATION_VARIABLES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VARIABLES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="Variables.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_VARIABLE\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVariables([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="variables.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedVariables" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.variablesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="variableByPage in variablesByPage | filter: $select.search">\n													<div ng-bind-html="variableByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(variable, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="variable in displayedVariables" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="variable.defaultEntry" type="checkbox" checklist-model="Variables.checked" checklist-value="variable.id"></td>\n								<td>{{variable.name}}</td>\n					      <td>{{variable.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/variables/view/{{variable.id}}/settings" data-ng-class="{\'disabled\': variable.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(variable.name,variable.id)" data-ng-class="{\'disabled\': variable.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVariables.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_VARIABLES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.variablesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/variable/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVariable()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-eye"></i>\n					<a href="/variables/list">{{ \'APPLICATION_VARIABLES\' | translate }}</a>\n					<i data-ng-show="variable" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="variable">\n					<a href="#">{{variable.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/variable.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{variable.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.variables.view.settings\')}">\n							<a data-ng-href="/variables/view/{{variable.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/variable/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VARIABLE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVariable()" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="variable.name" required/>\n								<span data-ng-show="(forms.general.name.$touched || forms.general.$submitted) && forms.general.name.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="variable.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/context/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONTEXTS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="voiceContexts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONTEXT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/contexts/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVoiceContexts([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="voice_contexts.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedContexts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.contextsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="contextByPage in contextsByPage | filter: $select.search">\n													<div ng-bind-html="contextByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(context, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="context in displayedVoiceContexts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="context.defaultEntry" type="checkbox" checklist-model="voiceContexts.checked" checklist-value="context.id"></td>\n								<td>{{context.name}}</td>\n					      <td>{{context.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/contexts/view/{{context.id}}/settings" data-ng-class="{\'disabled\': context.defaultEntry}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(context.name,context.id)" data-ng-class="{\'disabled\': context.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVoiceContexts.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_CONTEXTS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.contextsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/context/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getContext()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-docs"></i>\n					<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n					<i data-ng-show="context" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="context">\n					<a href="#">{{context.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/context.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{context.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.contexts.view.settings\')}">\n							<a data-ng-href="/voice/contexts/view/{{context.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/context/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_CONTEXT\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceContext()" novalidate>\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="context.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/context/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-docs"></i>\n				<a href="/voice/contexts/list">{{ \'APPLICATION_CONTEXTS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/voice/contexts/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-docs font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_CONTEXT\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.context.$valid)">\n			    <form name="forms.context" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.context.name.$touched || forms.context.$submitted) && forms.context.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.context.name.$touched || forms.context.$submitted) && forms.context.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/moh/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-music-tone"></i>\n					<a href="/voice/mohs/list">{{ \'APPLICATION_MOHS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-music-tone font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_MOHS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="mohs.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_MOH_CLASS\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/mohs/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getMohs([\'name\', \'directory\', \'sort\', \'description\'])" csv-header="[\'Name\', \'Directory\', \'Sort\', \'Description\']" field-separator=";" filename="musiconholds_classes.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedMohs" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.mohsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="mohByPage in mohsByPage | filter: $select.search">\n													<div ng-bind-html="mohByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(moh, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n                <th st-sort="directory">{{ \'APPLICATION_PATH\' | translate }}</th>\n                <th st-sort="sort">{{ \'APPLICATION_SORT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="moh in displayedMohs" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="mohs.checked" checklist-value="moh.id" data-ng-hide="moh.defaultEntry"></td>\n								<td>{{moh.name}}</td>\n                <td>{{moh.directory}}</td>\n								<td>{{moh.sort | capitalize}}</td>\n					      <td>{{moh.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-class="{\'disabled\': moh.defaultEntry}" data-ng-href="/voice/mohs/view/{{moh.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-class="{\'disabled\': moh.defaultEntry}" data-ng-click="deleteItem(moh.name,moh.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedMohs.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_MOHS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="directory" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PATH\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="sort" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_SORT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.mohsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.addFiles.html",'\n<div class="row" data-ng-init="getSounds()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_MOH\' | translate }} {{ \'APPLICATION_ADD_FILES\' | translate }}</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="soundList.length">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_NO_SOUNDS_AVAILABLE\' | translate }}\n					</p>\n				</div>\n            <form name="forms.general" data-ng-submit="(item.sounds.length > 0) && addMohs()" data-ng-show="soundList.length" novalidate>\n\n              <!-- START SOUNDS -->\n              <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0}">\n                <label class="control-label">{{\'APPLICATION_SOUNDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n                <ui-select multiple data-ng-model="item.sounds" theme="bootstrap" name="sounds" required>\n                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n                  <ui-select-choices repeat="sound.id as sound in soundList | filter: $select.search">\n                    {{sound.display_name}}\n                  </ui-select-choices>\n                </ui-select>\n                <span data-ng-show="(forms.general.sounds.$touched || forms.general.$submitted) && item.sounds.length == 0" class="help-block help-block-error">\n                  <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n                </span>\n              </div>\n              <!-- END OPTIONS -->\n\n							<input type="submit" class="btn green-haze" value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</form>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.audios.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getAudioFiles()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AUDIOS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="audioFiles">\n						<a class="btn green-jungle " href="/voice/mohs/view/{{moh.id}}/add" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_ADD_FILES\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="note note-warning" data-ng-hide="audioFiles">\n					<h4 class="block">Warning!</h4>\n					<p>\n						 {{ \'MESSAGE_FOLDER_DOES_NOT_EXIST\' | translate }}\n					</p>\n				</div>\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover" data-ng-show="audioFiles">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_NAME\' | translate }}</th>\n								<th width="30%">{{ \'APPLICATION_PREVIEW\' | translate }}</th>\n								<th width="10%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="audioFiles">\n					    <tr data-ng-repeat="audiofile in audioFiles">\n								<td>{{audiofile}}</td>\n								<td>\n									<audio controls ng-src="{{getSecureSrc(audioSources[audiofile])}}" preload="none">\n				            Your browser does not support the audio tag.\n				          </audio></td>\n					      <td>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(audiofile,audiofile)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="audioFiles.length">\n								<td colspan="3" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AUDIOFILES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/moh/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getMoh()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-music-tone"></i>\n					<a href="/voice/mohs/list">{{ \'APPLICATION_MOH_CLASS\' | translate }}</a>\n					<i data-ng-show="moh" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="moh">\n					<a href="#">{{moh.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/moh.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{moh.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.mohs.view.settings\')}">\n							<a data-ng-href="/voice/mohs/view/{{moh.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.mohs.view.audios\') || $state.is(\'main.voice.mohs.view.add\')}">\n							<a data-ng-href="/voice/mohs/view/{{moh.id}}/audios">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_AUDIOS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/moh/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_MOH_CLASS\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceMoh()" novalidate>\n\n	            <!-- START PATH -->\n	            <div class="form-group" >\n	              <label class="control-label">{{\'APPLICATION_PATH\' | translate}}</label>\n	              <input type="text" name="path" class="form-control" data-ng-model="moh.directory" disabled/>\n	            </div>\n	            <!-- END PATH -->\n\n	            <!-- START SORT -->\n	            <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n	              <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n	              <ui-select data-ng-model="moh.sort" theme="bootstrap" name="sort" required>\n	                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n	                <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n	                  {{$translate.instant(sort.name)}}\n	                </ui-select-choices>\n	              </ui-select>\n	              <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n	                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n	              </span>\n	            </div>\n	            <!-- END SORT -->\n\n	            <!-- START DESCRIPTION -->\n				      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n				        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n				        <textarea type="text" name="description" class="form-control" data-ng-model="moh.description"/></textarea>\n								<span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n				        </span>\n				      </div>\n				      <!-- END DESCRIPTION -->\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/voice/moh/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard();getContexts();">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-music-tone"></i>\n				<a href="/voice/mohs/list">{{ \'APPLICATION_MOHS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-music-tone font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_MOH_CLASS\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.name.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n            <!-- START SORT -->\n            <!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$invalid}">\n              <label class="control-label">{{\'APPLICATION_SORT\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <ui-select data-ng-model="item.sort" theme="bootstrap" name="sort" required>\n                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n                <ui-select-choices repeat="sort.value as sort in sortOptions | filter: $select.search">\n                  {{$translate.instant(sort.name)}}\n                </ui-select-choices>\n              </ui-select>\n              <span data-ng-show="(forms.general.sort.$touched || forms.general.$submitted) && forms.general.sort.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div> -->\n            <!-- END SORT -->\n\n            <!-- START DESCRIPTION -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.description.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n			        <textarea type="text" name="description" class="form-control" data-ng-model="item.description"/></textarea>\n							<span data-ng-show="forms.general.$submitted && forms.general.description.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/queue/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-layers font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_QUEUES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="queues.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_QUEUE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/queues/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getQueues([\'name\', \'description\', \'strategy\', \'context\'])" csv-header="[\'Name\', \'Description\', \'Strategy\', \'Context\']" field-separator=";" filename="queues.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedQueues" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="6">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.voiceQueuesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="voiceQueueByPage in voiceQueuesByPage | filter: $select.search">\n													<div ng-bind-html="voiceQueueByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(queue, checked)" checklist-model checklist-value="name"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n						    <th st-sort="strategy">{{ \'APPLICATION_STRATEGY\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="queue in displayedQueues" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="queues.checked" checklist-value="queue.name"></td>\n								<td>{{queue.name}}</td>\n					      <td>{{queue.description}}</td>\n					      <td>{{queue.strategy}}</td>\n								<td>{{queue.context}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/queues/view/{{queue.name}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(queue.name,queue.name)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedQueues.length">\n								<td colspan="6" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="strategy" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_STRATEGY\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="6" class="text-center">\n					        <div class="pagination" st-pagination st-items-by-page="conf.voiceQueuesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/queue/view/view.agents.html",'<div class="row" data-ng-init="getTeams()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_AGENTS\' | translate}}</span>\n				</div>\n			</div>\n			<div class="note note-warning" data-ng-hide="teams.length">\n				<h4 class="block">Warning!</h4>\n				<p>\n					 {{ \'MESSAGE_NO_AVAILABLE_TEAMS\' | translate }}\n				</p>\n			</div>\n			<div class="portlet-body">\n				<!-- BEGIN FORM-->\n				<form action="index.html" class="form-horizontal form-row-seperated">\n					<div class="form-body text-center">\n						<div class="form-group last">\n							<div class="col-md-9" id="multi-select-team">\n							</div>\n						</div>\n					</div>\n				</form>\n				<!-- END FORM-->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/queue/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getQueue()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-layers"></i>\n					<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n					<i data-ng-show="queue" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="queue">\n					<a href="#">{{queue.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/queue.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{queue.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.queues.view.settings\')}">\n							<a data-ng-href="/voice/queues/view/{{queue.name}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.queues.view.agents\')}">\n							<a data-ng-href="/voice/queues/view/{{queue.name}}/agents">\n							<i class="icon-people"></i>\n							{{ \'APPLICATION_AGENTS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/queue/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_QUEUE_SETTINGS\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}</a>\n					</li>\n					<li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts();getMohs();getSounds();">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceQueue()" novalidate>\n							<div class="row">\n								<div class="col-md-6">\n							<!-- START STRATEGY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$invalid}">\n								<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.strategy" name="strategy" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n									<ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n										<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.strategy.$touched || forms.general.$submitted) && forms.general.strategy.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n				      <!-- END STRATEGY -->\n\n							<!-- START MOH -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MOH\' | translate}}</label>\n								<ui-select data-ng-model="queue.musiconhold" name="musiconhold" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="musiconhold.name as musiconhold in voiceMohs | filter: $select.search">\n										<div ng-bind-html="musiconhold.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_VOICE_MOH\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.musiconhold.$touched || forms.general.$submitted) && forms.general.musiconhold.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MOH -->\n\n							<!-- START TIMEOUT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="number" min="0" name="timeout" placeholder="{{\'APPLICATION_TIMEOUT\' | translate}}" class="form-control" data-ng-model="queue.timeout" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_TIMEOUT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.timeout.$touched || forms.general.$submitted) && forms.general.timeout.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TIMEOUT -->\n\n							<!-- START MAXLEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAXLEN\' | translate}}</label>\n								<input type="number" min="0" name="maxlen" placeholder="{{\'APPLICATION_MAXLEN\' | translate}}" class="form-control" data-ng-model="queue.maxlen" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MAXLEN\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.maxlen.$touched || forms.general.$submitted) && forms.general.maxlen.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAXLEN -->\n\n							<!-- START RETRY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RETRY\' | translate}}</label>\n								<input type="number" min="0" name="retry" placeholder="{{\'APPLICATION_RETRY\' | translate}}" class="form-control" data-ng-model="queue.retry" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RETRY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.retry.$touched || forms.general.$submitted) && forms.general.retry.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RETRY -->\n\n						</div>\n						<div class="col-md-6">\n							<!-- START WRAPUPTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WRAPUPTIME\' | translate}}</label>\n								<input type="number" min="0" name="wrapuptime" placeholder="{{\'APPLICATION_WRAPUPTIME\' | translate}}" class="form-control" data-ng-model="queue.wrapuptime" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_WRAPUPTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.wrapuptime.$touched || forms.general.$submitted) && forms.general.wrapuptime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END WRAPUPTIME -->\n\n							<!-- START WEIGHT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$invalid}">\n								<label class="control-label">{{\'APPLICATION_WEIGHT\' | translate}}</label>\n								<input type="number" min="0" name="weight" placeholder="{{\'APPLICATION_WEIGHT\' | translate}}" class="form-control" data-ng-model="queue.weight" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_WEIGHT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.weight.$touched || forms.general.$submitted) && forms.general.weight.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END WEIGHT -->\n\n							<!-- START JOINEMPTY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$invalid}">\n								<label class="control-label">{{\'APPLICATION_JOINEMPTY\' | translate}}</label>\n								<ui-select multiple data-ng-model="queue.joinempty" name="joinempty" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_JOINEMPTY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.joinempty.$touched || forms.general.$submitted) && forms.general.joinempty.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END JOINEMPTY -->\n\n							<!-- START LEAVEWHENEMPTY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$invalid}">\n								<label class="control-label">{{\'APPLICATION_LEAVEWHENEMPTY\' | translate}}</label>\n								<ui-select multiple data-ng-model="queue.leavewhenempty" name="leavewhenempty" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'strict\',\'loose\',\'paused\',\'penalty\',\'inuse\',\'ringing\',\'unavailable\',\'invalid\',\'unknown\',\'wrapup\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_LEAVEWHENEMPTY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.leavewhenempty.$touched || forms.general.$submitted) && forms.general.leavewhenempty.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END LEAVEWHENEMPTY -->\n\n							<!-- START ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.announce" name="announce" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in sounds | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.announce.$touched || forms.general.$submitted) && forms.general.announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE -->\n						</div>\n					</div>\n					<!-- START DESCRIPTION -->\n					<div class="form-group">\n						<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n						<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="queue.description"></textarea>\n					</div>\n					<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n\n					<div class="tab-pane" id="tab_1_2">\n						<form name="forms.announce" data-ng-submit="forms.announce.$valid && updateVoiceQueue()" novalidate>\n							<div class="row">\n								<div class="col-md-12">\n							<!-- START PERIODIC_ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select multiple data-ng-model="queue.periodic_announce" name="periodic_announce" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$item.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in periodicAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.periodic_announce.$touched || forms.announce.$submitted) && forms.announce.periodic_announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PERIODIC_ANNOUNCE -->\n						</div>\n					</div>\n							<div class="row">\n								<div class="col-md-6">\n							<p><h3>{{\'APPLICATION_SETTINGS\' | translate}}</h3></p>\n							<!-- START ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="announce_frequency" placeholder="{{\'APPLICATION_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.announce_frequency" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_frequency.$touched || forms.announce.$submitted) && forms.announce.announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_FREQUENCY -->\n\n							<!-- START MIN_ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="min_announce_frequency" placeholder="{{\'APPLICATION_MIN_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.min_announce_frequency" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MIN_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.min_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.min_announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MIN_ANNOUNCE_FREQUENCY -->\n\n							<!-- START PERIODIC_ANNOUNCE_FREQUENCY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}</label>\n								<input type="number" min="0" name="periodic_announce_frequency" placeholder="{{\'APPLICATION_PERIODIC_ANNOUNCE_FREQUENCY\' | translate}}" class="form-control" data-ng-model="queue.periodic_announce_frequency"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_PERIODIC_ANNOUNCE_FREQUENCY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.periodic_announce_frequency.$touched || forms.announce.$submitted) && forms.announce.periodic_announce_frequency.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PERIODIC_ANNOUNCE_FREQUENCY -->\n\n							<!-- START RANDOM_PERIODIC_ANNOUNCE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RANDOM_PERIODIC_ANNOUNCE\' | translate}}</label>\n								<ui-select data-ng-model="queue.random_periodic_announce" name="random_periodic_announce" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RANDOM_PERIODIC_ANNOUNCE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.random_periodic_announce.$touched || forms.announce.$submitted) && forms.announce.random_periodic_announce.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RANDOM_PERIODIC_ANNOUNCE -->\n\n							<!-- START ANNOUNCE_HOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_HOLDTIME\' | translate}}</label>\n								<ui-select data-ng-model="queue.announce_holdtime" name="announce_holdtime" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'once\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n									</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_HOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_holdtime.$touched || forms.announce.$submitted) && forms.announce.announce_holdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_HOLDTIME -->\n\n							<!-- START ANNOUNCE_POSITION -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION\' | translate}}</label>\n								<ui-select data-ng-model="queue.announce_position" name="announce_position" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'limit\',\'more\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_position.$touched || forms.announce.$submitted) && forms.announce.announce_position.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_POSITION -->\n\n							<!-- START ANNOUNCE_POSITION_LIMIT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$invalid}">\n								<label class="control-label">{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}</label>\n								<input type="number" min="0" name="announce_position_limit" placeholder="{{\'APPLICATION_ANNOUNCE_POSITION_LIMIT\' | translate}}" class="form-control" data-ng-model="queue.announce_position_limit"/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_ANNOUNCE_POSITION_LIMIT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.announce_position_limit.$touched || forms.announce.$submitted) && forms.announce.announce_position_limit.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END ANNOUNCE_POSITION_LIMIT -->\n\n							<!-- START REPORTHOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REPORTHOLDTIME\' | translate}}</label>\n								<ui-select data-ng-model="queue.reportholdtime" name="reportholdtime" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_REPORTHOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.reportholdtime.$touched || forms.announce.$submitted) && forms.announce.reportholdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END REPORTHOLDTIME -->\n\n						</div>\n							<div class="col-md-6">\n								<p><h3>{{\'APPLICATION_SOUNDS\' | translate}}</h3></p>\n								<!-- START QUEUE_REPORTHOLD -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE_REPORTHOLD\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="queue.queue_reporthold" name="queue_reporthold" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n										<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n											<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_QUEUE_REPORTHOLD\' | translate }}\n									</span>\n									<span data-ng-show="(forms.announce.queue_reporthold.$touched || forms.announce.$submitted) && forms.announce.queue_reporthold.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE_REPORTHOLD -->\n\n								<!-- START QUEUE_YOUARENEXT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$invalid}">\n									<label class="control-label">{{\'APPLICATION_QUEUE_YOUARENEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="queue.queue_youarenext" name="queue_youarenext" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n										<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n											<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_QUEUE_YOUARENEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.announce.queue_youarenext.$touched || forms.announce.$submitted) && forms.announce.queue_youarenext.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END QUEUE_YOUARENEXT -->\n\n							<!-- START QUEUE_THEREARE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_THEREARE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_thereare" name="queue_thereare" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_THEREARE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_thereare.$touched || forms.announce.$submitted) && forms.announce.queue_thereare.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_THEREARE -->\n\n							<!-- START QUEUE_CALLSWAITING -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_CALLSWAITING\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_callswaiting" name="queue_callswaiting" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_CALLSWAITING\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_callswaiting.$touched || forms.announce.$submitted) && forms.announce.queue_callswaiting.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_CALLSWAITING -->\n\n							<!-- START QUEUE_HOLDTIME -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_HOLDTIME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_holdtime" name="queue_holdtime" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_HOLDTIME\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_holdtime.$touched || forms.announce.$submitted) && forms.announce.queue_holdtime.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_HOLDTIME -->\n\n							<!-- START QUEUE_MINUTES -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_MINUTES\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_minutes" name="queue_minutes" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MINUTES\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_minutes.$touched || forms.announce.$submitted) && forms.announce.queue_minutes.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_MINUTES -->\n\n							<!-- START QUEUE_MINUTE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_MINUTE\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_minute" name="queue_minute" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MINUTE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_minute.$touched || forms.announce.$submitted) && forms.announce.queue_minute.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_MINUTE -->\n\n							<!-- START QUEUE_SECONDS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_SECONDS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_seconds" name="queue_seconds" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_SECONDS\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_seconds.$touched || forms.announce.$submitted) && forms.announce.queue_seconds.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_SECONDS -->\n\n							<!-- START QUEUE_THANKYOU -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$invalid}">\n								<label class="control-label">{{\'APPLICATION_QUEUE_THANKYOU\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.queue_thankyou" name="QUEUE_THANKYOU" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n									<ui-select-choices repeat="returnAnnouncePath(announce) as announce in queueAnnounces | filter: $select.search">\n										<div ng-bind-html="announce.display_name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_THANKYOU\' | translate }}\n								</span>\n								<span data-ng-show="(forms.announce.queue_thankyou.$touched || forms.announce.$submitted) && forms.announce.queue_thankyou.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END QUEUE_THANKYOU -->\n\n						</div>\n					</div>\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<div class="tab-pane" id="tab_1_3">\n						<form name="forms.advanced" data-ng-submit="forms.advanced.$valid && updateVoiceQueue()" novalidate>\n\n							<div class="row">\n								<div class="col-md-6">\n\n							<!-- START AUTOPAUSE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTOPAUSE\' | translate}}</label>\n								<ui-select data-ng-model="queue.autopause" name="autopause" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\',\'all\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_AUTOPAUSE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.autopause.$touched || forms.advanced.$submitted) && forms.advanced.autopause.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END AUTOPAUSE -->\n\n							<!-- START RINGINUSE -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$invalid}">\n								<label class="control-label">{{\'APPLICATION_RINGINUSE\' | translate}}</label>\n								<ui-select data-ng-model="queue.ringinuse" name="ringinuse" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_RINGINUSE\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.ringinuse.$touched || forms.advanced.$submitted) && forms.advanced.ringinuse.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END RINGINUSE -->\n\n							<!-- START MEMBER_DELAY -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MEMBER_DELAY\' | translate}}</label>\n								<input type="number" min="0" name="memberdelay" placeholder="{{\'APPLICATION_MEMBER_DELAY\' | translate}}" class="form-control" data-ng-model="queue.memberdelay" required/>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MEMBER_DELAY\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.memberdelay.$touched || forms.advanced.$submitted) && forms.advanced.memberdelay.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MEMBER_DELAY -->\n						</div>\n							<div class="col-md-6">\n\n							<!-- START TIMEOUTRESTART -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TIMEOUTRESTART\' | translate}}</label>\n								<ui-select data-ng-model="queue.timeoutrestart" name="timeoutrestart" theme="bootstrap">\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="item in [\'yes\',\'no\'] | filter: $select.search">\n										<div ng-bind-html="item | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_TIMEOUTRESTART\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.timeoutrestart.$touched || forms.advanced.$submitted) && forms.advanced.timeoutrestart.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TIMEOUTRESTART -->\n\n							<!-- START MONITOR_FORMAT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MONITOR_FORMAT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="queue.monitor_format" name="monitor_format" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="monFormat.value as monFormat in monitorFormats | filter: $select.search">\n										<div ng-bind-html="monFormat.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_MONITOR_FORMAT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.monitor_format.$touched || forms.advanced.$submitted) && forms.advanced.monitor_format.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MONITOR_FORMAT -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}</label>\n								<ui-select data-ng-model="queue.context" name="context" theme="bootstrap">\n									<ui-select-match allow-clear placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_QUEUE_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.advanced.context.$touched || forms.advanced.$submitted) && forms.advanced.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n						</div>\n					</div>\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),
+a.put("app/voice/queue/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-layers"></i>\n				<a href="/voice/queues/list">{{ \'APPLICATION_QUEUES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="/voice/queues/wizard">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-layers font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_QUEUE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.queue.$valid)">\n			    <form name="forms.queue" novalidate>\n\n			      <!-- START NAME -->\n			      <div class="form-group" data-ng-class="{\'has-error\': (forms.queue.name.$touched || forms.queue.$submitted) && forms.queue.name.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n							<span data-ng-show="(forms.queue.name.$touched || forms.queue.$submitted) && forms.queue.name.$error.required" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END NAME -->\n\n			      <!-- START STRATEGY -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.queue.strategy.$touched || forms.queue.$submitted) && forms.queue.strategy.$invalid}">\n							<label class="control-label">{{\'APPLICATION_STRATEGY\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="item.strategy" name="strategy" theme="bootstrap" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.toUpperCase()}}</ui-select-match>\n								<ui-select-choices repeat="strategy in [\'ringall\', \'leastrecent\', \'fewestcalls\', \'random\', \'rrmemory\', \'linear\', \'wrandom\', \'rrordered\'] | filter: $select.search">\n									<div ng-bind-html="strategy.toUpperCase() | highlight: $select.search"></div>\n								</ui-select-choices>\n							</ui-select>\n							<span class="help-block">\n								{{ \'DESCRIPTION_QUEUE_STRATEGY\' | translate }}\n							</span>\n							<span data-ng-show="(forms.queue.strategy.$touched || forms.queue.$submitted) && forms.queue.strategy.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n			      <!-- END STRATEGY -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n			      <button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/realtime/view/agent/agent.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initAgents()">\n	<div class="col-md-12">\n	 <div ng-show="selected">Selection from a modal: {{ selected }}</div>\n		<!-- BEGIN TABLE -->\n			<table st-table="displayedGroups" st-safe-src="groups" class="table table-striped table-bordered table-hover">\n				<div class="table-responsive">\n				  <thead>\n						<tr>\n							<th colspan="10">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n												<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<!-- <div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div> -->\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="memebername" colspan="3">{{ \'APPLICATION_AGENT\' | translate }}</th>\n					    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_LOGIN\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_PAUSE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_INCOMING_CALL\' | translate }}</th>\n							<th>{{ \'APPLICATION_SERVED\' | translate }}</th>\n							<th colspan="2"></th>\n					  </tr>\n				  </thead>\n					<tbody>\n				    <tr data-ng-repeat-start="group in displayedGroups">\n							<td rowspan="{{group.queues.length}}" align="center" style="vertical-align:middle">{{group.membername}}</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								{{queue.queue}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								 <span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$first" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n							<td rowspan="{{group.queues.length}}" align="center" style="vertical-align:middle">\n								<span data-ng-show="group.queues.length > 1" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, group.queues)"> </span>\n								<span class="icon-plus font-green" style="cursor:pointer;" ng-click="add(null, group.queues)"> </span>\n								<span data-ng-show="group.queues.length > 1" class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, group.queues)"></span>\n							</td>\n				    </tr>\n						<tr data-ng-repeat="queue in group.queues" data-ng-if="$middle">\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{queue.queue}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$middle" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-repeat="queue in group.queues" data-ng-if="group.queues.length > 1 && $last" data-ng-repeat-end>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span data-ng-class="{\'icon-like font-green\': queue.lastevent != \'called\' && queue.lastevent != \'connect\' ,\'icon-bell font-yellow\': queue.lastevent == \'called\', \'icon-call-in font-red\': queue.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span class="icon-cup" data-ng-class="queue.paused ? \'font-red\': \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{queue.queue}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.loggedAt}}" data-ng-show="queue.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!queue.logged"></span>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<time is="relative-time" datetime="{{queue.pausedAt}}" data-ng-show="queue.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{queue.paused ? \'(\' + queue.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{queue.lastcall}}" data-ng-show="queue.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								{{queue.callstaken}}\n							</td>\n							<td data-ng-repeat="queue in group.queues" data-ng-if="$last" align="center">\n								<span data-ng-show="queue.logged" class="icon-cup pull-left" style="cursor:pointer;" ng-click="pause(null, queue)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" ng-click="remove(null, queue)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-hide="displayedGroups.length">\n							<td colspan="9" style="text-align:center;">\n								<i>No agents available</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td colspan="1">\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n							<td colspan="9"></td>\n					  </tr>\n				    <tr>\n				      <td colspan="10" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n				      </td>\n				    </tr>\n				  </tfoot>\n				</div>\n			</table>\n		<!-- END TABLE -->\n	</div>\n\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/agent/pause.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_PAUSE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item" data-ng-hide="data.length">\n				 {{ \'APPLICATION_QUEUE\' | translate }}: <b class="pull-right">{{ selected.queue }}</b>\n			</li>\n      <li class="list-group-item">\n				 {{ \'APPLICATION_AGENT\' | translate }}: <b class="pull-right">{{ selected.membername }}</b>\n			</li>\n      <li class="list-group-item">\n        <div class="btn-group">\n          <ui-select ng-model="selected.item" theme="bootstrap" ng-disabled="disabled" class="btn input-xlarge pull-left">\n            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="item in items | filter: $select.search">\n              <div ng-bind-html="item | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <button class="btn btn-success pull-right" type="button" ng-click="ok(true)" style="margin-top: 7px;">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n        </div>\n			</li>\n		</ul>\n	</div>\n  <button data-ng-show="(data | isArray) ? (data | where: {paused: true}).length : data.paused " class="btn btn-danger btn-block" type="button" ng-click="ok(false, data.queue)">Exit</button>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/agent/queue.modal.add.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info" data-ng-show="selected.queue">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="queues.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.queue" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n                <div ng-bind-html="queue.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n    <!-- End List group -->\n  </div>\n  <div class="note note-warning" data-ng-hide="selected.queue">\n    <h4 class="block">Warning!</h4>\n    <p>\n       {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n    </p>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()" data-ng-show="selected.queue">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/agent/queue.modal.remove.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item" data-ng-hide="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/areport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedAgents" st-safe-src="agents" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="11">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n											<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n						<th st-sort="agentcalledAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="agentconnectAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="agentcompleteAt">{{ \'APPLICATION_COMPLETED_AT\' | translate }}</th>\n						<th st-sort="reason">{{ \'APPLICATION_REASON\' | translate }}</th>\n						<th st-sort="holdtime">{{ \'APPLICATION_HOLDTIME\' | translate }}</th>\n				    <th st-sort="talktime">{{ \'APPLICATION_TALKTIME\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="agent in displayedAgents">\n						<td><span data-ng-class="{\'icon-call-in font-yellow\': agent.lastevent === \'called\',\n							\'icon-phone font-blue\': agent.lastevent === \'connect\',\n							\'icon-call-end font-green\': agent.lastevent === \'complete\',\n							\'icon-call-end font-red\': agent.lastevent === \'answered_elsewhere\'}"></span>\n						</td>\n						<td>{{agent.uniqueid}}</td>\n						<td>{{agent.queue}}</td>\n						<td>{{agent.destcalleridname ? agent.destcalleridname + \' [\' + agent.membername + \']\' : agent.membername }}</td>\n						<td>{{agent.calleridname ? agent.calleridname + \' [\' + agent.calleridnum + \']\' : agent.calleridnum }}</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcalledAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentconnectAt}}" data-ng-show="agent.agentconnectAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{agent.agentcompleteAt}}" data-ng-show="agent.agentcompleteAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							{{agent.reason | uppercase}}\n						</td>\n						<td>{{agent.holdtime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n			      <td>{{agent.talktime || 0 | VoiceRealtimeViewAgentReportFilter | date:\'HH:mm:ss\'}}</td>\n			    </tr>\n					<tr data-ng-hide="displayedAgents.length">\n						<td colspan="11" style="text-align:center;">\n							<i>No agents available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" data-ng-model="filters.uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="membername" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="7"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="11" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/qreport/report.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initReport()">\n	<div class="col-md-12">\n		<!-- START TABLE -->\n		<table st-table="displayedQueues" st-safe-src="queues" class="table table-striped table-bordered table-hover">\n			<div class="table-responsive">\n			  <thead>\n					<tr>\n						<th colspan="10">\n							<div class="row">\n								<div class="col-md-6">\n									<ui-select class="input-xsmall" ng-model="conf.queuesByPage" theme="bootstrap" ng-disabled="disabled">\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="queueByPage in queuesByPage | filter: $select.search">\n											<div ng-bind-html="queueByPage.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n								</div>\n								<div class="col-md-6">\n									<div class="input-group input-medium pull-right">\n										<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search"/>\n										<span class="input-group-addon">\n											<i class="fa fa-search"></i>\n										</span>\n									</div>\n								</div>\n							</div>\n						</th>\n					</tr>\n				  <tr>\n						<th></th>\n						<th st-sort="uniqueid">{{ \'APPLICATION_UNIQUEID\' | translate }}</th>\n				    <th st-sort="queue">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n				    <th st-sort="membername">{{ \'APPLICATION_AGENT\' | translate }}</th>\n						<th st-sort="calleridname">{{ \'APPLICATION_CALLER\' | translate }}</th>\n						<th st-sort="queuecallerjoinAt">{{ \'APPLICATION_CALLED_AT\' | translate }}</th>\n						<th st-sort="queuecallerleaveAt">{{ \'APPLICATION_CONNECTED_AT\' | translate }}</th>\n						<th st-sort="queuecallerabandonAt">{{ \'APPLICATION_ABANDONED_AT\' | translate }}</th>\n				  </tr>\n			  </thead>\n			  <tbody>\n			    <tr data-ng-repeat="queue in displayedQueues">\n						<td><span data-ng-class="{\'icon-call-in font-yellow\': queue.queuecallerjoinAt && !queue.queuecallerleaveAt,\n							\'icon-phone font-blue\': queue.queuecallerjoinAt && queue.queuecallerleaveAt,\n							\'icon-call-end font-red\': queue.queuecallerjoinAt && queue.queuecallerleaveAt && queue.queuecallerabandonAt}"></span>\n						</td>\n						<td>{{queue.uniqueid}}</td>\n						<td>{{queue.queue}}</td>\n						<td>{{queue.connectedlinename ? queue.connectedlinename + \' [\' + queue.connectedlinenum + \']\' : queue.connectedlinenum }}</td>\n						<td>{{queue.calleridname ? queue.calleridname + \' [\' + queue.calleridnum + \']\' : queue.calleridnum }}</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerjoinAt}}">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerleaveAt}}" data-ng-show="queue.queuecallerleaveAt">\n								April 1, 2014\n							</time>\n						</td>\n						<td>\n							<time is="relative-time" datetime="{{queue.queuecallerabandonAt}}" data-ng-show="queue.queuecallerabandonAt">\n								April 1, 2014\n							</time>\n						</td>\n			    </tr>\n					<tr data-ng-hide="displayedQueues.length">\n						<td colspan="10" style="text-align:center;">\n							<i>No queues available</i>\n						</td>\n					</tr>\n			  </tbody>\n			  <tfoot>\n					<tr>\n						<td/>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="uniqueid" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_UNIQUEID\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="connectedlinename" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_AGENT\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n				    <td>\n							<div class="input-icon right">\n								<i class="fa fa-search"></i>\n								<input st-search="calleridnum" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CALLER\' | translate | lowercase}}" class="form-control" type="search"/>\n							</div>\n				    </td>\n						<td colspan="6"></td>\n				  </tr>\n			    <tr>\n			      <td colspan="10" class="text-center">\n							<div class="pagination" st-pagination st-items-by-page="conf.queuesByPage.value" st-displayed-pages="7"></div>\n			      </td>\n			    </tr>\n			  </tfoot>\n			</div>\n		</table>\n		<!-- END TABLE -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/realtime/view/queue/pause.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_PAUSE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n				 {{ \'APPLICATION_QUEUE\' | translate }}: <b class="pull-right">{{ selected.queue }}</b>\n			</li>\n      <li class="list-group-item" data-ng-hide="data.length">\n				 {{ \'APPLICATION_AGENT\' | translate }}: <b class="pull-right">{{ selected.membername }}</b>\n			</li>\n      <li class="list-group-item">\n        <div class="btn-group">\n          <ui-select ng-model="selected.item" theme="bootstrap" ng-disabled="disabled" class="btn input-xlarge pull-left">\n            <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected}}</ui-select-match>\n            <ui-select-choices repeat="item in items | filter: $select.search">\n              <div ng-bind-html="item | highlight: $select.search"></div>\n            </ui-select-choices>\n          </ui-select>\n          <button class="btn btn-success pull-right" type="button" ng-click="ok(true)" style="margin-top: 7px;">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n        </div>\n			</li>\n		</ul>\n	</div>\n  <button data-ng-show="(data | isArray) ? (data | where: {paused: true}).length : data.paused " class="btn btn-danger btn-block" type="button" ng-click="ok(false, data.queue)">Exit</button>\n</div>\n<div class="modal-footer">\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.add.modal.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="queues.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.queue" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_QUEUE\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="queue.name as queue in queues | filter: $select.search">\n                <div ng-bind-html="queue.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" ui-btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" ui-btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n	</div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initQueues()">\n	<div class="col-md-12">\n	 <div ng-show="selected">Selection from a modal: {{ selected }}</div>\n		<!-- BEGIN TABLE -->\n			<table st-table="displayedGroups" st-safe-src="groups" class="table table-striped table-bordered table-hover">\n				<div class="table-responsive">\n				  <thead>\n						<tr>\n							<th colspan="10">\n								<div class="row">\n									<div class="col-md-6">\n										<ui-select class="input-xsmall" ng-model="conf.agentsByPage" theme="bootstrap" ng-disabled="disabled">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="agentByPage in agentsByPage | filter: $select.search">\n												<div ng-bind-html="agentByPage.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n									</div>\n									<div class="col-md-6">\n										<!-- <div class="input-group input-medium pull-right">\n											<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n											<span class="input-group-addon">\n												<i class="fa fa-search"></i>\n											</span>\n										</div> -->\n									</div>\n								</div>\n							</th>\n						</tr>\n						<tr>\n							<th st-sort="memebername" colspan="3">{{ \'APPLICATION_QUEUE\' | translate }}</th>\n					    <th st-sort="agent">{{ \'APPLICATION_AGENT\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_LOGIN\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_PAUSE\' | translate }}</th>\n							<th>{{ \'APPLICATION_LAST_INCOMING_CALL\' | translate }}</th>\n							<th>{{ \'APPLICATION_SERVED\' | translate }}</th>\n							<th colspan="2"></th>\n					  </tr>\n				  </thead>\n					<tbody>\n				    <tr data-ng-repeat-start="group in displayedGroups">\n							<td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">{{group.queue}}</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								{{agent.membername}}\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								 <span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								{{agent.callstaken}}\n							</td>\n							<td data-ng-repeat="agent in group.agents" data-ng-if="$first" align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n							<td rowspan="{{group.agents.length}}" align="center" style="vertical-align:middle">\n								<span data-ng-show="group.agents.length > 1" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, group.agents)"> </span>\n								<span class="icon-plus font-green" style="cursor:pointer;" data-ng-click="add(null, group.agents)"> </span>\n								<span data-ng-show="group.agents.length > 1" class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, group.agents)"></span>\n							</td>\n				    </tr>\n						<tr data-ng-repeat="agent in group.agents" data-ng-if="$middle">\n							<td align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\' : \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{agent.membername}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td align="center">\n								{{agent.callstaken}}\n							</td>\n							<td align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-repeat="agent in group.agents" data-ng-if="group.agents.length > 1 && $last" data-ng-repeat-end>\n							<td align="center">\n								<span data-ng-class="{\'icon-like font-green\': agent.lastevent != \'called\' && agent.lastevent != \'connect\' ,\'icon-bell font-yellow\': agent.lastevent == \'called\', \'icon-call-in font-red\': agent.lastevent == \'connect\'}"></span>\n							</td>\n							<td align="center">\n								<span class="icon-cup" data-ng-class="agent.paused ? \'font-red\': \'font-green\'"></span>\n							</td>\n							<td align="center">\n								{{agent.membername}}\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.loggedAt}}" data-ng-show="agent.logged">\n									April 1, 2014\n								</time>\n								<span class="badge badge-empty badge-danger" data-ng-show="!agent.logged"></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.pausedAt}}" data-ng-show="agent.pausedAt">\n									April 1, 2014\n								</time>\n								<span> <strong>{{agent.paused ? \'(\' + agent.reason + \')\' : \'\'}}</strong></span>\n							</td>\n							<td align="center">\n								<time is="relative-time" datetime="{{agent.lastcall}}" data-ng-show="agent.lastcall">\n									April 1, 2014\n								</time>\n							</td>\n							<td align="center">\n								{{agent.callstaken}}\n							</td>\n							<td align="center">\n								<span data-ng-show="agent.logged" class="icon-cup pull-left" style="cursor:pointer;" data-ng-click="pause(null, agent)"> </span>\n								<span class="icon-close font-red pull-right" style="cursor:pointer;" data-ng-click="remove(null, agent)"> </span>\n							</td>\n						</tr>\n						<tr data-ng-hide="displayedGroups.length">\n							<td colspan="9" style="text-align:center;">\n								<i>No agents available</i>\n							</td>\n						</tr>\n				  </tbody>\n				  <tfoot>\n						<tr>\n							<td colspan="1">\n								<div class="input-icon right">\n									<i class="fa fa-search"></i>\n									<input st-search="queue" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_QUEUE\' | translate | lowercase}}" class="form-control" type="search"/>\n								</div>\n							<td colspan="9"></td>\n					  </tr>\n				    <tr>\n				      <td colspan="10" class="text-center">\n								<div class="pagination" st-pagination st-items-by-page="conf.agentsByPage.value" st-displayed-pages="7"></div>\n				      </td>\n				    </tr>\n				  </tfoot>\n				</div>\n			</table>\n		<!-- END TABLE -->\n	</div>\n\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/realtime/view/queue/queue.modal.add.html",'<div class="modal-header" data-ng-init="initAdd()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_SELECTION\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info" data-ng-show="selected.queue">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="agents.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.agent" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_AGENT\' | translate}}">{{$select.selected.name}}</ui-select-match>\n              <ui-select-choices repeat="{name: agent.name, id: agent.id} as agent in agents | filter: $select.search">\n                <div ng-bind-html="agent.name | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PENALTY\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="number" min="0" max="10" placeholder="{{\'APPLICATION_PENALTY\' | translate}}" class="form-control" data-ng-model="selected.penalty"/>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_PAUSE\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.paused" btn-checkbox> {{ selected.paused ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-show="selected.paused">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_REASON\' | translate}}:</label>\n					<div class="col-md-10">\n            <ui-select ng-model="selected.reason" theme="bootstrap" ng-disabled="disabled">\n              <ui-select-match placeholder="{{\'APPLICATION_REASON\' | translate}}">{{$select.selected}}</ui-select-match>\n              <ui-select-choices repeat="pause in pauses | filter: $select.search">\n                <div ng-bind-html="pause | highlight: $select.search"></div>\n              </ui-select-choices>\n            </ui-select>\n					</div>\n				</div>\n			</li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGIN\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.login" btn-checkbox> {{ selected.login ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n					</div>\n				</div>\n      </li>\n		</ul>\n    <!-- End List group -->\n  </div>\n  <div class="note note-warning" data-ng-hide="selected.queue">\n    <h4 class="block">Warning!</h4>\n    <p>\n       {{ \'MESSAGE_NO_QUEUES_AVAILABLE\' | translate }}\n    </p>\n  </div>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="okAdd()" data-ng-show="selected.queue">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.modal.remove.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row" data-ng-hide="data.length">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/queue/queue.remove.modal.html",'<div class="modal-header" data-ng-init="initRemove()">\n  <h3 class="modal-title">{{ \'APPLICATION_QUEUE_REMOVAL\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <div class="panel panel-info">\n		<!-- Default panel contents -->\n		<div class="panel-heading">\n			<h3 class="panel-title"><span class="icon-doc"></span> Summary</h3>\n		</div>\n		<!-- List group -->\n		<ul class="list-group">\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_AGENT\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_AGENT\' | translate}}" class="form-control" data-ng-model="selected.membername" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item" data-ng-hide="data.length">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_QUEUE\' | translate}}:</label>\n					<div class="col-md-10">\n            <input type="text" placeholder="{{\'APPLICATION_QUEUE\' | translate}}" class="form-control" data-ng-model="selected.queue" ng-disabled="true"/>\n					</div>\n				</div>\n      </li>\n      <li class="list-group-item">\n        <div class="form-group row">\n					<label class="col-md-2 control-label" style="margin-top: 7px;">{{\'APPLICATION_LOGOUT\' | translate}}:</label>\n					<div class="col-md-10">\n            <button type="button" class="btn btn-default form-control" data-ng-model="selected.logout" btn-checkbox> {{ selected.logout ? \'APPLICATION_YES\' : \'APPLICATION_NO\' | translate }} </button>\n            <span class="help-block">{{ \'MESSAGE_PERMANENT_REMOVAL_FROM_QUEUE\' | translate }}. </span>\n          </div>\n				</div>\n      </li>\n		</ul>\n	</div>\n  <button class="btn btn-danger btn-block" type="button" ng-click="okRemove()">{{ \'APPLICATION_REMOVE\' | translate }}</button>\n</div>\n<div class="modal-footer">\n  <!-- <button class="btn btn-success" type="button" ng-click="okRemove()">{{ \'APPLICATION_CONFIRM\' | translate }}</button> -->\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/voice/realtime/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-energy"></i>\n					<a href="/voice/realtime/list">{{ \'APPLICATION_REALTIME\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<div>\n		    <nav class="navbar navbar-default" role="navigation">\n		        <div class="navbar-header">\n		            <button type="button" class="navbar-toggle" ng-init="navCollapsed = true" ng-click="navCollapsed = !navCollapsed">\n		                <span class="sr-only">Toggle navigation</span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		                <span class="icon-bar"></span>\n		            </button>\n		            <!-- <a class="navbar-brand" ui-sref="home">Brand</a> -->\n		        </div>\n\n		        <!-- Collect the nav links, forms, and other content for toggling -->\n		        <div class="collapse navbar-collapse" ng-class="!navCollapsed && \'in\'">\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_AGENTS\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'agents\'></tree>\n		                </li>\n		            </ul>\n		            <ul class="nav navbar-nav">\n		                <li dropdown>\n		                    <a href="#" dropdown-toggle>\n		                        {{ \'APPLICATION_QUEUES\' | translate }}\n		                        <b class=\'caret\'></b>\n		                    </a>\n		                    <tree tree=\'queues\'></tree>\n		                </li>\n		            </ul>\n		        </div>\n		        <!-- /.navbar-collapse -->\n		    </nav>\n		</div>\n		<div ui-view></div>\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/inbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-in"></i>\n					<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/routes/inbound/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="routes_inbound.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_DID\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.exten,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DID\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/inbound/view/view.application.html",'\n<div class="row" data-ng-init="initApplication(); getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START APP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n					            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n					            <ui-select-choices repeat="app.value as app in $application.applications| filter: $select.search">\n					              <div ng-bind-html="app.name | highlight: $select.search"></div>\n					            </ui-select-choices>\n					          </ui-select>\n										<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APP -->\n\n									<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n										<!-- START QUEUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n											<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n													<div ng-bind-html="queue.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END QUEUE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n												<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n													{{$translate.instant(queueOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n									</div>\n									<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n													{{$translate.instant(audioOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n									</div>\n									<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n										<!-- START INTERFACE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n											<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END INTERFACE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n											<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n									</div>\n									<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n										<!-- START PROJECT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n											<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n													<div ng-bind-html="project.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PROJECT -->\n\n										<!-- START URL -->\n										<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<div class="input-group">\n												<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n												<span class="input-group-addon">\n													<input type="checkbox" data-ng-model="application.urlEnabled">\n												</span>\n											</div>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n											</span>\n										</div> -->\n										<!-- END URL -->\n\n									</div>\n									<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n										<!-- START CONTEXT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n											<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n													<div ng-bind-html="context.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CONTEXT -->\n\n										<!-- START EXTENSION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n											<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END EXTENSION -->\n\n										<!-- START PRIORITY -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n											<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PRIORITY -->\n									</div>\n									<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n										<!-- START HANGUPCAUSE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n													{{$translate.instant(hangupCause.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END HANGUPCAUSE -->\n									</div>\n									<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n										<!-- START VARIABLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n											<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARIABLE -->\n\n										<!-- START VARVALUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n											<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARVALUE -->\n									</div>\n									<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n										<!-- START CUSTOMAPP -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n											<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CUSTOMAPP -->\n\n										<!-- START APPDATA -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n											<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n											<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END APPDATA -->\n									</div>\n									<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n										<!-- START VOICEMAIL -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n											<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VOICEMAIL -->\n									</div>\n									<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								</form>\n								</wz-step>\n									<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n										<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START INTERVAL_TYPE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n										<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n												{{$translate.instant(intType.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERVAL_TYPE -->\n									<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n											<!-- START TIME -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n												<div class="input-group input-large">\n													<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n													<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n												</div>\n											</div>\n											<!-- END TIME -->\n\n											<!-- START WEEKDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END WEEKDAY -->\n\n											<!-- START MONTHDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTHDAY -->\n\n											<!-- START MONTH -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n								<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/inbound/view/view.applicationSettings.html",'\n<div class="row" data-ng-init="initApplication();getIntervals();getApplication();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n									<!-- START QUEUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n										<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n												<div ng-bind-html="queue.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END QUEUE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n											<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n												{{$translate.instant(queueOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n								</div>\n								<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n												{{$translate.instant(audioOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n								</div>\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n									<!-- START INTERFACE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n										<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERFACE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n										<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n								</div>\n								<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n									<!-- START PROJECT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n										<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n												<div ng-bind-html="project.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PROJECT -->\n\n									<!-- START URL -->\n									<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<div class="input-group">\n											<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n											<span class="input-group-addon">\n												<input type="checkbox" data-ng-model="application.urlEnabled">\n											</span>\n										</div>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n										</span>\n									</div> -->\n									<!-- END URL -->\n\n								</div>\n								<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n									<!-- START CONTEXT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n										<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n												<div ng-bind-html="context.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CONTEXT -->\n\n									<!-- START EXTENSION -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n										<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END EXTENSION -->\n\n									<!-- START PRIORITY -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n										<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PRIORITY -->\n								</div>\n								<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n									<!-- START HANGUPCAUSE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n										<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n												{{$translate.instant(hangupCause.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END HANGUPCAUSE -->\n								</div>\n								<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n									<!-- START VARIABLE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n										<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARIABLE -->\n\n									<!-- START VARVALUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n										<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARVALUE -->\n								</div>\n								<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n									<!-- START CUSTOMAPP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n										<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CUSTOMAPP -->\n\n									<!-- START APPDATA -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n										<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n										<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APPDATA -->\n								</div>\n								<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n									<!-- START VOICEMAIL -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n										<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VOICEMAIL -->\n								</div>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n											</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/inbound/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/inbound/view/{{route.id}}/application" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th width="20%"></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app+\' application\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/inbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-in"></i>\n					<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/inboundroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.inbound.view.settings\')}">\n							<a data-ng-href="/voice/routes/inbound/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.inbound.view.applications\') || $state.is(\'main.voice.routes.inbound.view.application\') || $state.is(\'main.voice.routes.inbound.view.applications.settings\')}">\n							<a data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/inbound/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/inbound/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-call-in"></i>\n				<a href="/voice/routes/inbound/list">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-call-in font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INBOUND\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/route/internal/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-reload"></i>\n					<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/routes/internal/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="internalRoutes.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_DID\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/internal/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.exten,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DID\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/internal/view/view.application.html",'\n<div class="row" data-ng-init="initApplication(); getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_APPLICATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START APP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n					            <ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n					            <ui-select-choices repeat="app.value as app in $application.applications| filter: $select.search">\n					              <div ng-bind-html="app.name | highlight: $select.search"></div>\n					            </ui-select-choices>\n					          </ui-select>\n										<span data-ng-show="(forms.settings.app.$touched || forms.settings.$submitted) && forms.settings.app.$invalid && forms.settings.app.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APP -->\n\n									<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n										<!-- START QUEUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n											<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n													<div ng-bind-html="queue.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END QUEUE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n												<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n													{{$translate.instant(queueOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n									</div>\n									<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n										<!-- START AUDIOFILE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n											<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n												<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n													<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END AUDIOFILE -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n											<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n													{{$translate.instant(audioOpt.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n									</div>\n									<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n										<!-- START INTERFACE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n											<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END INTERFACE -->\n\n										<!-- START TIMEOUT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n											<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n											<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END TIMEOUT -->\n\n										<!-- START OPTIONS -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n											<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n											<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END OPTIONS -->\n\n										<!-- START URL -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END URL -->\n									</div>\n									<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n										<!-- START PROJECT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n											<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n													<div ng-bind-html="project.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PROJECT -->\n\n										<!-- START URL -->\n										<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n											<div class="input-group">\n												<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n												<span class="input-group-addon">\n													<input type="checkbox" data-ng-model="application.urlEnabled">\n												</span>\n											</div>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n											<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n											</span>\n										</div> -->\n										<!-- END URL -->\n\n									</div>\n									<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n										<!-- START CONTEXT -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n											<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n													<div ng-bind-html="context.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CONTEXT -->\n\n										<!-- START EXTENSION -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n											<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END EXTENSION -->\n\n										<!-- START PRIORITY -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n											<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END PRIORITY -->\n									</div>\n									<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n										<!-- START HANGUPCAUSE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n											<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n											<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n												<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n													{{$translate.instant(hangupCause.name)}}\n												</ui-select-choices>\n											</ui-select>\n											<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END HANGUPCAUSE -->\n									</div>\n									<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n										<!-- START VARIABLE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n											<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARIABLE -->\n\n										<!-- START VARVALUE -->\n										<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n											<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VARVALUE -->\n									</div>\n									<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n										<!-- START CUSTOMAPP -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n											<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END CUSTOMAPP -->\n\n										<!-- START APPDATA -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n											<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n											<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END APPDATA -->\n									</div>\n									<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n										<!-- START VOICEMAIL -->\n										<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n											<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n											<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n											<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n												<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n											</span>\n										</div>\n										<!-- END VOICEMAIL -->\n									</div>\n									<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								</form>\n								</wz-step>\n									<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n										<form name="forms.interval" novalidate>\n											<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n											<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n											<!-- START INTERVAL_TYPE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n										<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n												{{$translate.instant(intType.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERVAL_TYPE -->\n									<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n											<!-- START TIME -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n												<div class="input-group input-large">\n													<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n													<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n													<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n												</div>\n											</div>\n											<!-- END TIME -->\n\n											<!-- START WEEKDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n															{{$translate.instant(weekDay.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END WEEKDAY -->\n\n											<!-- START MONTHDAY -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n														<ui-select-match>{{$select.selected}}</ui-select-match>\n														<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n															{{monthDay}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTHDAY -->\n\n											<!-- START MONTH -->\n											<div class="form-group">\n												<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n												<div class="input-group input-large">\n													<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n													<span class="input-group-addon">to</span>\n													<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n														<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n														<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n															{{$translate.instant(month.name)}}\n														</ui-select-choices>\n													</ui-select>\n												</div>\n											</div>\n											<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/internal/view/view.applicationSettings.html",'\n<div class="row" data-ng-init="initApplication();getIntervals();getApplication();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.settings.$valid)">\n							<form name="forms.settings" novalidate>\n\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<div id="Queue" class="app-settings" ng-slide-down="main.app == \'Queue\'" lazy-render duration="1">\n									<!-- START QUEUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$invalid}">\n										<label class="control-label">{{\'APPLICATION_QUEUE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.queue" name="queue" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="queue.name as queue in items | filter: $select.search">\n												<div ng-bind-html="queue.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.queue.$touched || forms.settings.$submitted) && forms.settings.queue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END QUEUE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select multiple data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($item.name)}}</ui-select-match>\n											<ui-select-choices repeat="queueOpt.value as queueOpt in $application.queueOptions | filter: $select.search">\n												{{$translate.instant(queueOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}</label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items2 | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n								</div>\n								<div id="Playback" class="app-settings" ng-slide-down="main.app == \'Playback\'" lazy-render duration="1">\n									<!-- START AUDIOFILE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$invalid}">\n										<label class="control-label">{{\'APPLICATION_AUDIO_FILE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.audiofile" name="audiofile" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.display_name}}</ui-select-match>\n											<ui-select-choices repeat="audio.converted_path+\'/\'+audio.save_name as audio in items | filter: $select.search">\n												<div ng-bind-html="audio.display_name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.audiofile.$touched || forms.settings.$submitted) && forms.settings.audiofile.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END AUDIOFILE -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{\'APPLICATION_OPTIONS\' | translate}}</label>\n										<ui-select data-ng-model="application.app_options" theme="bootstrap" name="app_options">\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="audioOpt.value as audioOpt in $application.audioOptions | filter: $select.search">\n												{{$translate.instant(audioOpt.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n								</div>\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n									<!-- START INTERFACE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TYPE\' | translate }}/{{ \'APPLICATION_IDENTIFIER\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="interface" placeholder="SIP/0000" class="form-control" data-ng-model="application.interface" required>\n										<span data-ng-show="(forms.settings.interface.$touched || forms.settings.$submitted) && forms.settings.interface.$invalid && forms.settings.interface.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END INTERFACE -->\n\n									<!-- START TIMEOUT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_TIMEOUT\' | translate }}</label>\n										<input type="number" name="timeout" placeholder="" class="form-control" data-ng-model="application.timeout">\n										<span data-ng-show="(forms.settings.timeout.$touched || forms.settings.$submitted) && forms.settings.timeout.$invalid && forms.settings.timeout.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END TIMEOUT -->\n\n									<!-- START OPTIONS -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_OPTIONS\' | translate }}</label>\n										<input type="text" name="app_options" placeholder="" class="form-control" data-ng-model="application.app_options">\n										<span data-ng-show="(forms.settings.app_options.$touched || forms.settings.$submitted) && forms.settings.app_options.$invalid && forms.settings.app_options.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END OPTIONS -->\n\n									<!-- START URL -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<input type="text" name="url" placeholder="{{ \'APPLICATION_URL\' | translate }}" class="form-control" data-ng-model="application.url">\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END URL -->\n								</div>\n								<div id="AGI" class="app-settings" ng-slide-down="main.app == \'AGI\'" lazy-render duration="1">\n									<!-- START PROJECT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$invalid}">\n										<label class="control-label">{{\'APPLICATION_PROJECT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.project" name="project" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="project.name as project in items | filter: $select.search">\n												<div ng-bind-html="project.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.project.$touched || forms.settings.$submitted) && forms.settings.project.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PROJECT -->\n\n									<!-- START URL -->\n									<!-- <div class="form-group" data-ng-class="{\'has-error\': (forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_URL\' | translate }}</label>\n										<div class="input-group">\n											<input type="text" name="url" placeholder="agi://127.0.0.1/square" class="form-control" data-ng-model="application.url" data-ng-disabled="!application.urlEnabled" data-ng-required="application.urlEnabled" rpattern="/^agi:\\/\\/(?:[0-9]{1,3}\\.){3}[0-9]{1,3}\\/square$/">\n											<span class="input-group-addon">\n												<input type="checkbox" data-ng-model="application.urlEnabled">\n											</span>\n										</div>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n										<span data-ng-show="(forms.settings.url.$touched || forms.settings.$submitted) && forms.settings.url.$invalid && forms.settings.url.$error.pattern" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_FORMAT\' | translate}}.\n										</span>\n									</div> -->\n									<!-- END URL -->\n\n								</div>\n								<div id="Goto" class="app-settings" ng-slide-down="main.app == \'Goto\'" lazy-render duration="1">\n									<!-- START CONTEXT -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$invalid}">\n										<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.alt_context" name="context" theme="bootstrap" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n											<ui-select-choices repeat="context.name as context in items | filter: $select.search">\n												<div ng-bind-html="context.name | highlight: $select.search"></div>\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.context.$touched || forms.settings.$submitted) && forms.settings.context.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CONTEXT -->\n\n									<!-- START EXTENSION -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_EXTENSION\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="extension" placeholder="" class="form-control" data-ng-model="application.alt_extension" required>\n										<span data-ng-show="(forms.settings.extension.$touched || forms.settings.$submitted) && forms.settings.extension.$invalid && forms.settings.extension.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END EXTENSION -->\n\n									<!-- START PRIORITY -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_PRIORITY\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="number" name="priority" placeholder="" class="form-control" data-ng-model="application.alt_priority" required>\n										<span data-ng-show="(forms.settings.priority.$touched || forms.settings.$submitted) && forms.settings.priority.$invalid" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END PRIORITY -->\n								</div>\n								<div id="Hangup" class="app-settings" ng-slide-down="main.app == \'Hangup\'" lazy-render duration="1">\n									<!-- START HANGUPCAUSE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$invalid}">\n										<label class="control-label">{{\'APPLICATION_HANGUP_CAUSE\' | translate}}<span class="required" aria-required="true">*</span></label>\n										<ui-select data-ng-model="application.causecode" theme="bootstrap" name="hangupCause" required>\n											<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="hangupCause.value as hangupCause in $application.hangupCauses | filter: $select.search">\n												{{$translate.instant(hangupCause.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span data-ng-show="(forms.settings.hangupCause.$touched || forms.settings.$submitted) && forms.settings.hangupCause.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END HANGUPCAUSE -->\n								</div>\n								<div id="Set" class="app-settings" ng-slide-down="main.app == \'Set\'" lazy-render duration="1">\n									<!-- START VARIABLE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VARIABLE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="variable" placeholder="" class="form-control" data-ng-model="application.variable" required>\n										<span data-ng-show="(forms.settings.variable.$touched || forms.settings.$submitted) && forms.settings.variable.$invalid && forms.settings.variable.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARIABLE -->\n\n									<!-- START VARVALUE -->\n									<div class="form-group" data-ng-class="{\'has-error\': (forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_VALUE\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="varvalue" placeholder="" class="form-control" data-ng-model="application.value" required>\n										<span data-ng-show="(forms.settings.varvalue.$touched || forms.settings.$submitted) && forms.settings.varvalue.$invalid && forms.settings.varvalue.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VARVALUE -->\n								</div>\n								<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n									<!-- START CUSTOMAPP -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n										<span data-ng-show="(forms.settings.customApp.$touched || forms.settings.$submitted) && forms.settings.customApp.$invalid && forms.settings.customApp.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END CUSTOMAPP -->\n\n									<!-- START APPDATA -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n										<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n										<span data-ng-show="(forms.settings.appdata.$touched || forms.settings.$submitted) && forms.settings.appdata.$invalid && forms.settings.appdata.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END APPDATA -->\n								</div>\n								<div id="Voicemail" class="app-settings" ng-slide-down="main.app == \'Voicemail\'" lazy-render duration="1">\n									<!-- START VOICEMAIL -->\n									<div class="form-group"  data-ng-class="{\'has-error\': (forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid}">\n										<label class="control-label">{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}<span class="required" aria-required="true">*</span></label>\n										<input type="text" name="voicemail" placeholder="{{ \'APPLICATION_MAILBOX\' | translate }}@{{ \'APPLICATION_CONTEXT\' | translate }}" class="form-control" data-ng-model="application.mailbox" required>\n										<span data-ng-show="(forms.settings.voicemail.$touched || forms.settings.$submitted) && forms.settings.voicemail.$invalid && forms.settings.voicemail.$error.required" class="help-block help-block-error">\n											<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n										</span>\n									</div>\n									<!-- END VOICEMAIL -->\n								</div>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n										</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/internal/view/view.applications.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/internal/view/{{route.id}}/application" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_APPLICATION\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/inbound/view/{{route.id}}/applications/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(application.app+\' application\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_AVAILABLE_APPLICATIONS\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/internal/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-reload"></i>\n					<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/internalroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.internal.view.settings\')}">\n							<a data-ng-href="/voice/routes/internal/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.internal.view.applications\') || $state.is(\'main.voice.routes.internal.view.application\') || $state.is(\'main.voice.routes.internal.view.applications.settings\')}">\n							<a data-ng-href="/voice/routes/internal/view/{{route.id}}/applications">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/internal/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_INTERNAL\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/internal/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-reload"></i>\n				<a href="/voice/routes/internal/list">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-reload font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_INTERNAL\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_DID\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_DID\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/route/outbound/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-out"></i>\n					<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-users font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="routes.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<!-- <li>\n								<a href="#">\n								<i class="icon-user"></i> {{ \'APPLICATION_QUICK\' | translate }} </a>\n							</li> -->\n							<li>\n								<a href="/voice/routes/outbound/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n							<!-- <li>\n								<a href="#">\n								<i class="icon-users"></i> {{ \'APPLICATION_BULK\' | translate }} </a>\n							</li> -->\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getRoutes([\'context\', \'exten\', \'app\', \'appdata\', \'description\'])" csv-header="[\'Context\', \'Exten\', \'App\', \'Appdata\', \'Description\']" field-separator=";" filename="routes_outobund.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedRoutes" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.routesByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="routeByPage in routesByPage | filter: $select.search">\n													<div ng-bind-html="routeByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(checked)" checklist-model checklist-value="id"></th>\n                <th st-sort="exten">{{ \'APPLICATION_PATTERN\' | translate }}</th>\n								<th st-sort="context">{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="route in displayedRoutes"  class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="routes.checked" checklist-value="route.id"></td>\n								<td>{{route.exten}}</td>\n								<td>{{route.context}}</td>\n					      <td>{{route.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/outbound/view/{{route.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(route.name,route.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedRoutes.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="id" class="form-control" type="search"/>\n									</div>\n						    </td>\n                <td>\n                  <div class="input-icon right">\n                    <i class="fa fa-search"></i>\n                    <input st-search="exten" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_PATTERN\' | translate | lowercase}}" class="form-control" type="search"/>\n                  </div>\n                </td>\n								<td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="context" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_CONTEXT\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n								</td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.routesByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getRoute()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-call-out"></i>\n					<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n					<i data-ng-show="route" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="route">\n					<a href="#">{{route.exten}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/outboundroute.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{route.exten}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.outbound.view.settings\')}">\n							<a data-ng-href="/voice/routes/outbound/view/{{route.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n						<li data-ng-class="{active: $state.is(\'main.voice.routes.outbound.view.routes\') || $state.is(\'main.voice.routes.outbound.view.route\') || $state.is(\'main.voice.routes.outbound.view.routes.settings\')}">\n							<a data-ng-href="/voice/routes/outbound/view/{{route.id}}/routes">\n							<i class="icon-list"></i>\n							{{ \'APPLICATION_ACTIONS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.route.html",'<div class="row" data-ng-init="initApplication();getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_NEW_ROUTE\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<div class="profile-usertitle-name">\n					{{(main.app | capitalize) || \'Application\'}}\n				</div>\n				<wizard on-finish="createItem()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(forms.info.$valid)">\n							<form name="forms.info" novalidate>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n								<!-- START APP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_APPLICATION\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="main.app" name="app" theme="bootstrap" required>\n										<ui-select-match placeholder="{{ \'APPLICATION_APPLICATION\' | translate }}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="app.value as app in applications | filter: $select.search">\n											<div ng-bind-html="app.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.info.app.$touched || forms.info.$submitted) && forms.info.app.$invalid && forms.info.app.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APP -->\n								<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n								<!-- START TRUNK -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n									<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.TrunkId" name="trunk" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="trunk.id as trunk in items | filter: $select.search">\n											<div ng-bind-html="trunk.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END TRUNK -->\n\n								<!-- START CONTEXT -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n									<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="application.context" name="context" theme="bootstrap" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n										<ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n											<div ng-bind-html="context.name | highlight: $select.search"></div>\n										</ui-select-choices>\n									</ui-select>\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n									<span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CONTEXT -->\n\n								<!-- START CALLERID -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n									<input type="text" name="callerID" placeholder="{{ \'APPLICATION_CALLERID\' | translate }}" class="form-control" data-ng-model="application.callerID">\n									<span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CALLERID -->\n\n									<!-- START CUTDIGITS -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n									<input type="number" class="form-control" name="cutdigits" data-ng-model="application.cutdigits">\n									<span class="help-block">\n										{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n									</span>\n								</div>\n								<!-- END CUTDIGITS -->\n							</div>\n							<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n								<!-- START CUSTOMAPP -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n									<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n									<span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END CUSTOMAPP -->\n\n								<!-- START APPDATA -->\n								<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n									<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n									<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n									<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END APPDATA -->\n							</div>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n							</wz-step>\n								<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n									<form name="forms.interval" novalidate>\n										<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n										<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n									<!-- START INTERVAL_TYPE -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n											{{$translate.instant(intType.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVAL_TYPE -->\n								<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n										<!-- START TIME -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n											<div class="input-group input-large">\n												<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n												<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n												<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n											</div>\n										</div>\n										<!-- END TIME -->\n\n										<!-- START WEEKDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n														{{$translate.instant(weekDay.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END WEEKDAY -->\n\n										<!-- START MONTHDAY -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n													<ui-select-match>{{$select.selected}}</ui-select-match>\n													<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n														{{monthDay}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTHDAY -->\n\n										<!-- START MONTH -->\n										<div class="form-group">\n											<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n											<div class="input-group input-large">\n												<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n												<span class="input-group-addon">to</span>\n												<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n													<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n													<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n														{{$translate.instant(month.name)}}\n													</ui-select-choices>\n												</ui-select>\n											</div>\n										</div>\n										<!-- END MONTH -->\n						</div>\n\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n							<!-- START INTERVALS -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n								<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n									<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n										{{$translate.instant(interval.name)}}\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END INTERVALS -->\n\n						</div>\n\n						<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/route/outbound/view/view.routeSettings.html",'\n<div class="row" data-ng-init="initApplication();getApplication();getIntervals();">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_APPLICATION_SETTINGS\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="updateItem()">\n					<div class="profile-usertitle-name">\n						{{(main.app | capitalize) || \'Application\'}}\n					</div>\n	        <wz-step title="{{\'APPLICATION_APPLICATION\' | translate}}" canexit="formValidation(forms.info.$valid)">\n						<form name="forms.info" novalidate>\n							<div id="Dial" class="app-settings" ng-slide-down="main.app == \'Dial\'" lazy-render duration="1">\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n\n							<!-- START TRUNK -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$invalid}">\n								<label class="control-label">{{\'APPLICATION_TRUNK\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.TrunkId" name="trunk" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="trunk.id as trunk in items | filter: $select.search">\n										<div ng-bind-html="trunk.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.info.trunk.$touched || forms.info.$submitted) && forms.info.trunk.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TRUNK -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="application.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in items2 | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.info.context.$touched || forms.info.$submitted) && forms.info.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START CALLERID -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_CALLERID\' | translate }}</label>\n								<input type="text" name="callerID" placeholder="{{ \'APPLICATION_CALLERID\' | translate }}" class="form-control" data-ng-model="application.callerID">\n								<span data-ng-show="(forms.info.callerID.$touched || forms.info.$submitted) && forms.info.callerID.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CALLERID -->\n\n								<!-- START CUTDIGITS -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_CUTDIGITS\' | translate}}</label>\n								<input type="number" class="form-control" name="cutdigits" data-ng-model="application.cutdigits">\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n							</div>\n							<!-- END CUTDIGITS -->\n						</div>\n						<div id="Custom" class="app-settings" ng-slide-down="main.app == \'custom\'" lazy-render duration="1">\n\n							<!-- START CUSTOMAPP -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_CUSTOM_APP\' | translate }}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="customApp" placeholder="{{ \'APPLICATION_CUSTOM_APP\' | translate }}" class="form-control" data-ng-model="application.customApp" required>\n								<span data-ng-show="(forms.info.customApp.$touched || forms.info.$submitted) && forms.info.customApp.$invalid && forms.info.customApp.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CUSTOMAPP -->\n\n							<!-- START APPDATA -->\n							<div class="form-group"  data-ng-class="{\'has-error\': (forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid}">\n								<label class="control-label">{{ \'APPLICATION_ARGUMENTS\' | translate }}</label>\n								<input type="text" name="appdata" placeholder="{{ \'APPLICATION_ARGUMENTS\' | translate }}" class="form-control" data-ng-model="application.appdata">\n								<span data-ng-show="(forms.info.appdata.$touched || forms.info.$submitted) && forms.info.appdata.$invalid && forms.info.appdata.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END APPDATA -->\n						</div>\n						<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n					</wz-step>\n						<wz-step title="{{\'APPLICATION_INTERVAL\' | translate}}" canexit="formValidation(forms.interval.IntervalId.$valid || forms.interval.hasOwnProperty(\'t_from\') || forms.interval.intType.$modelValue === \'always\')">\n							<form name="forms.interval" novalidate>\n								<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n								<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n						<!-- START INTERVAL_TYPE -->\n						<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$invalid}">\n							<label class="control-label">{{\'APPLICATION_INTERVAL_TYPE\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<ui-select data-ng-model="interval.intType" theme="bootstrap" name="intType" required>\n								<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n								<ui-select-choices repeat="intType.value as intType in $application.intTypes | filter: $select.search">\n									{{$translate.instant(intType.name)}}\n								</ui-select-choices>\n							</ui-select>\n							<span data-ng-show="(forms.interval.intType.$touched || forms.interval.$submitted) && forms.interval.intType.$error.required" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END INTERVAL_TYPE -->\n						<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'custom\'" lazy-render duration="1">\n								<!-- START TIME -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_TIME\' | translate }}</label>\n									<div class="input-group input-large">\n										<fieldset class="pull-left" ng-disabled="interval.alwaysTime"><uib-timepicker name="t_from" data-ng-model="interval.t_from" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n										<div class="input-group-addon col-md-1 interval-to pull-left">to</div>\n										<fieldset ng-disabled="interval.alwaysTime"><uib-timepicker  name="t_to" data-ng-model="interval.t_to" show-meridian="false" show-spinners="false"></uib-timepicker></fieldset>\n										<label class="control-label pointer-cursor"><input type="checkbox" data-ng-model="interval.alwaysTime">{{\'APPLICATION_ALWAYS\' | translate}}</label>\n									</div>\n								</div>\n								<!-- END TIME -->\n\n								<!-- START WEEKDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_WEEKDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.wd_from" theme="bootstrap" name="wd_from">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{$translate.instant(weekDay.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.wd_to" theme="bootstrap" name="wd_to">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="weekDay.value as weekDay in $interval.daysOfWeek | filter: $select.search">\n												{{$translate.instant(weekDay.name)}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END WEEKDAY -->\n\n								<!-- START MONTHDAY -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTHDAY\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.md_from" theme="bootstrap" name="md_from">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.md_to" theme="bootstrap" name="md_to">\n											<ui-select-match>{{$select.selected}}</ui-select-match>\n											<ui-select-choices repeat="monthDay in $interval.daysOfMonth | filter: $select.search">\n												{{monthDay}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTHDAY -->\n\n								<!-- START MONTH -->\n								<div class="form-group">\n									<label class="control-label">{{ \'APPLICATION_MONTH\' | translate }}</label>\n									<div class="input-group input-large">\n										<ui-select data-ng-model="interval.m_from" theme="bootstrap" name="m_from">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{$translate.instant(month.name)}}\n											</ui-select-choices>\n										</ui-select>\n										<span class="input-group-addon">to</span>\n										<ui-select data-ng-model="interval.m_to" theme="bootstrap" name="m_to">\n											<ui-select-match placeholder="">{{$translate.instant($select.selected.name)}}</ui-select-match>\n											<ui-select-choices repeat="month.value as month in $interval.months | filter: $select.search">\n												{{$translate.instant(month.name)}}\n											</ui-select-choices>\n										</ui-select>\n									</div>\n								</div>\n								<!-- END MONTH -->\n							</div>\n\n							<div id="customInterval" class="app-settings" ng-slide-down="interval.intType == \'list\'" lazy-render duration="1">\n\n								<!-- START INTERVALS -->\n								<div class="form-group" data-ng-class="{\'has-error\': (forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$invalid}">\n									<label class="control-label">{{\'APPLICATION_INTERVALS\' | translate}}<span class="required" aria-required="true">*</span></label>\n									<ui-select data-ng-model="interval.IntervalId" theme="bootstrap" name="IntervalId" required>\n										<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$translate.instant($select.selected.name)}}</ui-select-match>\n										<ui-select-choices repeat="interval.id as interval in Intervals | filter: $select.search">\n											{{$translate.instant(interval.name)}}\n										</ui-select-choices>\n									</ui-select>\n									<span data-ng-show="(forms.interval.IntervalId.$touched || forms.interval.$submitted) && forms.interval.IntervalId.$error.required" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END INTERVALS -->\n\n							</div>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<button class="btn green-haze" type="submit" ng-click="goNext()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/route/outbound/view/view.routes.html",'<div ui-view class="profile-content">\n<div class="row" data-ng-init="getRouteApplications()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACTIONS\' | translate}}</span>\n				</div>\n				<div class="actions">\n					<div class="btn-group">\n						<a class="btn green-jungle " href="/voice/routes/outbound/view/{{route.id}}/route" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ROUTE\' | translate }}\n						</a>\n					</div>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n								<th>{{ \'APPLICATION_APPLICATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_CONTEXT\' | translate }}</th>\n								<th>{{ \'APPLICATION_ARGUMENTS\' | translate }}</th>\n						    <th>{{ \'APPLICATION_TIME\' | translate }}</th>\n								<th></th>\n						  </tr>\n					  </thead>\n					  <tbody ui-sortable="sortableOptions" data-ng-model="routeApplications">\n					    <tr data-ng-repeat="application in routeApplications | orderBy:\'priority\'">\n								<td>{{application.app}}</td>\n								<td>{{application.context}}</td>\n								<td>{{application.appdata}}</td>\n								<td>{{application.interval}}</td>\n					      <td>\n									<a class="btn default btn-xs blue-stripe" data-ng-href="/voice/routes/outbound/view/{{route.id}}/routes/settings/{{application.id}}">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(\'Route\',application.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="routeApplications.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_ROUTES_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n</div>\n'),a.put("app/voice/route/outbound/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_OUTBOUND\' | translate}} {{ \'APPLICATION_ROUTE\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body" data-ng-init="getContexts()">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateRoute()" novalidate>\n\n							<!-- START EXTEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$invalid}">\n								<label class="control-label">{{\'APPLICATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="exten" placeholder="{{\'APPLICATION_PATTERN\' | translate}}" class="form-control" data-ng-model="route.exten" required/>\n								<span data-ng-show="(forms.general.exten.$touched || forms.general.$submitted) && forms.general.exten.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EXTEN -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="route.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="route.description"/></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/route/outbound/wizard/wizard.html",'<div class="col-md-12">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-call-out"></i>\n				<a href="/voice/routes/outbound/list">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTES\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered" data-ng-init="getContexts()">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-call-out font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_OUTBOUND\' | translate }} {{ \'APPLICATION_ROUTE\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="exitValidation(forms.route.$valid)">\n			    <form name="forms.route" novalidate>\n\n            <!-- START EXTEN -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$invalid}">\n              <label class="control-label">{{\'APPLICATION_PATTERN\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="exten" placeholder="{{\'APPLICATION_PATTERN\' | translate}}" class="form-control" data-ng-model="item.exten" required/>\n              <span data-ng-show="(forms.route.exten.$touched || forms.route.$submitted) && forms.route.exten.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EXTEN -->\n\n						<!-- START DESCRIPTION -->\n						<div class="form-group">\n							<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n							<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/></textarea>\n						</div>\n						<!-- END DESCRIPTION -->\n\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n			    </form>\n			  </wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/voice/voicemail/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope-letter"></i>\n					<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-envelope-letter font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="voicemails.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle " href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_VOICEMAIL\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/voice/voicemails/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getVoicemails([\'mailbox\', \'fullname\', \'email\'])" csv-header="[\'Mailbox\', \'Fullname\', \'Email\']" field-separator=";" filename="voicemails.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedVoicemails" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="5">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.voicemailsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="voicemailByPage in voicemailsByPage | filter: $select.search">\n													<div ng-bind-html="voicemailByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(voicemail, checked)" checklist-model checklist-value="uniqueid"></th>\n						    <th st-sort="mailbox">{{ \'APPLICATION_MAILBOX\' | translate }}</th>\n						    <th st-sort="fullname">{{ \'APPLICATION_FULLNAME\' | translate }}</th>\n						    <th st-sort="email">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="voicemail in displayedVoicemails" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="voicemails.checked" checklist-value="voicemail.uniqueid"></td>\n								<td>{{voicemail.mailbox}}</td>\n                <td>{{voicemail.fullname}}</td>\n					      <td>{{voicemail.email}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(voicemail.mailbox,voicemail.uniqueid)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedVoicemails.length">\n								<td colspan="5" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_VOICEMAILS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="mailbox" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_MAILBOX\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="fullname" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_FULLNAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n						    </td>\n						  </tr>\n					    <tr>\n					      <td colspan="5" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.voicemailsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/voice/voicemail/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getVoicemail()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-envelope-letter"></i>\n					<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n					<i data-ng-show="voicemail" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="voicemail">\n					<a href="#">{{voicemail.mailbox}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/voicemail.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{voicemail.mailbox}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.voice.voicemails.view.settings\')}">\n							<a data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n            <li data-ng-class="{active: $state.is(\'main.voice.voicemails.view.messages\')}">\n              <a data-ng-href="/voice/voicemails/view/{{voicemail.uniqueid}}/messages">\n              <i class="icon-speech"></i>\n              {{ \'APPLICATION_MESSAGES\' | translate}} </a>\n            </li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/voice/voicemail/view/view.messages.html",'<div class="row" data-ng-init="getMessages()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title  tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_MESSAGES\' | translate}}</span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table class="table table-striped table-bordered table-hover">\n					  <thead>\n						  <tr>\n						    <th>{{ \'APPLICATION_CALLERID\' | translate }}</th>\n						    <th>{{ \'APPLICATION_DATE\' | translate }}</th>\n								<th>{{ \'APPLICATION_DURATION\' | translate }}</th>\n								<th>{{ \'APPLICATION_RECORDING\' | translate }}</th>\n								<th width="20%">{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody data-ng-model="voicemailMessages">\n					    <tr data-ng-repeat="message in voicemailMessages">\n								<td>{{message.callerid}}</td>\n								<td>{{returnMessageDate(message.stamp)}}</td>\n								<td>{{returnDuration(message.duration) | date: \'mm:ss\'}}</td>\n								<td>\n									<audio controls ng-src="{{encodeRecording(message.recording)}}" preload="none">\n			            Your browser does not support the audio tag.\n			          </audio>\n							</td>\n					      <td>\n									<a class="btn default btn-xs green-stripe" href="/api/voice/voicemails/messages/{{message.id}}/download" target="_self">\n										{{ \'APPLICATION_DOWNLOAD\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(\'message\',message.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="voicemailMessages.length">\n								<td colspan="5" style="text-align:center;">\n									<i>No messages available</i>\n								</td>\n							</tr>\n					  </tbody>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/voicemail/view/view.settings.html",'<div class="row" data-ng-init="getContexts()">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_VOICEMAIL\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n					<!-- <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{ \'APPLICATION_ADVANCED\' | translate}}</a>\n					</li> -->\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateVoiceVoicemail()" novalidate>\n\n							<!-- START MAILBOX -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n								<label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="voicemail.mailbox" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END MAILBOX -->\n\n							<!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NEW_PASSWORD\' | translate}}</label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NEW_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.password" />\n								<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n							<!-- START CONFIRM PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}</label>\n								<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="voicemail.rpassword" nx-equal="voicemail.password"/>\n								<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONFIRM PASSWORD -->\n\n							<!-- START FULLNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n								<label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="voicemail.fullname" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END FULLNAME -->\n\n							<!-- START EMAIL -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n								<label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="voicemail.email" required/>\n								<span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END EMAIL -->\n\n							<!-- START CONTEXT -->\n							<div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n								<label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n								<ui-select data-ng-model="voicemail.context" name="context" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n									<ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n										<div ng-bind-html="context.name | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span class="help-block">\n									{{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n								</span>\n								<span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END CONTEXT -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n					<!-- ADVANCED TAB -->\n					<!-- <div class="tab-pane" id="tab_1_2">\n						<form name="forms.advanced" data-ng-submit="updateVoiceVoicemail()" novalidate>\n\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div> -->\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/voice/voicemail/wizard/wizard.html",'<div class="col-md-12" data-ng-init="initWizard();getContexts();">\n  <!-- BEGIN PAGE HEADER-->\n	<div class="page-bar">\n		<ul class="page-breadcrumb">\n			<li>\n				<i class="icon-rocket"></i>\n				<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-envelope-letter"></i>\n				<a href="/voice/voicemails/list">{{ \'APPLICATION_VOICEMAILS\' | translate }}</a>\n				<i class="fa fa-angle-right"></i>\n			</li>\n			<li>\n				<i class="icon-options"></i>\n				<a href="#">{{ \'APPLICATION_WIZARD\' | translate }}</a>\n			</li>\n		</ul>\n	</div>\n  <!-- END PAGE HEADER-->\n\n  <!-- BEGIN PORTLET-->\n  <div class="portlet light bordered">\n  	<div class="portlet-title">\n  		<div class="caption font-green-sharp">\n  			<i class="icon-envelope-letter font-green-sharp"></i>\n  			<span class="caption-subject">{{ \'APPLICATION_VOICEMAIL\' | translate }} WIZARD</a> </span>\n  		</div>\n  	</div>\n  	<div class="portlet-body">\n  		<wizard on-finish="createItem()">\n				<wz-step title="{{\'APPLICATION_GENERAL\' | translate}}" canexit="exitValidation(forms.general.$valid)">\n			    <form name="forms.general" novalidate>\n\n			      <!-- START MAILBOX -->\n			      <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.mailbox.$invalid}">\n			        <label class="control-label">{{\'APPLICATION_MAILBOX\' | translate}}<span class="required" aria-required="true">*</span></label>\n			        <input type="text" name="mailbox" placeholder="{{\'APPLICATION_MAILBOX\' | translate}}" class="form-control" data-ng-model="item.mailbox" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.mailbox.$invalid" class="help-block help-block-error">\n			          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n			        </span>\n			      </div>\n			      <!-- END MAILBOX -->\n\n						<!-- START PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.password.$invalid}">\n							<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="password" placeholder="{{\'APPLICATION_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n							<span data-ng-show="forms.general.$submitted && forms.general.password.$invalid" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n							</span>\n						</div>\n						<!-- END PASSWORD -->\n\n						<!-- START CONFIRM PASSWORD -->\n						<div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.rpassword.$invalid}">\n							<label class="control-label">{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}<span class="required" aria-required="true">*</span></label>\n							<input type="password" name="rpassword" placeholder="{{\'APPLICATION_CONFIRM_PASSWORD\' | translate}}" class="form-control" data-ng-model="item.rpassword" nx-equal="item.password" required/>\n							<span data-ng-show="forms.general.$submitted && (forms.general.rpassword.$invalid || forms.general.rpassword.$invalid)" class="help-block help-block-error">\n								<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_WRONG_PASSWORD\' | translate}}.\n							</span>\n						</div>\n						<!-- END CONFIRM PASSWORD -->\n\n            <!-- START FULLNAME -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.fullname.$invalid}">\n              <label class="control-label">{{\'APPLICATION_FULLNAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="text" name="fullname" placeholder="{{\'APPLICATION_FULLNAME\' | translate}}" class="form-control" data-ng-model="item.fullname" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.fullname.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END FULLNAME -->\n\n            <!-- START EMAIL -->\n            <div class="form-group" data-ng-class="{\'has-error\': forms.general.$submitted && forms.general.email.$invalid}">\n              <label class="control-label">{{\'APPLICATION_EMAIL\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <input type="email" name="email" placeholder="{{\'APPLICATION_EMAIL\' | translate}}" class="form-control" data-ng-model="item.email" required/>\n              <span data-ng-show="forms.general.$submitted && forms.general.host.$invalid" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END EMAIL -->\n\n            <!-- START CONTEXT -->\n            <div class="form-group" data-ng-class="{\'has-error\': (forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$invalid}">\n              <label class="control-label">{{\'APPLICATION_CONTEXT\' | translate}}<span class="required" aria-required="true">*</span></label>\n              <ui-select data-ng-model="item.context" name="context" theme="bootstrap" required>\n                <ui-select-match placeholder="{{\'APPLICATION_SEARCH_FILTER\' | translate}}">{{$select.selected.name}}</ui-select-match>\n                <ui-select-choices repeat="context.name as context in voiceContexts | filter: $select.search">\n                  <div ng-bind-html="context.name | highlight: $select.search"></div>\n                </ui-select-choices>\n              </ui-select>\n              <span class="help-block">\n                {{ \'DESCRIPTION_VOICE_CONTEXT\' | translate }}\n              </span>\n              <span data-ng-show="(forms.general.context.$touched || forms.general.$submitted) && forms.general.context.$error.required" class="help-block help-block-error">\n                <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n              </span>\n            </div>\n            <!-- END CONTEXT -->\n\n						<button class="btn green-haze" type="submit" ng-click="next()">{{\'APPLICATION_CONTINUE\' | translate}} <i class="fa fa-angle-right"></i></button>\n					</form>\n				</wz-step>\n\n				<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n					<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n					<button class="btn green-haze" type="button" ng-click="previous()"><i class="fa fa-angle-left"></i> {{\'APPLICATION_BACK\' | translate}}</button>\n					<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n				</wz-step>\n  		</wizard>\n  	</div>\n  </div>\n  <!-- END PORTLET-->\n</div>\n'),a.put("app/yourdashboard/list/create.modal.html",'<div class="modal-header">\n  <h3 class="modal-title">{{ \'APPLICATION_NEW_DASHBOARD\' | translate }}</h3>\n</div>\n<div class="modal-body">\n  <form name="forms.dashboard" novalidate>\n\n    <!-- START NAME -->\n    <div class="form-group" data-ng-class="{\'has-error\': (forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$invalid}">\n      <label class="control-label">{{\'APPLICATION_NAME\' | translate}}<span class="required" aria-required="true">*</span></label>\n      <input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n      <span data-ng-show="(forms.dashboard.name.$touched || forms.dashboard.$submitted) && forms.dashboard.name.$error.required" class="help-block help-block-error">\n        <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n      </span>\n    </div>\n    <!-- END NAME -->\n\n    <!-- START DESCRIPTION -->\n    <div class="form-group">\n      <label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n      <textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"></textarea>\n    </div>\n    <!-- END DESCRIPTION -->\n\n  </form>\n</div>\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" ng-click="ok()" ng-disabled="forms.dashboard.$invalid">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("app/yourdashboard/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-screen-desktop"></i>\n					<a href="/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-docs font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="dashboards.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<button class="btn green-jungle " ng-click="create()">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_DASHBOARD\' | translate }}\n						</button>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getDashboards([\'name\', \'description\'])" csv-header="[\'Name\', \'Description\']" field-separator=";" filename="dashboards.csv">\n					<i class="icon-cloud-download"></i></a>\n					<!-- <a class="btn btn-icon-only btn-default fullscreen" href="#"></a> -->\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedDashboards" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="4">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.dashboardsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="dashboardByPage in dashboardsByPage | filter: $select.search">\n													<div ng-bind-html="dashboardByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(dashboard, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="description">{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="dashboard in displayedDashboards" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input data-ng-hide="dashboard.defaultEntry" type="checkbox" checklist-model="dashboards.checked" checklist-value="dashboard.id"></td>\n								<td>{{dashboard.name}}</td>\n					      <td>{{dashboard.description}}</td>\n					      <td>\n									<a class="btn default btn-xs green-stripe" data-ng-href="/yourdashboards/show/{{dashboard.id}}">\n										{{ \'APPLICATION_VIEW\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/yourdashboards/view/{{dashboard.id}}/settings">\n										{{ \'APPLICATION_SETTINGS\' | translate}}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(dashboard.name,dashboard.id)" data-ng-class="{\'disabled\': dashboard.defaultEntry}">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedDashboards.length">\n								<td colspan="4" style="text-align:center;">\n									<i>{{ \'MESSAGE_NO_DASHBOARDS_AVAILABLE\' | translate }}</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="description" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_DESCRIPTION\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n						  </tr>\n					    <tr>\n					      <td colspan="4" class="text-center">\n					        <div st-pagination class="pagination" st-items-by-page="conf.dashboardsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n				</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/yourdashboard/show/show.html",'<div class="col-md-12" ng-init="getDashboard()">\n  <adf-dashboard\n          name="{{dashboard.name}}"\n          collapsible="{{dashboard.collapsible}}"\n          maximizable="{{dashboard.maximizable}}"\n          enableconfirmdelete="{{dashboard.enableconfirmdelete}}"\n          structure="{{dashboard.structure}}"\n          editable="{{dashboard.editable}}"\n          adf-model="dashboard.model"/>\n</div>\n'),a.put("app/yourdashboard/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="getDashboard()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-screen-desktop"></i>\n					<a href="/yourdashboards/list">{{ \'APPLICATION_YOUR_DASHBOARDS\' | translate }}</a>\n					<i data-ng-show="dashboard" class="fa fa-angle-right"></i>\n				</li>\n				<li data-ng-show="dashboard">\n					<a href="#">{{dashboard.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img data-ng-src="assets/images/media/dashboard.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{dashboard.name}}\n					</div>\n					<!-- <div class="profile-usertitle-job">\n						{{user.role}}\n					</div> -->\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.yourdashboards.view.settings\')}">\n							<a data-ng-href="/yourdashboards/view/{{dashboard.id}}/settings">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_SETTINGS\' | translate}} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/yourdashboard/view/view.settings.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{ \'APPLICATION_DASHBOARD\' | translate}} {{ \'APPLICATION_SETTINGS\' | translate}} </span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{ \'APPLICATION_GENERAL\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.general" data-ng-submit="forms.general.$valid && updateDashboard()" novalidate>\n\n							<!-- START VISIBLE TO ADMIN -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_ADMIN\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.admin"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO ADMIN -->\n\n							<!-- START VISIBLE TO USER -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_USER\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.user"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO USER -->\n\n							<!-- START VISIBLE TO AGENT -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_VISIBLE_TO_AGENT\' | translate}}</label><br>\n								<input\n									bs-switch\n									ng-model="dashboard.agent"\n									type="checkbox"\n									switch-active="{{ radioSwitch.isActive }}"\n									switch-on-text="{{ \'APPLICATION_YES\' | translate }}"\n									switch-off-text="{{ \'APPLICATION_NO\' | translate }}"\n									switch-on-color="{{ radioSwitch.onColor }}"\n									switch-off-color="{{ radioSwitch.offColor }}"\n									switch-animate="{{ radioSwitch.animate }}"\n									switch-size="{{ radioSwitch.size }}"\n									switch-label="{{ radioSwitch.label }}"\n									switch-icon="{{ radioSwitch.icon }}"\n									switch-radio-off="{{ radioSwitch.radioOff }}"\n									switch-label-width="{{ radioSwitch.labelWidth }}"\n									switch-handle-width="{{ radioSwitch.handleWidth }}">\n							</div>\n							<!-- END VISIBLE TO AGENT -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<textarea type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="dashboard.description"></textarea>\n							</div>\n							<!-- END DESCRIPTION -->\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END ADVANCED TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/list/list.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<i class="icon-handbag"></i>\n					<a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-handbag font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ZENDESK\' | translate }}</a> </span>\n				</div>\n				<div class="actions">\n					<div class="btn-group" data-ng-show="accounts.checked.length">\n						<a class="btn red" href="#" data-ng-click="deleteItems()">\n							<i class="icon-trash"></i> {{ \'APPLICATION_DELETE\' | translate }}\n						</a>\n					</div>\n					<div class="btn-group">\n						<a class="btn green-jungle" href="#" data-toggle="dropdown">\n							<i class="icon-plus"></i> {{ \'APPLICATION_NEW_ACCOUNT\' | translate }} <i class="fa fa-angle-down"></i>\n						</a>\n						<ul class="dropdown-menu pull-right">\n							<li>\n								<a href="/zendesk/wizard">\n								<i class="icon-user-following"></i> {{ \'APPLICATION_WIZARD\' | translate }} </a>\n							</li>\n						</ul>\n					</div>\n					<a class="btn btn-icon-only btn-default" href="#" ng-csv="getAccounts([\'name\',\'username\',\'remoteUri\',\'authType\',\'token\',\'password\'])" csv-header="[\'Name\', \'Username\', \'Remote Address\', \'Authentication Type\', \'Token\', \'Password\']" field-separator=";" filename="zendesk_accounts.csv">\n					<i class="icon-cloud-download"></i></a>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<!-- START TABLE -->\n				<table st-table="displayedZdAccounts" st-pipe="initList" class="table table-striped table-bordered table-hover">\n					<div class="table-responsive">\n					  <thead>\n							<tr>\n								<th colspan="7">\n									<div class="row">\n										<div class="col-md-6">\n											<ui-select class="input-xsmall" ng-model="conf.accountsByPage" theme="bootstrap" ng-disabled="disabled">\n												<ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n												<ui-select-choices repeat="accountByPage in accountsByPage | filter: $select.search">\n													<div ng-bind-html="accountByPage.name | highlight: $select.search"></div>\n												</ui-select-choices>\n											</ui-select>\n										</div>\n										<div class="col-md-6">\n											<div class="input-group input-medium pull-right">\n												<input st-search placeholder="{{ \'APPLICATION_SEARCH\' | translate }}" class="form-control" type="search" />\n												<span class="input-group-addon">\n													<i class="fa fa-search"></i>\n												</span>\n											</div>\n										</div>\n									</div>\n								</th>\n							</tr>\n						  <tr>\n								<th class="small-cells" style="text-align: center; vertical-align: middle"><input type="checkbox" ng-change="check(account, checked)" checklist-model checklist-value="id"></th>\n						    <th st-sort="name">{{ \'APPLICATION_NAME\' | translate }}</th>\n						    <th st-sort="username">{{ \'APPLICATION_EMAIL\' | translate }}</th>\n								<th st-sort="remoteUri">{{ \'APPLICATION_REMOTE_ADDRESS\' | translate }}</th>\n								<th>{{ \'APPLICATION_DESCRIPTION\' | translate }}</th>\n								<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n						  </tr>\n					  </thead>\n					  <tbody>\n					    <tr data-ng-repeat="account in displayedZdAccounts" class="animate-repeat">\n								<td style="text-align: center; vertical-align: middle"><input type="checkbox" checklist-model="accounts.checked" checklist-value="account.id"></td>\n					      <td>{{account.name}}</td>\n					      <td>{{account.username}}</td>\n								<td>{{account.remoteUri}}</td>\n								<td>{{account.description}}</td>\n					      <td>\n					        <a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/account">\n										{{ \'APPLICATION_EDIT\' | translate }}\n					        </a>\n									<a class="btn default btn-xs green-stripe" data-ng-click="checkAccount(account.id)">\n										{{ \'APPLICATION_CHECK_CONNECTION\' | translate }}\n					        </a>\n					        <a class="btn default btn-xs red-stripe" data-ng-click="deleteItem(account.name,account.id)">\n										{{ \'APPLICATION_DELETE\' | translate }}\n					        </a>\n					      </td>\n					    </tr>\n							<tr data-ng-hide="displayedZdAccounts.length">\n								<td colspan="7" style="text-align:center;">\n									<i>No account available</i>\n								</td>\n							</tr>\n					  </tbody>\n					  <tfoot>\n							<tr>\n								<td/>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="name" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_NAME\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="email" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_EMAIL\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td>\n									<div class="input-icon right">\n										<i class="fa fa-search"></i>\n										<input st-search="remoteUri" placeholder="{{ \'APPLICATION_SEARCH\' | translate }} {{ \'APPLICATION_BY\' | translate | lowercase }} {{ \'APPLICATION_REMOTE_ADDRESS\' | translate | lowercase}}" class="form-control" type="search"/>\n									</div>\n						    </td>\n						    <td/>\n								<td/>\n						  </tr>\n					    <tr>\n					      <td colspan="7" class="text-center">\n									<div class="pagination" st-pagination st-items-by-page="conf.accountsByPage.value" st-displayed-pages="7"></div>\n					      </td>\n					    </tr>\n					  </tfoot>\n					</div>\n				</table>\n				<!-- END TABLE -->\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("app/zendesk/view/view.account.html",'<div class="row">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_ACCOUNT\' | translate}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_GENERALS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- GENERAL TAB -->\n					<div class="tab-pane active" id="tab_1_1">\n						<form name="forms.formSetting" data-ng-submit="forms.formSetting.$valid && updateItem()" novalidate>\n\n              <!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="account.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.username" required/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="account.remoteUri" required />\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="account.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="account.authType == \'password\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="account.authType == \'token\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="account.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_UPDATE\' | translate}}"/>\n						</form>\n					</div>\n					<!-- END GENERAL TAB -->\n\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.configuration.html",'<div class="row" data-ng-init="initConfiguration()">\n	<div class="col-md-12">\n		<!-- BEGIN  PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_CONFIGURATION\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createConfiguration()">\n	        <wz-step title="{{\'APPLICATION_SETTINGS\' | translate}}" canexit="formValidation(formsConfiguration.info.$valid)">\n							<form name="formsConfiguration.info" novalidate>\n								<!-- START NAME -->\n								<div class="form-group" data-ng-class="{\'has-error\': formsConfiguration.info.$submitted && formsConfiguration.info.name.$invalid}">\n									<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n									<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="configuration.name" required/>\n									<span data-ng-show="formsConfiguration.info.name.$invalid && formsConfiguration.info.$submitted" class="help-block help-block-error">\n										<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n									</span>\n								</div>\n								<!-- END NAME -->\n\n								<!-- START DESCRIPTION -->\n								<div class="form-group">\n									<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n									<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="configuration.description"/>\n								</div>\n								<!-- END DESCRIPTION -->\n\n								<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="goNext()"/>\n							</form>\n						</wz-step>\n\n						<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n							<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n							<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n						</wz-step>\n				</wizard>\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/view/view.configurationSettings.html",'<div class="row" data-ng-init="getConfiguration();getVariables();getFields();">\n	<div class="col-md-12">\n		<div class="portlet light">\n			<div class="portlet-title tabbable-line">\n				<div class="caption caption-md">\n					<i class="icon-globe theme-font hide"></i>\n					<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATION\' | translate}}: {{configurationName}}</span>\n				</div>\n				<ul class="nav nav-tabs">\n					<li class="active">\n						<a href="#" data-target="#tab_1_1" data-toggle="tab">{{\'APPLICATION_SUBJECT\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_2" data-toggle="tab">{{\'APPLICATION_DESCRIPTION\' | translate}}</a>\n					</li>\n          <li>\n						<a href="#" data-target="#tab_1_3" data-toggle="tab">{{\'APPLICATION_FIELDS\' | translate}}</a>\n					</li>\n				</ul>\n			</div>\n			<div class="portlet-body">\n				<div class="tab-content">\n					<!-- SUBJECT TAB -->\n					<div class="tab-pane ui-padding active" id="tab_1_1">\n            <div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by blank space:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemSubject()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="subjectItem in subjectConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="subjectItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(subjectItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="subjectItem.content" data-ng-change="updateField(subjectItem)">\n	                </div>\n	              </div>\n	              <div class="col-md-8" data-ng-if="subjectItem.type==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="subjectItem.VariableId" data-ng-change="updateField(subjectItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(subjectItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END SUBJECT TAB -->\n          <!-- DESCRIPTION TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_2">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">All following fields will be join by new line:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemDescription()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n							<div class="row" data-ng-repeat="descriptionItem in descriptionConfig">\n								<!-- <pre>\n									{{descriptionItem|json}}\n								</pre> -->\n	              <div class="col-md-2">\n	                <ui-select ng-model="descriptionItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n	                  <ui-select-choices repeat="item in descFieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-9" data-ng-if="descriptionItem.type==\'string\'">\n	                <div class="form-group">\n	                  <input type="text" class="form-control" data-ng-model="descriptionItem.content" data-ng-change="updateField(descriptionItem)">\n	                </div>\n	              </div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<input type="text" class="form-control" placeholder="Key" data-ng-model="descriptionItem.key" data-ng-change="updateField(descriptionItem)">\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\'">\n									<ui-select ng-model="descriptionItem.keyType" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeDescType(descriptionItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n	                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n	                    <div ng-bind-html="item | highlight: $select.search | capitalize"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n								</div>\n								<div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'string\'">\n									<input type="text" class="form-control" placeholder="Value" data-ng-model="descriptionItem.keyContent" data-ng-change="updateField(descriptionItem)">\n								</div>\n	              <div class="col-md-3" data-ng-if="descriptionItem.type==\'key_value\' && descriptionItem.keyType==\'variable\'">\n	                <div class="form-group">\n	                  <ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="descriptionItem.VariableId" data-ng-change="updateField(descriptionItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(descriptionItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END DESCRIPTION TAB -->\n          <!-- FIELDS TAB -->\n					<div class="tab-pane ui-padding" id="tab_1_3">\n						<div class="row">\n              <div class="col-md-11">\n                <span class="caption-subject">Add how to fill the fields present in your account:</span>\n              </div>\n              <div class="col-md-1 pull-rigth">\n                <button class="btn btn-icon-only green" data-ng-click="addItemField()"><i class="fa fa-plus"></i></button>\n              </div>\n            </div>\n            <hr>\n						<!-- <div ng-scrollbars ng-scrollbars-config="config"> -->\n	            <div class="row" data-ng-repeat="fieldItem in fieldConfig">\n	              <div class="col-md-3">\n	                <ui-select ng-model="fieldItem.idField" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeFieldType(fieldItem)">\n	                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.title}}</ui-select-match>\n	                  <ui-select-choices repeat="item.id as item in accountFields | filter: $select.search">\n	                    <div ng-bind-html="item.title | highlight: $select.search"></div>\n	                  </ui-select-choices>\n	                </ui-select>\n	              </div>\n	              <div class="col-md-8" data-ng-if="getSystemFieldOptions(fieldItem.idField)">\n	                <div class="form-group">\n										<ui-select ng-model="fieldItem.content" theme="bootstrap" ng-disabled="disabled" data-ng-change="updateField(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n		                  <ui-select-choices repeat="item.value as item in getSystemFieldOptions(fieldItem.idField) | filter: $select.search">\n		                    <div ng-bind-html="item.name | highlight: $select.search"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField)">\n									<div class="form-group">\n										<ui-select ng-model="fieldItem.type" theme="bootstrap" ng-disabled="disabled" data-ng-change="changeType(fieldItem)">\n		                  <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected | ucfirst}}</ui-select-match>\n		                  <ui-select-choices repeat="item in fieldType | filter: $select.search">\n		                    <div ng-bind-html="item | highlight: $select.search | ucfirst"></div>\n		                  </ui-select-choices>\n		                </ui-select>\n									</div>\n								</div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'string\'">\n	                <div class="form-group">\n										<input type="text" class="form-control" data-ng-model="fieldItem.content" data-ng-change="updateField(fieldItem)">\n	                </div>\n	              </div>\n								<div class="col-md-4" data-ng-if="!getSystemFieldOptions(fieldItem.idField) && fieldItem.type === \'variable\'">\n	                <div class="form-group">\n										<ui-select theme="bootstrap" ng-disabled="disabled" data-ng-model="fieldItem.VariableId" data-ng-change="updateField(fieldItem)">\n	                    <ui-select-match placeholder="{{\'APPLICATION_SEARCH\' | translate}}">{{$select.selected.name}}</ui-select-match>\n	                    <ui-select-choices repeat="variable.id as variable in variables | filter: $select.search">\n	                      <div ng-bind-html="variable.name | highlight: $select.search"></div>\n	                    </ui-select-choices>\n	                  </ui-select>\n	                </div>\n	              </div>\n	              <div class="col-md-1">\n	                <div class="form-group">\n	                  <button class="btn btn-icon-only red" data-ng-click="removeItem(fieldItem)"><i class="fa fa-times"></i></button>\n	                </div>\n	              </div>\n	            </div>\n						<!-- </div> -->\n					</div>\n					<!-- END FIELDS TAB -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.configurations.html",'<div ui-view class="profile-content">\n	<div class="row" data-ng-init="getConfigurations()">\n		<div class="col-md-12">\n			<div class="portlet light">\n				<div class="portlet-title  tabbable-line">\n					<div class="caption caption-md">\n						<i class="icon-globe theme-font hide"></i>\n						<span class="caption-subject font-blue-madison bold uppercase">{{\'APPLICATION_CONFIGURATIONS\' | translate}}</span>\n					</div>\n					<div class="actions">\n						<div class="btn-group">\n							<a class="btn green-jungle " href="/zendesk/view/{{account.id}}/configuration" data-toggle="dropdown">\n								<i class="icon-plus"></i> {{ \'APPLICATION_NEW_CONFIGURATION\' | translate }}\n							</a>\n						</div>\n					</div>\n				</div>\n				<div class="portlet-body">\n					<!-- START TABLE -->\n					<table class="table table-striped table-bordered table-hover">\n						  <thead>\n							  <tr>\n							    <th>{{\'APPLICATION_NAME\' | translate}}</th>\n									<th>{{\'APPLICATION_DESCRIPTION\' | translate}}</th>\n									<th>{{ \'APPLICATION_ACTIONS\' | translate }}</th>\n							  </tr>\n						  </thead>\n							<tbody>\n						    <tr data-ng-repeat="configuration in configurations">\n									<td>{{configuration.name}}</td>\n									<td>{{configuration.description}}</td>\n						      <td>\n										<a class="btn default btn-xs blue-stripe" data-ng-href="/zendesk/view/{{account.id}}/configurations/settings/{{configuration.id}}">\n											{{ \'APPLICATION_SETTINGS\' | translate}}\n						        </a>\n						        <a class="btn default btn-xs red-stripe" data-ng-click="deleteConfiguration(configuration.name,configuration.id)">\n											{{ \'APPLICATION_DELETE\' | translate }}\n						        </a>\n						      </td>\n						    </tr>\n								<tr data-ng-hide="configurations.length">\n									<td colspan="5" style="text-align:center;">\n										<i>No configuration available</i>\n									</td>\n								</tr>\n						  </tbody>\n					</table>\n					<!-- END TABLE -->\n				</div>\n			</div>\n		</div>\n	</div>\n</div>\n'),a.put("app/zendesk/view/view.html",'<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initView()">\n	<div class="col-md-12">\n		<div class="page-bar">\n			<ul class="page-breadcrumb">\n				<li>\n					<i class="icon-rocket"></i>\n					<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n          <i class="icon-handbag"></i>\n          <a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n					<i class="fa fa-angle-right"></i>\n				</li>\n				<li>\n					<a href="#">{{account.name}}</a>\n				</li>\n			</ul>\n		</div>\n\n		<!-- BEGIN PROFILE SIDEBAR -->\n		<div class="profile-sidebar">\n			<!-- PORTLET MAIN -->\n			<div class="portlet light profile-sidebar-portlet">\n				<!-- SIDEBAR USERPIC -->\n				<div class="profile-image">\n					<img src="assets/images/media/zendesk.png" class="img-responsive">\n				</div>\n				<!-- END SIDEBAR USERPIC -->\n				<!-- SIDEBAR USER TITLE -->\n				<div class="profile-usertitle">\n					<div class="profile-usertitle-name">\n						{{account.name}}\n					</div>\n					<div class="profile-usertitle-job">\n						{{account.remoteUri}}\n					</div>\n				</div>\n				<!-- END SIDEBAR USER TITLE -->\n				<!-- SIDEBAR MENU -->\n				<div class="profile-usermenu">\n					<ul class="nav">\n						<li data-ng-class="{active: $state.is(\'main.zendesk.view.account\')}">\n							<a ng-href="/zendesk/view/{{account.id}}/account">\n							<i class="icon-user"></i>\n							{{ \'APPLICATION_ACCOUNT\' | translate }} </a>\n						</li>\n						<li data-ng-class="{active: $state.includes(\'main.zendesk.view.configurations\') || $state.is(\'main.zendesk.view.configuration\')}">\n							<a ng-href="/zendesk/view/{{account.id}}/configurations">\n							<i class="icon-settings"></i>\n							{{ \'APPLICATION_CONFIGURATIONS\' | translate }} </a>\n						</li>\n					</ul>\n				</div>\n				<!-- END MENU -->\n			</div>\n			<!-- END PORTLET MAIN -->\n		</div>\n		<!-- END BEGIN PROFILE SIDEBAR -->\n		<!-- BEGIN PROFILE CONTENT -->\n		<div ui-view class="profile-content">\n		</div>\n		<!-- END PROFILE CONTENT -->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),a.put("app/zendesk/wizard/wizard.html",'<!-- BEGIN PAGE HEADER-->\n<div class="row">\n	<div class="col-md-12">\n			<div class="page-bar">\n				<ul class="page-breadcrumb">\n					<li>\n						<i class="icon-rocket"></i>\n						<a href="/">{{ \'APPLICATION_DASHBOARD\' | translate }}</a>\n						<i class="fa fa-angle-right"></i>\n					</li>\n					<li>\n						<i class="icon-handbag"></i>\n						<a href="/zendesk/list">{{ \'APPLICATION_ZENDESK\' | translate }}</a>\n					</li>\n				</ul>\n			</div>\n		</div>\n</div>\n<!-- END PAGE HEADER-->\n\n<!-- BEGIN PAGE CONTENT-->\n<div class="row" data-ng-init="initWizard()">\n	<div class="col-md-12">\n		<!-- BEGIN Portlet PORTLET-->\n		<div class="portlet light bordered">\n			<div class="portlet-title">\n				<div class="caption font-green-sharp">\n					<i class="icon-notebook font-green-sharp"></i>\n					<span class="caption-subject">{{ \'APPLICATION_ACCOUNT\' | translate }} WIZARD</a> </span>\n				</div>\n			</div>\n			<div class="portlet-body">\n				<wizard on-finish="createItem()">\n          <wz-step title="{{\'APPLICATION_ACCOUNT_INFO\' | translate}}" canexit="exitValidation(forms.formSetting.$valid)">\n						<form name="forms.formSetting" novalidate>\n\n							<!-- START NAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.name.$invalid}">\n								<label class="control-label">{{\'APPLICATION_NAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="name" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.name" required/>\n								<span data-ng-show="forms.formSetting.name.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END NAME -->\n\n							<!-- START DESCRIPTION -->\n							<div class="form-group">\n								<label class="control-label">{{\'APPLICATION_DESCRIPTION\' | translate}}</label>\n								<input type="text" name="description" placeholder="{{\'APPLICATION_DESCRIPTION\' | translate}}" class="form-control" data-ng-model="item.description"/>\n							</div>\n							<!-- END DESCRIPTION -->\n\n              <!-- START USERNAME -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.username.$invalid}">\n								<label class="control-label">{{\'APPLICATION_USERNAME\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="username" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.username" required ng-remote-validate="/api/zendesk/accounts/validate/username"/>\n								<span data-ng-show="forms.formSetting.username.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.username.$touched || forms.formSetting.$submitted) && forms.formSetting.username.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_USERNAME\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n              <!-- START REMOTE ADDRESS -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.remoteUri.$invalid}">\n								<label class="control-label">{{\'APPLICATION_REMOTE_ADDRESS\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="url" name="remoteUri" placeholder="{{\'APPLICATION_REMOTE_ADDRESS\' | translate}}" class="form-control" data-ng-model="item.remoteUri" required ng-remote-validate="/api/zendesk/accounts/validate/remoteUri"/>\n								<span data-ng-show="forms.formSetting.remoteUri.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n								<span data-ng-show="(forms.formSetting.remoteUri.$touched || forms.formSetting.$submitted) && forms.formSetting.remoteUri.$error.ngRemoteValidate" class="help-block help-block-error">\n				          <strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_EXIST_DOMAIN\' | translate}}.\n				        </span>\n							</div>\n							<!-- END USERNAME -->\n\n							<!-- START AUTH TYPE -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.authType.$invalid}">\n								<label class="control-label">{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}</label>\n								<ui-select data-ng-model="item.authType" name="authType" theme="bootstrap" required>\n									<ui-select-match placeholder="{{\'APPLICATION_AUTHENTICATION_TYPE\' | translate}}">{{$select.selected | capitalize}}</ui-select-match>\n									<ui-select-choices repeat="type in [\'password\', \'token\'] | filter: $select.search">\n										<div data-ng-bind="type | capitalize | highlight: $select.search"></div>\n									</ui-select-choices>\n								</ui-select>\n								<span data-ng-show="forms.formSetting.authType.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- START AUTH TYPE -->\n\n              <!-- START PASSWORD -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.password.$invalid}" ng-slide-down="item.authType == \'password\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_PASSWORD\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="password" name="password" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.password" required/>\n								<span data-ng-show="forms.formSetting.password.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END PASSWORD -->\n\n              <!-- START TOKEN -->\n							<div class="form-group" data-ng-class="{\'has-error\': forms.formSetting.$submitted && forms.formSetting.token.$invalid}" ng-slide-down="item.authType == \'token\'" lazy-render duration="1">\n								<label class="control-label">{{\'APPLICATION_TOKEN\' | translate}} <span class="required" aria-required="true">*</span></label>\n								<input type="text" name="token" placeholder="{{\'APPLICATION_NAME\' | translate}}" class="form-control" data-ng-model="item.token" required/>\n								<span data-ng-show="forms.formSetting.token.$invalid && forms.formSetting.$submitted" class="help-block help-block-error">\n									<strong>{{\'APPLICATION_WARNING\' | translate}}!</strong> {{\'MESSAGE_REQUIRED_FIELD\' | translate}}.\n								</span>\n							</div>\n							<!-- END TOKEN -->\n\n							<input class="btn green-haze" type="submit" value="{{\'APPLICATION_CONTINUE\' | translate}}" data-ng-click="next()"/>\n\n						</form>\n					</wz-step>\n\n					<wz-step title="{{\'APPLICATION_CONFIRM\' | translate}}">\n						<p>{{\'MESSAGE_CONFIGURATION_COMPLETED\' | translate}}</p>\n						<input type="submit" class="btn green-haze" wz-next value="{{\'APPLICATION_CONFIRM\' | translate}}"/>\n					</wz-step>\n\n				</wizard>\n\n			</div>\n		</div>\n		<!-- END Portlet PORTLET-->\n	</div>\n</div>\n<!-- END PAGE CONTENT-->\n'),
+a.put("components/footer/footer.html",'<!-- BEGIN FOOTER -->\n<div class="page-footer">\n  <div class="page-footer-inner">\n     2015 &copy; xCALLY MOTION by Xenialab srl.\n  </div>\n  <div class="scroll-to-top">\n    <i class="icon-arrow-up"></i>\n  </div>\n</div>\n<!-- END FOOTER -->\n'),a.put("components/header/header.html",'<!-- BEGIN HEADER INNER -->\n<div class="page-header-inner" data-ng-init="initHeader()">\n  <!-- BEGIN LOGO -->\n  <div class="page-logo">\n    <a href="/">\n    <img src="assets/images/logo.png" alt="logo" class="logo-default"/>\n    </a>\n    <div class="menu-toggler sidebar-toggler">\n      <!-- DOC: Remove the above "hide" to enable the sidebar toggler button on header -->\n    </div>\n  </div>\n  <!-- END LOGO -->\n  <!-- BEGIN HEADER SEARCH BOX -->\n  <!-- DOC: Apply "search-form-expanded" right after the "search-form" class to have half expanded search box -->\n  <form class="search-form hide" action="extra_search.html" method="GET">\n    <div class="input-group">\n      <input type="text" class="form-control" placeholder="Search..." name="query">\n      <span class="input-group-btn">\n      <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n      </span>\n    </div>\n  </form>\n  <!-- END HEADER SEARCH BOX -->\n  <!-- BEGIN RESPONSIVE MENU TOGGLER -->\n  <a href="javascript:;" class="menu-toggler responsive-toggler" data-toggle="collapse" data-target=".navbar-collapse">\n  </a>\n  <!-- END RESPONSIVE MENU TOGGLER -->\n  <!-- BEGIN TOP NAVIGATION MENU -->\n  <div class="top-menu">\n    <ul class="nav navbar-nav pull-right">\n      <!-- BEGIN LANGUAGE BAR -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-language">\n        <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true">\n        <img ng-src="assets/images/flags/{{ language }}.png">\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a href="#" ng-click="changeLanguage(\'it\')">\n            <img alt="" src="assets/images/flags/it.png"> Italian </a>\n          </li>\n          <li>\n            <a href="#" ng-click="changeLanguage(\'en_EN\')">\n            <img alt="" src="assets/images/flags/en_EN.png"> English </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END LANGUAGE BAR -->\n      <!-- BEGIN USER LOGIN DROPDOWN -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-user">\n        <a href="#" class="dropdown-toggle" dropdown-menu-hover data-toggle="dropdown" data-close-others="true">\n        <img class="img-circle" data-ng-src="api/users/avatar/{{getCurrentUser().userpic || \'unknown_avatar\'}}" alt="...">\n        <span class="username username-hide-on-mobile">\n          {{ getCurrentUser().fullname }} </span>\n        <i class="fa fa-angle-down"></i>\n        </a>\n        <ul class="dropdown-menu dropdown-menu-default">\n          <li>\n            <a ng-href=" {{isAdmin() ? \'/users/view/\'+getCurrentUser().id+\'/account\' : \'/agents/view/\'+getCurrentUser().id+\'/account\'}}">\n            <i class="icon-key"></i>Change password</a>\n          </li>\n          <!-- <li>\n            <a href="#">\n            <i class="icon-calendar"></i> My Calendar </a>\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-envelope-open"></i> My Inbox <span class="badge badge-danger">\n            3 </span>\n            </a>\n          </li> -->\n          <!-- <li>\n            <a href="#/todo">\n            <i class="icon-rocket"></i> My Tasks <span class="badge badge-success">\n            7 </span>\n            </a>\n          </li> -->\n          <!-- <li class="divider">\n          </li> -->\n          <!-- <li>\n            <a href="#">\n            <i class="icon-lock"></i> Lock Screen </a>\n          </li> -->\n          <li data-ng-click="logout()">\n            <a href="#">\n            <i class="icon-logout"></i> Log Out </a>\n          </li>\n        </ul>\n      </li>\n      <!-- END USER LOGIN DROPDOWN -->\n      <!-- BEGIN QUICK SIDEBAR TOGGLER -->\n      <!-- DOC: Apply "dropdown-dark" class after below "dropdown-extended" to change the dropdown styte -->\n      <li class="dropdown dropdown-quick-sidebar-toggler" data-ng-click="toggleQuickSidebar()">\n        <a href="#" class="dropdown-toggle">\n        <i class="icon-logout"></i>\n        </a>\n      </li>\n      <!-- END QUICK SIDEBAR TOGGLER -->\n    </ul>\n  </div>\n  <!-- END TOP NAVIGATION MENU -->\n</div>\n<!-- END HEADER INNER -->\n'),a.put("components/modal/delete.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text"></p>\n  <div ng-if="modal.html" ng-bind-html="modal.html"></div>\n</div>\n<div class="modal-footer">\n  <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button>\n</div>\n'),a.put("components/quickSidebar/modal/add.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n\n<div class="modal-body">\n  <div class="portlet box blue">\n		<div class="portlet-title">\n			<div class="caption">\n				<i class="icon-people"></i>{{\'APPLICATION_SELECTED_AGENTS\' | translate}}\n			</div>\n		</div>\n		<div class="portlet-body">\n			<ul>\n				<li data-ng-repeat="item in items">\n					 {{item.fullname}}\n				</li>\n\n        <li data-ng-repeat="item in selected.items">\n					 {{item.fullname}}\n				</li>\n			</ul>\n		</div>\n	</div>\n\n  <ui-select multiple name="items" ng-model="selected.items" theme="bootstrap">\n    <ui-select-match placeholder="{{\'APPLICATION_SELECTED_AGENTS\' | translate}}">{{$item.fullname}}</ui-select-match>\n    <ui-select-choices repeat="{id: agent.id, fullname: agent.fullname} as agent in agents.rows | filter: $select.search">\n      {{agent.fullname}}\n    </ui-select-choices>\n  </ui-select>\n</div>\n\n<div class="modal-footer">\n  <button class="btn btn-success" type="button" data-ng-click="ok()" data-ng-show="selected.items.length">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" data-ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n</div>\n'),a.put("components/quickSidebar/modal/close.html",'<div class="modal-header">\n  <button ng-if="modal.dismissable" type="button" ng-click="$dismiss()" class="close">&times;</button>\n  <h4 ng-if="modal.title" ng-bind="modal.title | translate" class="modal-title"></h4>\n</div>\n<div class="modal-body">\n  <p ng-if="modal.text" ng-bind="modal.text | translate"></p>\n  <!-- <div ng-if="modal.html" ng-bind-html="modal.html"></div> -->\n</div>\n<div class="modal-footer">\n  <button class="btn btn-danger" type="button" ng-click="ok()">{{ \'APPLICATION_CONFIRM\' | translate }}</button>\n  <button class="btn default" type="button" ng-click="cancel()">{{ \'APPLICATION_CANCEL\' | translate }}</button>\n  <!-- <button ng-repeat="button in modal.buttons" ng-class="button.classes" ng-click="button.click($event)" ng-bind="button.text" class="btn"></button> -->\n</div>\n'),a.put("components/quickSidebar/quickSidebar.html",'<div class="page-quick-sidebar">\n  <div class="nav-justified">\n    <ul class="nav nav-tabs nav-justified">\n      <li data-ng-class="{active:currentTab==0}" data-ng-click="goToTab(0)">\n        <a href="#">\n          <!-- <i class="icon-people"></i> <span class="badge badge-danger">2</span> -->\n          <i class="icon-people"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==1}" data-ng-click="goToTab(1)">\n        <a href="#">\n          <!-- <i class="icon-eye"></i> <span class="badge badge-success">7</span> -->\n        <i class="icon-eye"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==2}" data-ng-click="goToTab(2)">\n        <a href="#">\n          <!-- <i class="icon-globe"></i> <span class="badge badge-success">7</span> -->\n        <i class="icon-globe"></i>\n        </a>\n      </li>\n      <li data-ng-class="{active:currentTab==3}" data-ng-click="goToTab(3)">\n        <a href="#">\n          <!-- <i class="icon-bubbles"></i> <span class="badge badge-success">7</span> -->\n        <i class="icon-bubbles"></i>\n        </a>\n      </li>\n    </ul>\n    <div class="tab-content">\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==0 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n							<input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_AGENT\' | translate}}..." ng-model="searchAgent">\n							<span class="input-group-btn">\n							<i class="icon-magnifier"></i>\n							</span>\n						</div>\n          </div>\n          <ul class="media-list list-items" data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="agent in agents.rows | orderBy:\'-online\' | filter:searchAgent as resultsAgent" data-ng-if="agent.id !== currentUser.id">\n              <div class="media-status">\n                <!-- <span class="badge badge-success">8</span> -->\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{agent.userpic ? agent.userpic : \'unknown_avatar\'}}" alt="{{agent.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(agent.id)">\n                <h4 class="media-heading"><span class="item-status">{{agent.fullname | characters:15 :true}} {{agent.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="agent.online ? \'badge-success\' : \'badge-danger\'"></span></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{agent.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="agents.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsAgent.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_AGENTS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==1 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchUser">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="user in users.rows | orderBy:\'-online\' | filter:searchUser as resultsUser" data-ng-if="user.id !== currentUser.id">\n              <div class="media-status">\n                <!-- <span class="badge badge-success">3</span> -->\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(user.id)">\n                <h4 class="media-heading">{{user.fullname | characters:15 :true}} {{user.internal}}</h4>\n                <div class="media-heading-small">\n                   <span class="badge badge-empty" data-ng-class="user.online ? \'badge-success\' : \'badge-danger\'"></span> {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{user.updatedAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="users.rows.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n            <li class="media animate-repeat" ng-if="resultsUser.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_USERS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==2 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchChatRoomsExternals">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | filter:{type:\'external\'} | filter:searchChatRoomsExternals as resultsChatRoomsExternals">\n              <div class="media-status">\n                <!-- <span class="badge badge-success">3</span> -->\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.ChatVisitor.email}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.createdAt}}">April 1, 2014</time>\n                </div>\n              </div>\n            </li>\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsExternals.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat" ng-class="{active:currentTab==3 && !messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list">\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_USER\' | translate}}..." ng-model="searchChatRoomsGroups">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n          <ul class="media-list list-items"  data-ng-style="style" ng-scrollbars>\n            <li class="media animate-repeat" data-ng-repeat="chatRoom in chatRooms | filter:chatRoomsGroupsGreaterThan(2) | filter:searchChatRoomsGroups as resultsChatRoomsGroups">\n              <div class="media-status">\n                <!-- <span class="badge badge-success">3</span> -->\n              </div>\n              <img class="media-object" data-ng-src="api/users/avatar/{{user.userpic ? user.userpic : \'unknown_avatar\'}}" alt="{{user.fullname}}">\n              <div class="media-body" data-ng-click="goToMessage(null, chatRoom.id)">\n                <h4 class="media-heading">{{chatRoom.name}}</h4>\n                <div class="media-heading-small">\n                   {{\'APPLICATION_LAST_SEEN\' | translate | lowercase}} <time is="relative-time" datetime="{{chatRoom.updatedAt}}">April 1, 2014</time>\n                </div>\n                <div class="media-heading-small">\n                  <div data-ng-repeat="user in chatRoom.Users | map: \'fullname\'" class="inline">\n                    {{ $last ? user : user + \', \'}}\n                  </div>\n                </div>\n              </div>\n            </li>\n            <!-- <li class="media animate-repeat" ng-if="chatRooms.length == 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHAT_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li> -->\n            <li class="media animate-repeat" data-ng-if="resultsChatRoomsGroups.length === 0">\n              <div class="media-body" style="text-align: center;">\n                <h4 class="media-heading"><i>{{\'MESSAGE_NO_CHATS_FOUND\' | translate | lowercase}}</i></h4>\n              </div>\n            </li>\n          </ul>\n        </div>\n      </div>\n      <div class="tab-pane page-quick-sidebar-chat page-quick-sidebar-content-item-shown" ng-class="{active:messagesTab}">\n        <div class="page-quick-sidebar-chat-users" data-rail-color="#ddd" data-wrapper-class="page-quick-sidebar-list" >\n          <div class="quicksidebar-search">\n            <div class="input-group">\n              <input type="search" class="form-control" placeholder="{{\'APPLICATION_SEARCH\' | translate}} {{\'APPLICATION_MESSAGE\' | translate}}..." ng-model="searchMessage">\n              <span class="input-group-btn">\n              <i class="icon-magnifier"></i>\n              </span>\n            </div>\n          </div>\n        </div>\n        <div class="page-quick-sidebar-item">\n          <div class="page-quick-sidebar-chat-user" data-wrapper-class="page-quick-sidebar-list">\n            <div class="page-quick-sidebar-nav">\n                <a href="#" class="page-quick-sidebar-back-to-list" data-ng-click="goBack()"><i class="icon-arrow-left"></i>Back</a>\n            </div>\n            <div id="page-quick-sidebar-chat-user-messages" class="page-quick-sidebar-chat-user-messages" data-ng-style="style2" ng-scrollbars>\n              <div class="post animate-repea" data-ng-repeat="chatMessage in chatRoom.ChatMessages | filter:searchMessage as resultsMessage" data-ng-class="chatMessage.UserId === currentUser.id ? \'in\' : \'out\'">\n                <img class="avatar" alt="" ng-src="api/users/avatar/unknown_avatar"/>\n                <div class="message">\n                  <span class="arrow"></span>\n                  <a href="#" class="name">{{chatMessage.User.fullname || chatMessage.ChatVisitor .fullname}}</a> -\n                  <span class="datetime">\n                    <time is="relative-time" datetime="{{chatMessage.createdAt}}">\n                      April 1, 2014\n                    </time>\n                  </span>\n                  <ng-emoticons class="body" emoticons-data="chatMessage.body" emoticons-options="options"/>\n                  <!-- <div class="body" ng-bind-html="chatMessage.body"></div>\n                  <!-- <div ng-bind-html="chatMessage.body | emoticons:{\'linkTarget\':\'_blank\',\'newLine\':true}" class="ng-emoticons"></div> --> -->\n                </div>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="resultsMessage.length == 0">\n                <h5 class="media-heading"><i>{{\'MESSAGE_NO_MESSAGES_FOUND\' | translate | lowercase}}</i></h5>\n              </div>\n\n              <div class="media-body" style="text-align: center;" data-ng-if="chatRoom.status === \'close\'">\n                <h5 class="media-heading"><i>{{\'MESSAGE_CHAT_CLOSED\' | translate | lowercase}}</i></h5>\n              </div>\n\n            </div>\n            <div class="page-quick-sidebar-chat-user-form">\n              <textarea rows="3" class="form-control" style="border:none;resize: none;" placeholder="Type a message here..." ng-enter="sendMessage()" data-ng-model="message.body" data-ng-disabled="chatRoom.status === \'close\'"></textarea>\n              <div class="btn-group" style="width:100%;background-color:white">\n                <button type="button" class="btn btn-default" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="addAgent(chatRoom.id)"><i class="icon-plus font-blue"></i></button>\n                <button type="button" class="btn btn-default pull-right" style="border:none" data-ng-disabled="chatRoom.status === \'close\'" data-ng-click="closeChatRoom(chatRoom.id)" data-ng-show="chatRoom.type === \'external\'"><i class="icon-close font-red"></i></button>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n'),a.put("components/sidebar/sidebar.html",'<div id="page-sidebar" class="page-sidebar navbar-collapse collapse">\n  <!-- BEGIN SIDEBAR MENU -->\n  <!-- DOC: Apply "page-sidebar-menu-light" class right after "page-sidebar-menu" to enable light sidebar menu style(without borders) -->\n  <!-- DOC: Apply "page-sidebar-menu-hover-submenu" class right after "page-sidebar-menu" to enable hoverable(hover vs accordion) sub menu mode -->\n  <!-- DOC: Apply "page-sidebar-menu-closed" class right after "page-sidebar-menu" to collapse("page-sidebar-closed" class must be applied to the body element) the sidebar sub menu mode -->\n  <!-- DOC: Set data-auto-scroll="false" to disable the sidebar from auto scrolling/focusing -->\n  <!-- DOC: Set data-keep-expand="true" to keep the submenues expanded -->\n  <!-- DOC: Set data-auto-speed="200" to adjust the sub menu slide up/down speed -->\n  <ul data-ng-click="mainTab.active=true" class="page-sidebar-menu" data-keep-expanded="false" data-auto-scroll="true" data-slide-speed="200" data-ng-class="{\'page-sidebar-menu-closed\': settings.layout.pageSidebarClosed}">\n    <!-- DOC: To remove the search box from the sidebar you just need to completely remove the below "sidebar-search-wrapper" LI element -->\n    <li class="sidebar-search-wrapper">\n      <!-- BEGIN RESPONSIVE QUICK SEARCH FORM -->\n      <!-- DOC: Apply "sidebar-search-bordered" class the below search form to have bordered search box -->\n      <!-- DOC: Apply "sidebar-search-bordered sidebar-search-solid" class the below search form to have bordered & solid search box -->\n      <form class="sidebar-search sidebar-search-bordered" action="extra_search.html" method="POST">\n        <a href="javascript:;" class="remove">\n        <i class="icon-close"></i>\n        </a>\n        <!-- <div class="input-group">\n          <input type="text" class="form-control" placeholder="Search...">\n          <span class="input-group-btn">\n          <a href="javascript:;" class="btn submit"><i class="icon-magnifier"></i></a>\n          </span>\n        </div> -->\n      </form>\n      <!-- END RESPONSIVE QUICK SEARCH FORM -->\n    </li>\n\n    <!-- START DASHBOARD CASE -->\n    <li class="start" data-ng-show="isAssociated(\'dashboard\')" data-ng-class="{active: $state.is(\'main.dashboard\')}">\n      <a href="/dashboard/voice">\n        <i class="icon-rocket"></i>\n        <span class="title">{{\'APPLICATION_DASHBOARD\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.dashboard\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END DASHBOARD CASE -->\n\n    <!-- START YOURDASHBOARD LIST CASE -->\n    <li data-ng-class="{active: $state.is(\'main.yourdashboards.show\')}" data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-screen-desktop"></i>\n        <span class="title" >{{\'APPLICATION_YOUR_DASHBOARDS\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.yourdashboards.show\') }"></span>\n      </a>\n      <ul class="sub-menu" data-ng-init="getSidebarDashboards()">\n        <li data-ng-class="{active: $stateParams.id == dashboard.id && $state.includes(\'main.yourdashboards.show\')}" data-ng-repeat="dashboard in dashboards" data-ng-show="dashboard[Auth.getRole()] && dashboard.visible">\n          <a href="/yourdashboards/show/{{dashboard.id}}" >\n          <i class="icon-screen-tablet"></i>\n          <span class="title" >{{dashboard.name}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <!-- END YOURDASHBOARD LIST CASE -->\n\n    <!-- START STAFF SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_STAFF\' | translate}}  </span> </h3>\n    </li>\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START USERS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'users\')" data-ng-class="{active: $state.includes(\'main.users\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.users\')}">\n      <a href="/users/list">\n        <i class="icon-eye"></i>\n        <span class="title" >{{\'APPLICATION_USERS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.users\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END USERS CASE -->\n\n    <!-- START AGENTS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'agents\')" data-ng-class="{active: $state.includes(\'main.agents\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.agents\')}">\n      <a href="/agents/list">\n        <i class="icon-people"></i>\n        <span class="title" >{{\'APPLICATION_AGENTS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.agents\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AGENTS CASE -->\n\n    <!-- START TEAMS CASE -->\n    <li data-ng-show="isAssociated(\'teams\')" data-ng-class="{active: $state.includes(\'main.teams\')}">\n      <a href="/teams/list">\n        <i class="icon-shield"></i>\n        <span class="title" >{{\'APPLICATION_TEAMS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.teams\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END TEAMS CASE -->\n    <!-- END STAFF SEPARATOR -->\n\n    <!-- START CONTACT_MANAGER SEPARATOR -->\n    <li class="heading" data-ng-show="Auth.isAdmin()">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CONTACT_MANAGER\' | translate}}  </span> </h3>\n    </li>\n    <!-- END CONTACT_MANAGER SEPARATOR -->\n\n    <!-- START CONTACT_MANAGER CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.contactmanager\')}">\n      <a href="/contactmanager/list">\n        <i class=" fa fa-users"></i>\n        <span class="title" >{{\'APPLICATION_CONTACT_MANAGER\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.contactmanager\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END CONTACT_MANAGER CASE -->\n    <!-- END CONTACT_MANAGER SEPARATOR -->\n\n    <!-- START CHANNELS SEPARATOR -->\n    <li class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_CHANNELS\' | translate}}  </span> </h3>\n    </li>\n\n    <!-- START icon-link CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{ active: $state.includes(\'main.voice\') }">\n      <a href="javascript:;">\n        <i class="icon-earphones-alt"></i>\n        <span class="title">{{ \'APPLICATION_VOICE\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.voice.queues\')}">\n          <a href="/voice/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title">{{\'APPLICATION_QUEUES\' | translate}}</span>\n          </a>\n        </li>\n        <li>\n          <a href="javascript:;">\n          <i class="icon-directions"></i>\n          <span class="title"> {{ \'APPLICATION_ROUTES\' | translate}} </span>\n          <span class="arrow" data-ng-class="{ open: $state.includes(\'main.voice.routes\') }"></span>\n          <ul class="sub-menu">\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.inbound\')}">\n              <a href="/voice/routes/inbound/list">\n              <i class="icon-call-in"></i>\n              <span class="title"> {{\'APPLICATION_INBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.outbound\')}">\n              <a href="/voice/routes/outbound/list">\n              <i class="icon-call-out"></i>\n              <span class="title"> {{\'APPLICATION_OUTBOUND\' | translate}} </span>\n              </a>\n            </li>\n            <li data-ng-class="{active: $state.includes(\'main.voice.routes.internal\')}">\n              <a href="/voice/routes/internal/list">\n              <i class="icon-reload"></i>\n              <span class="title"> {{\'APPLICATION_INTERNALS\' | translate}} </span>\n              </a>\n            </li>\n          </ul>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.contexts\')}">\n          <a href="/voice/contexts/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_CONTEXTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.voicemails\')}">\n          <a href="/voice/voicemails/list">\n          <i class="icon-envelope-letter"></i>\n          <span class="title"> {{\'APPLICATION_VOICEMAILS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.voice.mohs\')}">\n          <a href="/voice/mohs/list">\n          <i class="icon-music-tone"></i>\n          <span class="title"> {{\'APPLICATION_MOH\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.voice.realtime\')}">\n          <a href="/voice/realtime/view/agents">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END icon-link CASE -->\n\n    <!-- START CHAT CASE -->\n    <li data-ng-show="isAssociated(\'chat\')" data-ng-class="{ active: $state.includes(\'main.chat\') }">\n      <a href="javascript:;">\n        <i class="icon-bubble"></i>\n        <span class="title">{{\'APPLICATION_CHAT\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.chat\') }"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.chat.websites\')}">\n          <a href="/chat/websites/list">\n          <i class="icon-globe"></i>\n          <span class="title"> {{\'APPLICATION_WEB_SITES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.chat.queues\')}">\n          <a href="/chat/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.chat.realtime\')}">\n          <a href="/chat/realtime/view/agents">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END CHAT CASE -->\n\n    <!-- START MAIL CASE -->\n    <li data-ng-class="{ active: $state.includes(\'main.mail\') }">\n      <a href="javascript:;">\n        <i class="icon-envelope"></i>\n        <span class="title">{{\'APPLICATION_MAIL\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.mail\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.accounts\') || $state.includes(\'main.mail.account\')}">\n          <a href="/mail/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{\'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.queues\') || $state.includes(\'main.mail.queue\')}">\n          <a href="/mail/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_QUEUES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.mail.inbox\')}">\n          <a href="/mail/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{\'APPLICATION_INBOX\' | translate}} </span>\n          </a>\n        </li>\n        <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.statistics\')}">\n          <a href="/mail/statistics/summary">\n          <i class="icon-eyeglass"></i>\n          <span class="title"> {{\'APPLICATION_STATISTICS\' | translate}} </span>\n          </a>\n        </li> -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.templates\')}">\n          <a href="/mail/templates/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{\'APPLICATION_TEMPLATES\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.timeline\')}">\n          <a href="/mail/timeline/list">\n          <i class="icon-list"></i>\n          <span class="title"> {{\'APPLICATION_TIMELINE\' | translate}} </span>\n          </a>\n        </li>\n        <!-- START REALTIME CASE -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.mail.realtime\')}">\n          <a href="/mail/realtime/view/agents">\n          <i class="icon-energy"></i>\n          <span class="title">{{\'APPLICATION_REALTIME\' | translate}}</span>\n          </a>\n        </li>\n        <!-- END REALTIME CASE -->\n      </ul>\n    </li>\n    <!-- END MAIL CASE -->\n\n    <!-- START FAX CASE -->\n    <li data-ng-class="{active: $state.includes(\'main.fax\')}">\n    <!-- <li data-ng-show="license.fax" data-ng-class="{active: $state.includes(\'main.fax\')}"> -->\n      <a href="javascript:;">\n        <i class="icon-paper-plane"></i>\n        <span class="title"> {{ \'APPLICATION_FAX\' | translate}}</span>\n        <span class="arrow" data-ng-class="{ open: $state.includes(\'main.fax\') }"></span>\n      </a>\n\n      <ul class="sub-menu">\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.accounts\')}">\n          <a href="/fax/accounts/list">\n          <i class="icon-notebook"></i>\n          <span class="title"> {{ \'APPLICATION_ACCOUNTS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.queues\')}">\n          <a href="/fax/queues/list">\n          <i class="icon-docs"></i>\n          <span class="title"> {{ \'APPLICATION_QUEUES\' | translate }} </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.fax.inbox\')}">\n          <a href="/fax/inbox/incoming">\n          <i class="icon-note"></i>\n          <span class="title"> {{ \'APPLICATION_INBOX\' | translate }} </span>\n          </a>\n        </li>\n        <!-- <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.statistics\')}">\n          <a href="/fax/statistics/summary">\n          <i class="icon-eyeglass"></i>\n          <span class="title"> {{ \'APPLICATION_STATISTICS\' | translate }} </span>\n          </a>\n        </li> -->\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.automations\')}">\n          <a href="/fax/automations/list">\n          <i class="icon-settings"></i>\n          <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n          </a>\n        </li>\n        <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.fax.timeline\')}">\n          <a href="/fax/timeline/list">\n          <i class="icon-list"></i>\n          <span class="title"> {{\'APPLICATION_TIMELINE\' | translate}} </span>\n          </a>\n        </li>\n      </ul>\n    </li>\n    <!-- END FAX CASE -->\n    <!-- END CHANNELS SEPARATOR -->\n\n    <!-- START INTEGRATIONS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span translate> APPLICATION_INTEGRATIONS </span> </h3>\n    </li>\n    <!-- START INTEGRATION CASE -->\n    <!--\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.market\')}">\n      <a href="/market">\n        <i class="icon-handbag"></i>\n        <span class="title" translate>Market Place</span>\n        <span data-ng-show="$state.includes(\'main.market\')" class="selected"></span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.is(\'main.integrations.list\')}">\n      <a href="/integrations/list">\n        <i class="icon-game-controller"></i>\n        <span class="title" translate>Test Your App</span>\n        <span data-ng-show="$state.includes(\'main.integrations.list\')" class="selected"></span>\n      </a>\n    </li>\n    -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.zendesk\')}">\n      <a href="/zendesk/list">\n        <i class="icon-handbag"></i>\n        <span class="title" >{{\'APPLICATION_ZENDESK\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.zendesk\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END INTEGRATIONS SEPARATOR -->\n\n    <!-- START TOOLS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_TOOLS\' | translate}}  </span> </h3>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.triggers\')}">\n      <a href="/triggers/list">\n      <i class="icon-bulb"></i>\n      <span class="title"> {{\'APPLICATION_TRIGGERS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.automations\')}">\n      <a href="/automations/list">\n      <i class="icon-settings"></i>\n      <span class="title"> {{\'APPLICATION_AUTOMATIONS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.trunks\')}">\n      <a href="/trunks/list">\n      <i class="icon-link"></i>\n      <span class="title"> {{\'APPLICATION_TRUNKS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.intervals\')}">\n      <a href="/intervals/list">\n      <i class="icon-clock"></i>\n      <span class="title"> {{\'APPLICATION_INTERVALS\' | translate}} </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.variables\')}">\n      <a href="/variables/list">\n      <i class="fa fa-eye"></i>\n      <span class="title" >{{\'APPLICATION_VARIABLES\' | translate}}  </span>\n      </a>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.tags\')}">\n      <a href="/tags/list">\n      <i class="icon-tag"></i>\n      <span class="title" >{{\'APPLICATION_TAGS\' | translate}}  </span>\n      </a>\n    </li>\n    <!-- START CALLYSQUARE CASE -->\n    <!-- <li data-ng-show="isAssociated(\'callysquare\')" data-ng-class="{active: $state.includes(\'main.square\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.square\')}">\n      <a href="javascript:;">\n        <i class="fa fa-superscript"></i>\n        <span class="title" >{{\'APPLICATION_CALLYSQUARE\' | translate}}</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n        <li data-ng-class="{active: $state.includes(\'main.square.projects\')}">\n          <a href="/square/projects/list">\n          <i class="fa fa-slack"></i>\n          <span class="title" >{{\'APPLICATION_PROJECTS\' | translate}}  </span>\n          </a>\n        </li>\n        <li data-ng-class="{active: $state.includes(\'main.square.odbc\')}">\n          <a href="/square/odbcs/list">\n          <i class="fa fa-database"></i>\n          <span class="title" >{{\'APPLICATION_ODBC\' | translate}}  </span>\n          </a>\n        </li>\n       </ul>\n    </li>\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.yourdashboards.list\') || $state.includes(\'main.yourdashboards.settings\')}">\n      <a href="/yourdashboards/list">\n      <i class="icon-grid"></i>\n      <span class="title"> {{\'APPLICATION_DASHBOARDS_MANAGER\' | translate}} </span>\n      </a>\n    </li>\n    <!-- END CALLYSQUARE CASE -->\n\n    <!-- START AUTODIALER CASE -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="javascript:;">\n        <i class="icon-call-out"></i>\n        <span class="title">AutoDialer</span>\n        <span class="arrow"></span>\n      </a>\n      <ul class="sub-menu">\n      </ul>\n    </li> -->\n    <!-- END AUTODIALER CASE -->\n\n    <!-- START ANALYTICS CASE -->\n    <!-- <li data-ng-show="isAssociated(\'analytics\')"> -->\n    <!-- <li data-ng-show="Auth.isAdmin()">\n      <a href="#/analytics">\n        <i class="icon-graph"></i>\n        <span class="title" >{{\'APPLICATION_ANALYTICS\' | translate}}</span>\n      </a>\n    </li> -->\n    <!-- END ANALYTICS CASE -->\n\n    <!-- END TOOLS SEPARATOR -->\n\n    <!-- START AUDIO SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_AUDIO\' | translate}}  </span> </h3>\n    </li>\n    <!-- END AUDIO SEPARATOR -->\n\n    <!-- START AUDIO CASE -->\n    <!-- <li data-ng-show="isAssociated(\'audio\')" data-ng-class="{active: $state.is(\'main.sound\')}"> -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.sounds\')}">\n      <a href="/sounds/list">\n        <i class="icon-music-tone-alt"></i>\n        <span class="title" >{{\'APPLICATION_SOUNDS\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.sounds\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END AUDIO CASE -->\n\n\n    <!-- START SETTINGS SEPARATOR -->\n    <li data-ng-show="Auth.isAdmin()" class="heading">\n      <h3 class="uppercase"> <span >{{\'APPLICATION_SETTINGS\' | translate}}  </span> </h3>\n    </li>\n    <!-- END SETTINGS SEPARATOR -->\n\n    <!-- START UPDATES CASE -->\n    <li data-ng-show="Auth.isAdmin()" data-ng-class="{active: $state.includes(\'main.updates\')}">\n      <a href="/updates/list">\n        <i class="icon-cloud-download"></i>\n        <span class="title" >{{\'APPLICATION_UPDATES\' | translate}}</span>\n        <span data-ng-show="$state.includes(\'main.updates\')" class="selected"></span>\n      </a>\n    </li>\n    <!-- END UPDATES CASE -->\n\n  </ul>\n  <!-- END SIDEBAR MENU -->\n</div>\n');
+}]);
\ No newline at end of file
diff --git a/public/assets/images/media/tag.png b/public/assets/images/media/tag.png
new file mode 100644
index 0000000000000000000000000000000000000000..9fa6d3a41db83324d289d42f714f5fe6c7108b41
GIT binary patch
literal 11836
zcmX|nc_7s5_y2p|24g8R_D}|uO5$3R$`ENGN|q4Qh7c<IHZ!eSM7OfXbgfCaSrcX|
zrB8^g6*4yw*)Ot<ncsQqet-QVZ|6DZb=K!R=Xq|}9<p2|svwFW$g2JO%#R=l3jakB
zf)M<e32k3Q5Hhmg-1KOu+gNXGncAB&p_V=Pay4yp#GFlJsGww2g2aYj5OZn_T?Kth
zLP+weq5d*zjKMpF?I!leX)Zp!S64m#nIGjn80lRW*hi2+@r2uIlV8tnwmHO))KzV5
zUO3O2>o53pz?nF|LABK;oGVMxI%G0T<9~XEFKYTH)<NCF4No9es!Sd-uU<<U&KUl2
zBJ;W>a|7cC={)c3Mj`>xJV&~yLgA!PyvK(hEI<DoA>*Ghvu*OYc~*wM&o*-;@9{(r
zp3vhx|M+8WM#I7RI>PPs@n2Q93o`<*a$2q<0h=oBk;s!Vl<=$km&2B?E37@F_u)97
zho4^B)2W3hy&7GQC+sB7N0@U*W<*W&c{BW71Y&4d5!*3WL%?Dep8i+0kUE9Kpm;AT
zXSfZ&1~BIt()iua=L1cHHE?9($2bvUW$R3H;#^H@#V$gD)I2xPg50YWKdXYA9?+A=
zq3Vp8-8{=&$EB}r6`F)mseOHaO#U<cLhx5?;FK?pteDLJ8+a}5&i6DXzSEkV3DhSy
zyhACndoL4{oXN*K`61?6tTfke8Q~gETpT)l>hkbcdau6-0TDjhu$dsfCB8OEU7r_d
zmm!Qp>qWAP6b|`|q_Lty+mZ$8*1qZHRBuLL7{8>=az5u;aVRPy*eXMxo9mGyBS#C;
z?WBgRIFWW4b92TTX~U~EiZ$>A<n_3im|DCw8SHU*eaN(@nm&=?i>B_OBk@m#gjBWD
zD2t;!IR$<|P#JRyZ*UdCQLAIA7WiMHp>eb#<`1duZse=<kggv2O^A~Fde8MO`IM?U
zep%|0vu0cvsZt|;_u6<ran~7=DUMT^D?kv}ir@VrWBjL0M*kd{!t`g%?7|JJT?$b~
z*~e9diSo|mUd~*$*5sP1x3Y#A?A%<FE<?v{NMpqx1xXaieeU1x`AtsW-Mz$MC!xd9
z^qB;9rUZ`K_{v3w;erldpe;IK#_1Q$@)xmE;e1@e;pyjZ`JchB6U}m58s2D<@uR|!
z(5Nyw>hMVp8T^EIFsh)Zat8}p9nG4Pou`ynNh5<_<sD3FDd9yXH9u|mGh_;NH{(Zc
zoKS7~1st`uiTY-mkk!|oI6esqQ2iJ)y~t)l^}j?|C+%R8L#g_n;WnFF^zSU0LT7h8
zK~Q?EDRnC&@G;-SZ$|M+p2HsUWwwta029x@MsA5=*XK6>%GE&DVHqMFI<|$5P%jhZ
z_pm*e>hm(~iJLZ0zE2boK{h;&wPsdR!pkyhKWf!1f^a%pli{z$FC-$qvgopC)*%0K
z-2AKyMOQtbn6l`=rlmD+MwALB0`WQ`Uc6-Tsy$R4hK=gC)KU)|_1SxuaUz<+C!Q%K
zp!WD$6PmdblJ{*Q3vVFi#Y-LDc^6^aV=LFVBgM*u88zm@oSla5hL&e+<vtNIQtGOD
zQEf7jKIm^qB*!1*#PvyTLcV{~Tg|wDrqGOB)TELQb1clOHIPQ9aG&x0l<A4b&VvV-
z$_zt1J^JREoM}Kb-O+PXL}>#@lzq7M!yaljeUK&D_z#{?AUWS6L$`NZy)ht$K1d^!
z+=Kk!BqQ2E%bK;OxF*)izmg;wIKf&uM5rKtLy!h@A;e{elzPiUb{t9x(bxUQR8Ws^
zD&}(xuOLH26f|$2ZQ8(GXtwu%vZ3V?Tg(x0-gMchaVvasjq*{qJxoFJVkX+#K<_qx
z9D@G|88<unFw76vL>pgp*~R#YqLf+5B=!}s*A<J3)96#6cxqo4xmT`*Ygtr0OByn#
zAVXQUIYw9LgC^!{G%vB`QIstoRC@ClK>6i!`Wik*l8EGNsd(cc*}~O$X{?Du<HQI^
zurT8pSnQa4rWCmtfP5nSIE$Ahc=5#ImCWdrwKyE}&Wn;eTFiww_fs0{TgvE2OVEN<
z?O`y($5%<RIFtrhf(01Wz{SlblSH=NM?p5>eLigl!J8ZWKH?XpiO6C>>ahxS=0b&|
zl&&g;a}8oFg7^uzP8jN;I8+#r2wyht4FClLHk6Ukiv$94vHkOw20(JgHTD3VjRSpf
z?+*Qu1qz-%ruoy1Qy()wFf*;H8g0B>G0l2W7Y<v2O?Z}x;zSycwiq&T_?#UD@haKo
z(NRtx><f-+^s8Y{kfylb)b+V(angizS1woc2j}gVjbz04;&ee601opp`SRYbjlWH`
z_I6CqDt@}XsDQF%oiIs7yr*r;OrId#toYj6Ba~_7X9aDVKbP$K`8jtVWL##m6q1|u
z+Q7n_%dU<~w{Szy@bDmpzuLFywur?J^^0eqS}^ojan5NyF&8C~y#@LD1F|jLi?<Xe
z_AxpY`Fq4nIm})aL<v8p*DLD9>rL=mypj82KEolDW+E3^bzZwSgJXw(ZmxV=4UxX2
zKl(d&()>ungSGARE@5#re_ZP>bTgsySU^!05`U~EAQSjxIs}gfWh-)zyxvLkpxy7t
zF^SvUQh8YWl*Mt}yO^_iC-8dw69<es%y#dpIkGP7<M8{pa%x(W@5)3FOK)RG3Gk|f
zy-xi>hPzEhuE}Bvw=6$?eAT`__sM2wDfxkFl)dRe=^Z5?TWxVlY4c=XTg6Ch@c;Pf
zCl*UmYM)PzMF=lW{1<46XbS6LODd(R!6fS5SKlVSYwnDv!Euqv&5T%M$Cc3A18KSE
z!Nr?zvY;lVF7I^vsx;Ja*<cipqY9+tibEDj*nik8o4LSp^H8C_?vz6em|^d=A#Aj>
z(>zp$pV1aAcC0HB%Zfm&*A}1jBp@2aN;~dD%p5h!b!sdy<Z5abDhebXcz8z&akyj@
zNq`)S(K%EWGjo_VGgWcSf8ND;bjH&-N~zTnFBc<%KpyD)xBgh;i?y^|{zr=gro*|J
zHedP|@bq<0JU+NU;5@yM?r2B7=0D#sHlipX7bCi|@OL)mx|lEe@n??F;%3odW0X5i
zSM)>Ki`D~cmO<U+j>g++t^TtSZA-k=3bVzF{9Aph^OYG$ahQMDNp-NS`c<8#F8uB_
zLyn7`Tl^QFWfl26te%|~MV>mo<NksSiI~}0kwb4@`q4JGjKn#KA`1q|cfUZMcjsUK
zTp$(D#otlnV!3n_c2$4FHIKs}cNZj+IjeB)v#GR*`FxH>P9gHW&uec1l(MebkYCHF
z|3g2wZj(PrAJAcs_ZjD_w~&!fBsGAmW`FTRS?H{L;dmjsvseasf6hQn8I~!JjQO6y
zS1)Syr|b=qff7*h;<l?bWx8nZMBN&}$YGnkjh5H`9iYf*7b5rj0zTL}P^Ps;d}jLb
zk>jlDvI#*V@_s_cbGtcZ+T_aT{i})l`W6#^l~{%`W)x-k4m`cFjF&QWtdeyJ>d}l(
zt;ZSi*E(7o3ZxeZ()$e_>JCV?aHo$cJO-_}7hTt;o7YLyKP>Fk6+y;2-!@kNTOmA1
z3|QdL?}$(&tK#YXhUvO~a+B|AFCKc9YjDQ-{XYF|2+E#%@nMbO?;Ysx^9&ocZw+sM
zZ2vNozPC;;Q`37a+!g1fF*vUPZdn!dW9I?(65nz^KWH6`{7#16AM#MQ5VG3wUYMCD
z>K4<n`4hjx=$x@<+0>WESCgx^F&DaJGR3&^q~XHAxPHNO%esjAjPi%NqR3eLD=Rmd
z7VcQg8hj*=<@O+#MY2WmDi+cf&f}W;#*-{K$IK&lH=I;-@w~t<_}gghj<q<Bt)IFJ
znYo}vx$sUKRo-hJzTxNjYPK+GDx=?~`@<SRda(D2jan?RT~T`+tM+tVW{aZ}mgeDF
zU;0BC!<c~W(QQWkK_K8m61EFD2H}|LHM&ysc9iLgH6Ajd8miIBK~oR9mOae5u3@X~
zZ6-u1_R;Dl%c4gUm(N{2CdgguTJf(PO^)8=7&6@y9bClq?89|VOmM0qfZxc(=shSx
z_hi35b0-mzpMC@!vyfF{vx&K2;}m$X7NV-XS01Gtr+H>rQKmBrI0+GUY-{?gK};$#
z^4WO$za8&;D!N<9$^Y`aJat!uXZnAnFJPx}syq6fjAIg>n2J<y0rQgZg<|ttIN`>x
z9dTVHA%pv&zU>!1mz;{{>M*T+kEMT4#GN^zM_`O##mJOXPInh}^}jwJ#Kv~q0H_9&
zsEeB{Ls?C=MsDnUHDz&w)x=ubm*5XWx_M*mC$o~V6lilkAT}RSSvom8mCIXAH$U0m
z@i|m2!+u)%c~z%_8K*ZU^zcdQsoh)RqX*_~N|p#n$ppQ6q>DQpu5fPkN>mvod}-X0
z0a4Y|nA2*GryrOUNOzc4F3w8`jA74_?(Y6`@O&D3#t;b?<5V^oEGFymKWg|!Z4ivU
z6+^qflkvB^)O_Et<6Rr;eo=P&K=ZTECKItt(~WWg%Ix!s)I}|1hn*Nwf3AwuoV5_=
zWbc!&!dXJ@*zq^2?%pvTIF`O2@v1O*+H5uLUt>1db&p<wyYnQWfv@g^<5XH3wt~F7
z`DZns5+Wr@!yS(;jTmui-$pLHp3{GZv^dr{Cp{hPGm~jNVUEiX+T?B@!grS!Lk0|c
z_IW}}lAlvnx@pqEoZI@XPAI7@l{7VtjJzwy!y#l~Qs6A_b>b&fkr<#$eXd%$Fu{0=
z*!q>k>OC7YIimkGI|%29``7W^6TU_cO5w#Ce2Gcnd&!igcM7@+zH?V8;tA5ZFT5v7
z`uvw-zF|$G^Cy{+*;BV@>;4WDB=>DpJh#4yR(jLf#s(b@>0tG>T~SOQkswWF{j*@7
znu6HI)(%Vg@T?Q-zi%W>)*wq_V;A{`;)3*LMc+~q7<r5Lt{Q0Hg{=(nIkfNsxqY<6
z?6~D@TDU7ju<xydkSx*UmITV;w-kx)lp}^E&>59PzHmS(h7r%_&Gq@;>JCw;_t?3l
zsev5N4@+6_pEuPF?pXJp+%{x+mY3=HX)#=G@-cltCa{Zdrh%iXw6m|D<q61jwO%9b
zbC*anqc7q767`m&e%YC4Y4N5i)yPO=jfEcn`H25)lt}gVC_P(3rJErw<7rPb%05uc
zSUq?B4D+P(dp)#PnKN}{sha=ZL<swf>FO@7@aC*DR-5B%I}M^N>GkfYyQTSJBdcB%
zhocI1lCOL7E=#xS<j4|HJ$^3@!P9%M9A5=Jt^Kxp8v^XeHEZK*)u^2jXltM6a0#z=
zFr;5u8b?)gy>8RSHQt)CS*lV^dnA^@+ubl}xd(Yi|MZf`D-N_>Z@0eqFgeOx`?$!y
z6Vz*#i)pm*fr-p$<0qQPD1MYPoI(?}(6K<*;9D#Dq8^+`OSnE?;cwCCxDH3oICD$w
zEKk$nO&a08)IOFmIm(P$x&#Q$3?Jf4y#Lr__zcnZYtrYR_whM{_Y=t)%qSF!G$ypc
z@pn1;iTmIsQ6$+^am}G=|14sTDf2JN;(f}Zg;~v4#rUryHmsKV<GiZ|cM)4c`M2T}
znnh&p#ug@J@dMqHbk|RI^q;$a<4cWlOZT-NAhuuU-|2espc|57)Z(2bPzC<WrTxfu
z`D)Iv9{*D1wT;^Gl&Ztp%cU3MDB*D?y*)pKSeFfxkpS(`M{Q?$SE;KGQmKr<5{?le
zYf11<WY*klb8KHzl;wN(w1Y?<K4Yphg|^pf4=L#=`6@#iZEcPd^i#4joT&+^dZeXK
zvt}`3HzInrSJv7=U&#sEf<p}jkI3(PNshWnUQT1VaJn=MrE}&c_+bi~%Qg2Eq8In`
zyN`2Y{q%6mkFT~SB@D8V|Ea+7jvR0tjtLh%y?9ZbO$8!Ea?5RK=dCu&+L%wfTMbZP
zutE&A0ump8An9oE#YhT(#P_UQYSLhz&C|yF2o7z6ZoMgSC{Dzi7uEj1tr$@(5Jf-!
z@1#K>4jqEd`^D)LTKDW9#=tdD1CDGiJDOO%Uy|0~P<)jf5&5$9(O{p)@y46L@inyj
zV-Jo@`xkBWFsCDofADyE`GNd}3VVqX6*y-W!vV-RyMx;eyC@M(y`gX{iIw!>ooj!&
z71YuO@wTk?6xy;v5)RnsNWor{;5uCd`wys;<bZ8$;Y}=TYlGF{u=)dR(<7C}8bD1*
z18Mygmj-Fo&vhlSW32!V$N8lBXr-sY%r+TAM*?~}Texv0!5c9nVfm<30{M6<?IFx0
zP`s=t0TFu?tdz4b!Ja;fk!%8z`{#GX<u4@8>hHkB_`*5J;FV@*%KvwVttIqH{e=sO
z=k>v<c*1EoqUo5riDxeSFw|FF`65e1{=MYQ3)>aDmkxri0@O$d*xd)!NPv`b0*50@
z6c1+9f82xt4Tz`1aoKsg&)*A=f!OW@CpzK6g^B5DU+nk1^>Ea=-o>rx4%>*aKML&2
zWhm2qgM-Jg^(~-iaV;^0AFkUB>=DLWkQXHQk=qq!l!EE`MSA`?;^ZdZM0@@~4IEEl
zo?|Er($5ICaubb=FjwLii9|%UegCvO{W}qpIdp)6RN8H8Vm(>*eTE4sw&l3^<92S#
zUeM~XSgnSM8ONuKAYDE=3n3MW)=3x_2Z#vAVm-c$@w-PW$g<f>g-ErtVH2w%%C~ie
z&k<mZv~eBB*Ifs<(kT_Fe<eEkEI5T$5%H-GLr2YK7m=oN5avQrkKt-{Ow<R#=-V;s
zCBjG%*SPOZjtyqjCxYn~bw6~4ktW(~`qYZ$<SCrCnE4BxuvDV>vL*w=WFS(lNYe5U
zM^gAX%is267_?(xL_sUZsGdb=Uj9wRJukrV#er2z9e3WqJ_$+AZ&6MEAdTqp8No%_
z0F2J|Seb+zLt*F;mJzz*Z1IiQmZ`G`Y2gZYKTm)m7!FMp<jo7Qr%NnrMQo@0sx4tG
zf-#hyH&ETZZWrRk6Bu_rsER3e9HrIrO@6uny29mu{<nfIk8Ps*t>SPI&|MyPZupOm
z9~%?0%~F1N9q8Njb@DXkC3z=Kb2C3KSP+i3p<T`jAcQa~JKqoO?F$r+>0jl9Rsw<{
z7#$bWuHhaw!;^(m)#RNrJ#6_q)yenu{Jo)Kl<DSYTH<CH^vhzA@}$1l3mD7D3g>kg
z%hOV!1O2pJ?zk3i$(V=$7Q<`~>Zrxf)t?KN0EY92%66_W+!8SRFC1xsUzNJ}O6*@2
zbFEooRaAf#Uxqv$Sc(5&hNTvN4inK_t1i9|6Dvj78NR@}4lc1N-lMr<u4iIg1(N?)
zg|dNEM4vyp^pd_}og3_unEC2@jPltY&3l+(ZxX6yNURxIkf9p!lKCIm9BJxhO<DOb
z(3n<ql4p!*LafxB+;1LvQQ~nnFz9=dz(0gZ$NP!(a7XzAb}k}F3QN;^<=Zc@o|=V;
z$eXg5w^^LMm?d%Oe$G!V-t)b7#^4=;tt&j=sRc}@^4F#R<pD7;E#0${)D-ec+$9`o
z7X{z8iW=R)<Pdt~=KoMl?=cxIQuD@xC#|n49bAz%E>^8fYMxMb&;rIj`Tb59T5^Cp
zb@mBg@B3Xx&~3>g5WgbONuzkNgMSyy?Cx@?9?K$xv4n=uM*2?eQ92K1Ww}!<v3Nxo
zn&_?CUvppB*#e+Mc3S#Mc;d&!e4}UG7d4S4e)N=*=?Z{yQQz<he&n+wn5d@%Gb;|o
z0JJ^iC%#S~fELTIj4rKcF-rP0`;%3NMQ!?p@NFxgDzzq~%p(K%#od<QtFhpFdhN&m
zLG!n$)0&eo-UzBiX#BH)X-47HvK>iNGrSXXaqm_zPmB^)bS`$}%*BN2sz!Gk+lKSL
zf}eimUHSuCLT5)Yn%oyJo*UW)y0hH3{->l8`oiSbT!5qtD4CI&_V%}@8t`9ZW8@lE
z9}jL%047=`LDIk7r82oyb$9b0Ed%l{DBFfKb!hyCeB6p&#87JvD?5Dr3o;pG9$7$H
z0ZM19pr5stGdycHB3TU*8Ec=ps>Ak%EqE3+$X6I>MJCs)M%#+5pr>$%jKE=&*{@qO
z7Wx#BR%@CG^liB?UdEW&I*_COvGL{|n^>f6AK2iCv}*A6NZ8#7sK>0v+Rrn?Z9QVh
z@HJLoKQ@$JS>;A<@LzP%X>!4_v-uk?-T5s(3?IEK>U+_rC0=4%wG7faaGmz!*uBFm
zmO>bc==JIe)_NpMYjMB(eE)AJ6Yk5+Ypd33&{9|*CO^s0^={DC8j*frB?gDy6O~@b
z?~6$2LMe;KUk{(6VZ&vxCFK~y-zVzzco{NjZ60|vxMnX_lW}O9nDkOQf5S5g0lFjq
zV7t=q*!m?R&Cg*)v_;4xJqt9OM%r)UC49aiUvK$3j$AXBQHX|OjDg33V2T$H7{u`g
zv`R@>^{2CsF_Q=R+DPR>^TrJ;L}&0R-ay3WbKkOb><w3TT`SEN*J+kGvW;(3W2l*q
zc|%l0?=x3RfDK!~UoGEO{mv^7X|M7HcOk@m*|@*6)C05UrVTBD*wU|jtun#eD`X`i
zdVSnx9Lxnu&RLIOQW;0k<9hsyNT?*q<o=)9zhgYfoS8aETa9E`)_LBOuGd+?OA%od
zrtpoBc^+TV<z*6PGwoZHkS4wof{hAFj{a}QZ@RsVZK*6I{=BgK%9fiWHB`QkApjA0
zcee=VKmTl%8mhuR@-<zaWd7&Ln4#JQG33`DE5YETu5CUohjhyHeq51M!PahaN0K7c
zTy|l9-zq1c55x^(6Z<e#lN_m)7+@{cZ)0I2-UHYY3g<9GB^3j#N;b~G3`eNmrtJ$%
zeM7J{&~H+Qutm{w^s$wl7SEHEuLV@}J|VB}-#ML#+Wnt(@^-EOOLC>AV5^4bkgPu8
z|Mc;YNy>+Xl*J$ZB$(4Z@#|dyUB(V<;_D!hawL9A6<2meh_0yB|9S7^+xITI7*i_^
z?Q@u?#s!js`7YbxQ;u{}73R)4oYix_Cf429iCXn>m4)d3s^2m<S6s5d@UgeTZ1Hic
zzw6PSZluJQHnJYRrNK9gUM&FA#WJrm`Ozciuu|v+U~VLFb4eSSuR#PRq7OoE!_ETQ
z2d_-T5&yk)&G-C>4I8nLn1Zo{rT3yXlJ&YreEU~rL<16seH&<F^WDXeLbP$dzAgov
zt(^dSPHs9RQuzDnm{9+M8mj(^;y0iQGh5;W5oHlq`j3@P%j*!7ai>4)fwsy9ztubt
z?ga4!Jr(GFHobm|OwP5<q4WALH7IKjU<qRn7#@sPpcI9l{W0_514%0l5)QS5iH&0E
zgdklnOA$3>hl^rdlvJ4u{-@m}k!qP@Qdb-1d}ba%xE!({+4tJyMvQWBTD{%x=sW~d
zl-$8qB>qsp9nSdgT@SIycm{LIHS%3}df*OssWe<K5!0gh7<5Tib3diJgy?}Ll&Z~>
zV^%*5#W8_ICm82wJ#Y@_`GUk>lSXCPJFcwo0d&WV)XMRQ3i%>Q+!E8o5C*WQ;%Og*
zh>A+Tj>kAprqBo7z3fIs5Hrf7zvL6Jr95H_SIqB94UR(C<fOC*+)F(PqtJk<i@=N-
za913nhw(qKihyXk2139IOT(=vxPSpJu)TXx2vOlM|1w$yoP=OfC$ZIc93kVCoOb47
zzN3KeUcT8%Laxv+-x>-83`4Fk{j_Bt0daY@R=E&3l<P1y%>L_vIDpFjYX@Ax;CGPV
zHbyo-5TI|7?RpFbY$*oh&$nA*m@eFXh}EN5n7gi${+<Wo^lW|YutF*ToCGZP*=^SW
zps~`udH~cGuDOcvw6Ri4VOaa<TPo(c)o>XhQRj9cUjcA99a&Qko}(&Zmsrl7qJZOa
z>dX7sS_+I~=_#k)r2yHx!=|S&2OkHr-Y-hgQXKu8EXz8GzZWOe?I5ZVMi8jGqv&;9
zVU!@JnySK?Y&BK^X*U7s8?WhAJqM7<U`lO@0@nZPgL{0-FPwol0(00~fRsgz54}e~
zV+ZLESaa`XOPTgB-V|s3xC}H5EDf`I0ITFcL(lF<Z?I40H>?s7#xU?%T|s#Q2!{f6
zlXb9+_2NBDs2RX$svcXVB8;=(zB>nd!-4ybudX?V=<F8Y^J8F41?=?DU#Cr-LfsDW
zN&oYgB)AG^kh%dp{CiHHd7}t*+cT^v(B)->1q^l}RGn^bIWjEDUUPtuS9K;W4Poqu
zuP;UWPJx1KYHG^`!0!h5Yt2X0KVcEr+4V&i3|edfq5W6q%ZuTw!OFsljnX2-A!oRU
ztct8q?~4FJp|5EPd+8K=F!C1K!o4^m;Q4o{ZVlAhgD?wae$9jspk8Y7zVSQ#lwY~>
z*Q*JFYkAQ+0&viRBkWRPU;gJfSy*X55TXqZ;DNi<yT#QYSgFsfeV=1pJWLIwei^d!
zFuVC{r9kx$0xRtp?`Ym}0dVB|Ye6b7Va&{$LLa1k9Rj*d&m(SI(<#khyXKAt?YT85
zofv;2Q~nadcm!)7y?=i0j}i=CH*az)ihm2U_xdNpIWkSs0L9v+?jD>d_CepDmlTnx
z;{rl{jmtNyQ<#n*r0cy*%G_;CNNKY8K{}-bgp_1IHvIdT0G(*--)sa0yB-`{A0BeC
zJQ=>VG#Th0hT|7jm;Uhx{W1z`lTIYMs4<Md7e*tsp&cmuVE*q2jrcoF0L!96xbyQn
zmy(=}Oge79LiZ@oz5!0z15RNWw%G~N9iM388%vj-K46DJD2M86maF18LCz}7Pr<ri
zNI~FysZwpVCgNI@Pt^YASFsUp^}Trgo#mh2<LUKhuhLI;e_+Fj1`Muy@`K)eB;dst
zGqx2?q2K|91}f3?eLUWx?Byc_+*~Yl#_TDOGc~y9;bFwd;gAY7`5x@b+xNnC$J?->
z5(3iDpn>07abZ0U9RLeoD7TB<iWF#65Q{%F!2bLlD$aEHp<O9(KIfXTSI*~D78KyV
z7J?j#vdhQFc(}v_Uz9@%cK7TYxduo1s0aeCdu-=DgfRfZFKAd6!r|P3dfezJ;nR;F
zpWzSz!7&zp5*S1~t58{wNH7384zquan=sG_3%yF;d1o)YM1iYue|2dX+Wbor!!2x$
zHK%$&4h{ZPt_;SJwaSU{U2R@?4+sL!C!ud<;r?mrDxI6NcfIyyIMVHTpy-^5*yhNa
zQPwzSO3K?qT$DXqRdf*9<fx>=OnZ7)<o0^FUq0G&r&ATVubDu!?d%%Dhr``=L=m+f
zx{3F4HiS+7qvH5*Fm^=27s^Fh<j&?CV!-W^65<df+C=sdfo3~odts#+`+VmIbLJU{
zvw@#hdWJB_IVpy#4>wk1bb?tsx9Cho!nEg>7GBAJ{5IYhwgi{FOGezya1-%a+>Ej|
z#B+l!q+ij7iRw78!K}e`qHXinWD%v!aL4s{%=MNap8n>j#cFBvX0gJ3iY|CsH(UGe
zbrhv6?^40H7ctflH^G*hXshpG0Mi-8fkMU=`titgE2a^Edj4lpyaqBhj#FV`voMA}
z_(egp-a#rrkg2fTAti=8*YVnyPyp`kx@lCK0)wqs-beU6)=_txuoZTT#7#yyYj8Mb
z@{wvCk_xk_DoKV>kJqC`WE#WQ-akcf*nJnl6@vBGo<xAveMSoXQW*Cc){Zg!0RFFo
z>iAN3HQhA0<;f@+e_h~=3}xOoqbLXIG=zbX!n}8l9uTBQAJD+hz@v+`F5s{iwQU85
zkfA5-W)$~Xoo=juneyH-b`wwM9niwhIO^)IgWOWiyyI{lhFFU|qGptgAl;E@NTX;U
z&%rnt=PdiJQepOeNe*)dn_*0@LfDz*?Uj&1u_qF%;Ejib-2t(%O=M(-rGACZ^YIcq
z2U?u#d{dwUj|`H@8WL*wquc0h67Z5h!tsdM1wm@hE;9bMi;IRaTql}zc7NU?Qi<A%
z)V4r=!cF}{NUw~XcG)e+?F!*5^eJy|i+boo>bDyoR0GSXU46H6l?qum@1JWBY}d8^
z7OWDcrUS=DJ0Fc+5CU_v(L;i+xS`Sjv0P33)+-l2m4d@cvnv8{R4yhO9!2zQgw_b&
z518WdbW_nV&oyRjrJ(Zn|7G0jEo4O8`IAP2Bs%!G?7>$o;fN?n1!*i>b%p-?=ee>X
z=o*6s8TaUjcAo<g9ena!h6QmxhKDT>Wv6wU5|T>Bb&H&*GoCMYM%z=6q>xht+;nGj
z`2!zbiG5GF92n<T(zRXt2=e8nvcYigdrlC=EM9(%NR_w^eN>$Dv61(xWaRXT(P*Ly
zb4k(}W}HoZ3FH7v3Q}zG0X3u7Xy1ffJ+R?vW*)@c{fZYauhPd4c)W63=oWyQLO{BE
z_C_ZVwJ!wKyQMnvPIYzt)PXs0vZ?TzLj?J(cqz?2(;0c65>kNUyZ-IpHkq+w?AKnj
zPT?m7mF2$zYoFkJxGsn8(Bk0Ry143_o^42g3zhekcl4mX9?`FNzBOp#u<Pj{6^5_W
z$wM~k_(11MM()!E30K#H#(OEq_P1eIN(eZ$qvvnyd+|=Sf84SK06Y+D`8<4;{z24$
z6R6L}-SXZa1b)~tzAM9?F!Ve;s`>cz#EWQ;z9g7XJDKiCzC&!;|41k$XVAp<56$dV
zkTS75X10r|FzfSYjXaxJ%~i=k{eZS#&^t2R41Oq3!&CT(Md=j-NF9Tb*0zEx^z{6W
zE?0ei?awpi55Y7KWePqHi{fHsbNbJo<*k)#ZeM~ryO?JuQ6i0o=N(bL*v?(byLT*j
z8yN|7W53PO!s|K2ug=X}2yxQ08;55qLnVHi&CUd`=R3|dTTlDH*zI8mfVG`W6^{Yn
zeJVRrt_}7b{@W@@9PVsx?<lVnRbjr#FEvtcVnG4u;6R{o1PiNoLd%HTvAt%n&-AX<
zc`Kl8tST?vqQcDfF4dQ7Vm%E{YB~+Hrv-~jT~(Npk*{+*xQg5EJZ@5f3#P+AWF0o+
zOKq<j48lvD!@?y=t`KaI0!r19D&P_!o7@FMCuzGBzzY$n@2H7yZ!e1QYhuBbu2iT6
zM3Ra(fq>I*A4#|SJ$rY9LA>uxXVi?MxzOMIWI-9Lx#Lh)LvAS9+Cm2q)BUa`g{F2@
zdlf1nh({v+Du))}1v>DdXd$sgUx(2PVExPlP7{f!4%xuq%3z<9snvD52J(yY1h_tV
zaLh!jiB^;BN!;$rmZ87?-^0mk&@k|SL2Fd>NX80c-s;HEorKN!z@r7ib{*WMrw@~D
zpu$)=&8$w?iicaOCKgLI`47fH9F86BWlte^mFW~UH)!yqz0c%8I|T|{OAx$5Pk1tY
z!7qijq_49Fbp)u2nL$_$7d^{cDYrfF&}&@Mh>3%b4Aq@Umj?UXtQ%w4Tfhf0iI+7*
z2{@T4eSYv{(-q1#*cKAA&ffv0?%38wtuEq@bg{(=ry(7lX)AoE;8ZviU-)>!SeMZX
zp?LO0e<IKx$O|8!Rp;wU<^lerbs;~Gqh{=Fwe~i_pJ^aMWCnaVb6CBkdK(#kzi&+n
zE$oyh*%sWA_i8+A4XAKCN#a^7x8buwG9?J&K3v3#d>Pt0+~MiwI4^Tl6S7IuvA(Ah
zeCSi^r#$jt<(k0@Zcn_*^){B9QV5^ugAe%8dTPWWcr7sWH@wI_2p?-rs{ift`;m;V
z0(VzwB#USPT3K?~0Bha<bm5&W8M%Gb+UL165lxs7F5)J-82!oC2FGe=m&R*=4$J2r
zE%X^)z%x`J!&Dl)56i*F{%+IhIm@f;Iv}ijli@XN#vXao$yHwzpgzVILel+uvlYnP
zA9Qj(KhJjV=Ul_ylr^p=<ITNzx?`a}8{ox?061`;3a24v-plMBJjUu5={g6KaaU4+
zAiF%t9-fZUY)a=nNmC2vBV}-HGmaI_ca11KQhX6J-_0gKPbo~Aisa~H6LCc-EUUcI
zb?#Hb55m&9Yt9`FZz5?`-}&8ipOW<`J{Tg~7`H1*o-y+^G~9)H<q2-so)1GLkEEYY
z1RVMq^c&3*8g(KcU$t-I-dv<Vy#Cb>?dY4@s~3b?f^f@C#+Lr*L|UQH%uG3@st2BO
z@>><l7bMBpT~S{DctI4QIxJkj_g_n)Hp`_}d$Cwn+^#bT_!J19l+9Of=xvR^L<tXi
zIG)4z6qx4D&hVnc<J|lGndBS_(-OR1pPziunlbZ>QguRmSt;x_)q8QcP4w|FD^G+2
zFPv{f5Zyj(`6N#*{uO0$8)Mq$10{a^yG=%~3Eyim$a}N^e+@$Yn&#81_QZV*a@3z>
z!AmpEGyLW_A46$g=v1HGWt))k+-n)U$NxBPV%kY2?dR}uu3w#nP}bNO0{`|~95OF7
Hqh9)d0;oyE

literal 0
HcmV?d00001

diff --git a/public/assets/languages/locale-en_EN.json b/public/assets/languages/locale-en_EN.json
index 2a8ee1c..1dbd1ba 100644
--- a/public/assets/languages/locale-en_EN.json
+++ b/public/assets/languages/locale-en_EN.json
@@ -3,8 +3,14 @@
   "APPLICATION_AGENTS": "Agents",
   "APPLICATION_USERS": "Users",
   "APPLICATION_DEFAULT": "Default",
+  "APPLICATION_CONTACT_MANAGER": "Contacts Manager",
+  "APPLICATION_CHECKOUT": "Checkout",
+  "APPLICATION_CONTACTS": "Contacts",
+  "APPLICATION_NEW_CONTACT": "New Contact",
+  "MESSAGE_NO_CONTACTS_AVAILABLE": "No contacts available",
   "APPLICATION_USER": "User",
   "APPLICATION_ALWAYS": "Always",
+  "APPLICATION_SURNAME": "Surname",
   "APPLICATION_AGENT": "Agent",
   "APPLICATION_CONFIRM_CLOSE": "Confirm Close",
   "APPLICATION_VIEW_MORE": "VIEW MORE",
@@ -16,6 +22,10 @@
   "APPLICATION_DASHBOARD_ACTIVE": "Active",
   "APPLICATION_METRICS": "Metrics",
   "APPLICATION_CHANNEL": "Channel",
+  "APPLICATION_TAGS": "Tags",
+  "APPLICATION_TAG": "Tag",
+  "APPLICATION_NEW_TAG": "New Tag",
+  "MESSAGE_NO_TAGS_AVAILABLE": "No Tags available",
   "APPLICATION_GTE_TO": "Greater than or equal to",
   "APPLICATION_LTE_TO": "Less than or equal to",
   "APPLICATION_GREATER_THAN": "Greater than",
diff --git a/public/assets/languages/locale-it.json b/public/assets/languages/locale-it.json
index dec1242..9e57279 100644
--- a/public/assets/languages/locale-it.json
+++ b/public/assets/languages/locale-it.json
@@ -4,8 +4,18 @@
   "APPLICATION_USERS": "Utenti",
   "APPLICATION_DEFAULT": "Default",
   "APPLICATION_USER": "Utente",
+  "APPLICATION_CONTACT_MANAGER": "Manager contatti",
+  "APPLICATION_CHECKOUT": "Checkout",
+  "APPLICATION_CONTACTS": "Contatti",
+  "APPLICATION_NEW_CONTACT": "Nuovo Contatto",
+  "MESSAGE_NO_CONTACTS_AVAILABLE": "Nessun contatto disponibile",
   "APPLICATION_ADD_FIELD": "Aggiungi campo",
+  "APPLICATION_TAGS": "Tags",
+  "APPLICATION_TAG": "Tag",
+  "APPLICATION_NEW_TAG": "Nuovo Tag",
+  "MESSAGE_NO_TAGS_AVAILABLE": "Nessun Tag disponibile",
   "APPLICATION_AGENT": "Agente",
+  "APPLICATION_SURNAME": "Cognome",
   "APPLICATION_VIEW_MORE": "Dettagli",
   "APPLICATION_CONFIRM_CLOSE": "Conferm Chiusura",
   "APPLICATION_DASHBOARD_ABANDONED": "Abbandonate",
@@ -104,7 +114,7 @@
   "APPLICATION_ADD_RULE": "Nuova Regola",
   "APPLICATION_ADD_GROUP": "Nuovo Gruppo",
   "APPLICATION_INSECURE": "Impostazioni non sicure",
-  "MESSAGE_NO_PROJECTS_AVAILABLE": "Non ci sono progetti disponibili",
+  "MESSAGE_NO_PROJECTS_AVAILABLE": "Nessun progetto disponibile",
   "APPLICATION_OTHER_FIELDS": "Altri campi",
   "DESCRIPTION_TRUNK_OTHER_FIELDS": "Altri campi da aggiungere nel file di configurazione dei trunk. Da scrivere nel formato asterisk (chiave=valore), ogni campo su una singola riga.",
   "APPLICATION_CALLLIMIT": "Limite chiamate",
@@ -127,9 +137,9 @@
   "MESSAGE_CODITIONS_MET_ALL": "le seguenti condizioni sono verificate",
   "MESSAGE_CODITIONS_MET_ANY": "delle sequenti condizioni Ã¨ verificata",
   "APPLICATION_ADD_GROUP": "Aggiungi Gruppo",
-  "MESSAGE_NO_SOUNDS_AVAILABLE": "Non ci sono suoni disponibili",
+  "MESSAGE_NO_SOUNDS_AVAILABLE": "Nessun suono disponibile",
   "MESSAGE_EXIST_VARIABLE": "Il nome per la variabile Ã¨ giÃ  esistente.",
-  "MESSAGE_NO_ODBCS_AVAILABLE": "Non ci sono connessioni ODBC disponibili",
+  "MESSAGE_NO_ODBCS_AVAILABLE": "Nessuna connessione ODBC disponibile",
   "APPLICATION_LIMITONPEERS": "Limite sui Peers",
   "APPLICATION_DIRECTMEDIA": "Direct Media",
   "APPLICATION_ANNOUNCE_POSITION_LIMIT": "Announce Position Limit",
@@ -217,8 +227,8 @@
   "APPLICATION_AUTOMATIONS": "Automazioni",
   "APPLICATION_NEW_AUTOMATION": "Nuova Automazione",
   "APPLICATION_NEW_TRIGGER": "Nuovo Trigger",
-  "MESSAGE_NO_AVAILABLE_MAILS": "Non ci sono mail disponibili",
-  "MESSAGE_NO_AVAILABLE_ACCOUNTS": "Non ci sono account dispon",
+  "MESSAGE_NO_AVAILABLE_MAILS": "Nessuna mail disponibile",
+  "MESSAGE_NO_AVAILABLE_ACCOUNTS": "Nessun account disponibile",
   "APPLICATION_OR_CONDITIONS": "Condizioni in OR",
   "APPLICATION_AND_CONDITIONS": "Condizioni in AND",
   "APPLICATION_HANGUP": "Hangup",
@@ -276,8 +286,8 @@
   "MESSAGE_OR_UPLOAD_SOUND_FILE": "o carica un file audio.",
   "APPLICATION_SELECT_FILES": "Seleziona Files",
   "APPLICATION_UPLOAD_TYPE": "Tipo Upload",
-  "MESSAGE_NO_SOUNDS": "Non ci sono suoni",
-  "MESSAGE_NO_AVAILABLE_CONVERSATIONS": "Non ci sono conversazioni disponibili",
+  "MESSAGE_NO_SOUNDS": "Nessun suono disponibile",
+  "MESSAGE_NO_AVAILABLE_CONVERSATIONS": "Nessuna conversazione disponibile",
   "MESSAGE_INSERT_AT_LEAST_ONE_CONDITION": "Inserisci almeno una condizione",
   "MESSAGE_INSERT_AT_LEAST_ONE_ACTION": "Inserisci almeno un'azione",
   "MESSAGE_AUDIO_NOT_SUPPORTED": "Il tuo browser non supporta il tag audio.",
diff --git a/public/index.html b/public/index.html
index 35c4c7f..507facd 100644
--- a/public/index.html
+++ b/public/index.html
@@ -8,12 +8,12 @@
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <base href="/">
-    <title></title>
+    <title>xCALLY Motion</title>
     <meta name="description" content="">
     <meta name="viewport" content="width=device-width">
     <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
     <link rel="stylesheet" href="app/16e12937.vendor.css">
-    <link rel="stylesheet" href="app/808268be.app.css">
+    <link rel="stylesheet" href="app/d242789b.app.css">
 
     <!-- BEGIN DYMANICLY LOADED CSS FILES (all plugin and page related styles must be loaded between GLOBAL and THEME css files ) -->
     <link id="ng_load_plugins_before"/>
@@ -61,7 +61,7 @@
     <![endif]-->
     <script src="app/0e6d6720.vendor.js"></script>
 
-    <script src="app/84bcebb1.app.js"></script>
+    <script src="app/f18fc4d6.app.js"></script>
 
     <!-- BEGIN JAVASCRIPTS(Load javascripts at bottom, this will reduce page load time) -->
     <!-- BEGIN CORE PLUGINS -->
diff --git a/release-notes/changelog_0.0.2.txt b/release-notes/changelog_0.0.2.txt
deleted file mode 100644
index ffcf49d..0000000
--- a/release-notes/changelog_0.0.2.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-# xCALLY MOTION Changelog
-
-- * bc0f91f - 2015-12-04: Configuration Database 
-- * 3c1b3ca - 2015-12-04: test commit 4 
-- * 8f3a0c2 - 2015-12-04: test commit 2 
-- * 0da8462 - 2015-12-04: test commit 
-- * 45682db - 2015-12-04: test commit - 4 
-- * ae7dcac - 2015-12-04: test commit - 3 
-- * 1c33ab8 - 2015-12-04: new version 
-- * 6a8c8f6 - 2015-12-04: Change remote git 
-- * 300f7f0 - 2015-12-04: test commit with tag - 2 
-- * 430fe66 - 2015-12-04: test commit with tag 
-- * ff9311f - 2015-12-04: server sie routres.js 
-- * 80061e5 - 2015-12-04: package.son 
-- * 05951bf - 2015-12-04: server side models update 
-- * d38ad70 - 2015-12-04: server config socket.io 
-- * aaa0955 - 2015-12-04: server side API update 
-- * 367be9b - 2015-12-04: client side component sidebar 
-- * 7995de6 - 2015-12-04: client side languages 
-- * 1605e5a - 2015-12-04: server side app update 
-- * 69767ee - 2015-12-03: Zendesk: add body configuration, remove custom fields section 
-- * 06df96e - 2015-12-03: init version package.son 
-- * de9faa6 - 2015-12-03: Completed base structure for mail and fax automations; Added bulk destroy for triggers and automations list. 
-- * 16b99bf - 2015-12-03: server side app.js 
-- * 2191799 - 2015-12-03: package.son 
-- * c6908e8 - 2015-12-03: server side models index.js 
-- * d10be43 - 2015-12-03: server side migrations folder 
-- * ba8942e - 2015-12-03: server side config. Added config.json file. 
-- * b1797e2 - 2015-12-02: Update Nodejs 
-- * 245bc5a - 2015-12-02: package.js 
-- * 4879475 - 2015-12-02: Checkout production 
-- * 27a821b - 2015-12-02: server side routes.js 
-- * fb32d86 - 2015-12-02: server side config 
-- * ca31944 - 2015-12-02: server side api 
-- * 6221198 - 2015-12-02: client side components 
-- * 5c0d60b - 2015-12-02: client side app chat realtime 
-- * 2528ed9 - 2015-12-02: Move languages under assets 
-- * 8d3a5e0 - 2015-12-02: Remove Images 
-- * 9d724cd - 2015-12-01: change MD5 with md5 
-- * 3388ac3 - 2015-12-01: removed elastic builder and recursion helper request from app.js 
-- * 19955f8 - 2015-12-01: removed recursion helper 
-- * 2f2aadc - 2015-12-01: Triggers client side with new directive; First new triggers server side (only conditions check). 
-- * ff0433d - 2015-12-01: Bug fix grunt file to build 
-- * 6a9e7a3 - 2015-12-01: remove angular-smiles and change path languages 
-- * 0d2376d - 2015-12-01: appjs with ami and agi 
-- * b59c77a - 2015-12-01: bower.json 
-- * 19b362a - 2015-12-01: server side models 
-- * 86d977a - 2015-12-01: server side config 
-- * 24768e3 - 2015-12-01: server side API 
-- * 1e4a001 - 2015-12-01: client side quickSidebar component 
-- * dfa6a84 - 2015-12-01: client side languages components 
-- * 787afbe - 2015-12-01: client side header component 
-- * 8f08964 - 2015-12-01: client side app 
-- * d9684f3 - 2015-11-30: check on variable remove (used in zendesk configurations) 
-- * 4a8d16c - 2015-11-30: Zendesk subject configuration (server + client) 
-- * b65a514 - 2015-11-30: server side components xchatty 
-- * 20ad8ac - 2015-11-30: server side API 
-- * 441dc14 - 2015-11-30: client side components 
-- * c526b72 - 2015-11-30: restore development.js 
-- * 0ed2e3e - 2015-11-28: server side API 
-- * 31bb67a - 2015-11-28: client side components quickSidebar 
-- * 9748c1e - 2015-11-28: client side components languages 
-- * 999dc51 - 2015-11-28: client side app chat 
-- * 70651a1 - 2015-11-27: First automations service 
-- * 3f96707 - 2015-11-27: update on zendesk configuration (only add/remove string field in subject section) 
-- * 5513121 - 2015-11-27: Socket Connection 
-- * bbc1497 - 2015-11-27: motionbar chat first commit 
-- * 76cda3c - 2015-11-27: server app.js 
-- * c2fcab1 - 2015-11-27: quick sidebar back 
-- * 554f03c - 2015-11-27: server routes.js 
-- * d223539 - 2015-11-27: server side models 
-- * 71e67fc - 2015-11-27: server side config 
-- * 37ed1eb - 2015-11-27: server side API 
-- * 0533d26 - 2015-11-27: client side app + components 
-- * 57d3568 - 2015-11-27: client side app chat 
-
diff --git a/release-notes/changelog_0.0.3.txt b/release-notes/changelog_0.0.3.txt
new file mode 100644
index 0000000..6875e0b
--- /dev/null
+++ b/release-notes/changelog_0.0.3.txt
@@ -0,0 +1,68 @@
+# xCALLY MOTION Changelog
+
+- * 423e8e4 - 2015-12-07: modify variable app.json 
+- * aaf1b4c - 2015-12-07: server side api update 
+- * 89b5e99 - 2015-12-07: Title HTML Motion 
+- * 6c74df2 - 2015-12-07: Pm2 app.json configuration 
+- * f7b0771 - 2015-12-07: server side API update 
+- * 764ce6d - 2015-12-07: server side update 
+- * 19d5b52 - 2015-12-07: client update 
+- * d3c4122 - 2015-12-04: commit 6 
+- * ada7211 - 2015-12-04: test commi5 
+- * 8e2bbe4 - 2015-12-04: Improve Style View Motion Chat 
+- * e9e47b0 - 2015-12-04: Added tags section; Added contact management first section; Added tab base structure. 
+- * ec1ac4b - 2015-12-04: Zendesk integration: add basic field configuration 
+- * bc0f91f - 2015-12-04: Configuration Database 
+- * 3c1b3ca - 2015-12-04: test commit 4 
+- * 8f3a0c2 - 2015-12-04: test commit 2 
+- * 0da8462 - 2015-12-04: test commit 
+- * 45682db - 2015-12-04: test commit - 4 
+- * ae7dcac - 2015-12-04: test commit - 3 
+- * 1c33ab8 - 2015-12-04: new version 
+- * 6a8c8f6 - 2015-12-04: Change remote git 
+- * 300f7f0 - 2015-12-04: test commit with tag - 2 
+- * 430fe66 - 2015-12-04: test commit with tag 
+- * ff9311f - 2015-12-04: server sie routres.js 
+- * 80061e5 - 2015-12-04: package.son 
+- * 05951bf - 2015-12-04: server side models update 
+- * d38ad70 - 2015-12-04: server config socket.io 
+- * aaa0955 - 2015-12-04: server side API update 
+- * 367be9b - 2015-12-04: client side component sidebar 
+- * 7995de6 - 2015-12-04: client side languages 
+- * 1605e5a - 2015-12-04: server side app update 
+- * 69767ee - 2015-12-03: Zendesk: add body configuration, remove custom fields section 
+- * 06df96e - 2015-12-03: init version package.son 
+- * de9faa6 - 2015-12-03: Completed base structure for mail and fax automations; Added bulk destroy for triggers and automations list. 
+- * 16b99bf - 2015-12-03: server side app.js 
+- * 2191799 - 2015-12-03: package.son 
+- * c6908e8 - 2015-12-03: server side models index.js 
+- * d10be43 - 2015-12-03: server side migrations folder 
+- * ba8942e - 2015-12-03: server side config. Added config.json file. 
+- * b1797e2 - 2015-12-02: Update Nodejs 
+- * 245bc5a - 2015-12-02: package.js 
+- * 4879475 - 2015-12-02: Checkout production 
+- * 27a821b - 2015-12-02: server side routes.js 
+- * fb32d86 - 2015-12-02: server side config 
+- * ca31944 - 2015-12-02: server side api 
+- * 6221198 - 2015-12-02: client side components 
+- * 5c0d60b - 2015-12-02: client side app chat realtime 
+- * 2528ed9 - 2015-12-02: Move languages under assets 
+- * 8d3a5e0 - 2015-12-02: Remove Images 
+- * 9d724cd - 2015-12-01: change MD5 with md5 
+- * 3388ac3 - 2015-12-01: removed elastic builder and recursion helper request from app.js 
+- * 19955f8 - 2015-12-01: removed recursion helper 
+- * 2f2aadc - 2015-12-01: Triggers client side with new directive; First new triggers server side (only conditions check). 
+- * ff0433d - 2015-12-01: Bug fix grunt file to build 
+- * 6a9e7a3 - 2015-12-01: remove angular-smiles and change path languages 
+- * 0d2376d - 2015-12-01: appjs with ami and agi 
+- * b59c77a - 2015-12-01: bower.json 
+- * 19b362a - 2015-12-01: server side models 
+- * 86d977a - 2015-12-01: server side config 
+- * 24768e3 - 2015-12-01: server side API 
+- * 1e4a001 - 2015-12-01: client side quickSidebar component 
+- * dfa6a84 - 2015-12-01: client side languages components 
+- * 787afbe - 2015-12-01: client side header component 
+- * 8f08964 - 2015-12-01: client side app 
+- * d9684f3 - 2015-11-30: check on variable remove (used in zendesk configurations) 
+- * 4a8d16c - 2015-11-30: Zendesk subject configuration (server + client) 
+
diff --git a/server/api/contact_manager/contact_manager.controller.js b/server/api/contact_manager/contact_manager.controller.js
new file mode 100644
index 0000000..2d3d4c8
--- /dev/null
+++ b/server/api/contact_manager/contact_manager.controller.js
@@ -0,0 +1,240 @@
+'use strict';
+
+var _ = require('lodash');
+var ManagedContact = require('../../models').ManagedContact;
+var ManagedContactHistory = require('../../models').ManagedContactHistory;
+var stream = require('stream');
+
+// Get list of contacts
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'surname', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+
+  ManagedContact
+    .findAndCountAll(query)
+    .then(function(managed_contacts) {
+      return res.status(200).send(managed_contacts);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single managed_contact
+exports.show = function(req, res) {
+  ManagedContact
+    .findById(req.params.id)
+    .then(function(managed_contact) {
+      if (!managed_contact) {
+        return res.sendStatus(404);
+      }
+      return res.send(managed_contact);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.getHistory = function(req, res) {
+  ManagedContactHistory
+    .findAll({
+      where: {
+        ManagedContactId: req.params.id,
+      }
+    })
+    .then(function(contactHistory) {
+      return res.status(200).send(contactHistory);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// validate mailbox uniqueness
+exports.contactValidation = function(req, res) { //DA FARE!!!
+  //   // console.log(req.body);
+  //   ManagedContact
+  //     .findAll({
+  //       where: {
+  //         mailbox: req.body.mailbox,
+  //         context: req.body.context
+  //       }
+  //     })
+  //     .then(function(voicemails) {
+  //       if (!voicemails) {
+  //         return res.sendStatus(404);
+  //       }
+  //       return res.send(voicemails);
+  //     })
+  //     .catch(function(err) {
+  //       return handleError(res, err);
+  //     });
+};
+// Creates a new managed_contact in the DB.
+exports.create = function(req, res) {
+  // ManagedContact
+  //   .findAll({
+  //     where: {
+  //       mailbox: req.body.mailbox,
+  //       context: req.body.context
+  //     }
+  //   })
+  //   .then(function(voicemails) {
+  //     if (!voicemails) {
+  //       return res.sendStatus(404);
+  //     }
+  //     if (voicemails.length > 0) {
+  //       return res.status(500).send({
+  //         message: 'MESSAGE_EXIST_MAILBOX'
+  //       })
+  //     }
+  //     ManagedContact
+  //       .create(req.body)
+  //       .then(function(managed_contact) {
+  //         return res.status(201).send(managed_contact);
+  //       })
+  //       .catch(function(err) {
+  //         return handleError(res, err);
+  //       })
+  //       .catch(function(err) {
+  //         return handleError(res, err);
+  //       });
+  //   })
+};
+
+// Updates an existing managed_contact in the DB.
+exports.update = function(req, res) {
+  // ManagedContact
+  //   .findAll({
+  //     where: {
+  //       mailbox: req.body.mailbox,
+  //       context: req.body.context,
+  //       uniqueid: {
+  //         $ne: req.body.uniqueid
+  //       }
+  //     }
+  //   })
+  //   .then(function(voicemails) {
+  //     if (!voicemails) {
+  //       return res.sendStatus(404);
+  //     }
+  //     if (voicemails.length > 0) {
+  //       return res.status(500).send({
+  //         message: 'MESSAGE_EXIST_MAILBOX'
+  //       })
+  //     }
+  //     if (req.body.uniqueid) {
+  //       delete req.body.uniqueid;
+  //     }
+  //     ManagedContact
+  //       .find({
+  //         where: {
+  //           uniqueid: req.params.uniqueid
+  //         }
+  //       })
+  //       .then(function(managed_contact) {
+  //         if (!managed_contact) {
+  //           return res.sendStatus(404);
+  //         }
+  //         var updated = _.merge(managed_contact, req.body);
+  //         updated.save()
+  //           .then(function() {
+  //             return res.status(200).send(managed_contact);
+  //           })
+  //           .catch(function(err) {
+  //             return handleError(res, err);
+  //           });
+  //       })
+  //       .catch(function(err) {
+  //         return handleError(res, err);
+  //       });
+  //   })
+  //   .catch(function(err) {
+  //     return handleError(res, err);
+  //   });
+
+};
+
+// Deletes a managed_contact from the DB.
+exports.destroy = function(req, res) {
+  ManagedContact
+    .find({
+      where: {
+        uniqueid: req.params.uniqueid
+      }
+    })
+    .then(function(managed_contact) {
+      if (!managed_contact) {
+        return res.sendStatus(404);
+      }
+      managed_contact.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a managed_contact from the DB.
+exports.bulkDestroy = function(req, res) {
+  ManagedContact
+    .destroy({
+      where: {
+        uniqueid: req.query.uniqueid
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
diff --git a/server/api/contact_manager/contact_manager.socket.js b/server/api/contact_manager/contact_manager.socket.js
new file mode 100644
index 0000000..4403581
--- /dev/null
+++ b/server/api/contact_manager/contact_manager.socket.js
@@ -0,0 +1,32 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var ManagedContact = require('../../models').ManagedContact;
+var ManagedContactHistory = require('../../models').ManagedContactHistory;
+
+exports.register = function(socket) {
+  ManagedContact.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  ManagedContact.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+  ManagedContactHistory.afterCreate(function(doc) {
+    onHistorySave(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('contact_manager:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('contact_manager:remove', doc);
+}
+
+function onHistorySave(socket, doc, cb) {
+  socket.emit('contact_manager_history:save', doc);
+}
diff --git a/server/api/contact_manager/contact_manager.spec.js b/server/api/contact_manager/contact_manager.spec.js
new file mode 100644
index 0000000..e751625
--- /dev/null
+++ b/server/api/contact_manager/contact_manager.spec.js
@@ -0,0 +1,20 @@
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/contactmanager', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/contactmanager')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
diff --git a/server/api/contact_manager/index.js b/server/api/contact_manager/index.js
new file mode 100644
index 0000000..5305b3c
--- /dev/null
+++ b/server/api/contact_manager/index.js
@@ -0,0 +1,19 @@
+'use strict';
+
+var express = require('express');
+var controller = require('./contact_manager.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.get('/:id/history', auth.isAuthenticated(), controller.getHistory);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.contactValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
diff --git a/server/api/tag/index.js b/server/api/tag/index.js
new file mode 100644
index 0000000..10661b9
--- /dev/null
+++ b/server/api/tag/index.js
@@ -0,0 +1,18 @@
+'use strict';
+
+var express = require('express');
+var controller = require('./tag.controller');
+var auth = require('../../auth/auth.service');
+
+var router = express.Router();
+
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.post('/validate', auth.isAuthenticated(), controller.tagValidation);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/', auth.isAuthenticated(), controller.bulkDestroy);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
+
+module.exports = router;
diff --git a/server/api/tag/tag.controller.js b/server/api/tag/tag.controller.js
new file mode 100644
index 0000000..ad98ba0
--- /dev/null
+++ b/server/api/tag/tag.controller.js
@@ -0,0 +1,209 @@
+'use strict';
+
+var _ = require('lodash');
+var Tag = require('../../models').Tag;
+var util = require('util');
+
+// Get list of tags
+exports.index = function(req, res) {
+
+  var attributes = ['name', 'description'];
+  var per_page = req.query.per_page ? parseInt(req.query.per_page, 10) : 100;
+  var page = req.query.page ? parseInt(req.query.page, 10) : 0;
+
+  var query = {
+    where: {},
+    limit: per_page,
+    offset: page * per_page
+  };
+
+  _.forIn(req.query, function(value, key) {
+    switch (key) {
+      case 'per_page':
+      case 'page':
+        break;
+      case 'sort_by':
+        query.order = util.format('%s %s', req.query.sort_by, req.query.sort_order || 'ASC') || null;
+        break;
+      case 'sort_order':
+        break;
+      case '$':
+        query.where.$or = [];
+        attributes.forEach(function(attribute) {
+          var tmp = {};
+          tmp[attribute] = {
+            $like: '%' + value + '%'
+          };
+
+          query.where.$or.push(tmp);
+        });
+        break;
+      default:
+        query.where[key] = {
+          $like: {}
+        };
+        query.where[key].$like = '%' + value + '%';
+    }
+  });
+
+  Tag
+    .findAndCountAll(query)
+    .then(function(result) {
+
+      var total_pages = Math.ceil(result.count / per_page);
+      var next_page = total_pages > (query.offset + 1) ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page + 1) : null;
+      var previous_page = page > 0 ? util.format('%s://%s%s?page=%d', req.protocol, req.headers.host, req.baseUrl, page - 1) : null;
+
+      res.status(200).send({
+        count: result.count,
+        rows: result.rows,
+        next_page: next_page,
+        previous_page: previous_page,
+        total_pages: total_pages
+      });
+
+    })
+    .catch(function(err) {
+      res.status(500).send({
+        error: 'Something blew up!'
+      });
+    });
+};
+
+exports.tagValidation = function(req, res) {
+  console.log(req.body);
+  Tag
+    .findAll({
+      where: {
+        name: req.body.name
+      }
+    })
+    .then(function(tags) {
+      if (!tags) {
+        return res.sendStatus(404);
+      }
+      return res.send(tags);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Get a single tag
+exports.show = function(req, res) {
+  Tag
+    .findById(req.params.id)
+    .then(function(tag) {
+      if (!tag) {
+        return res.sendStatus(404);
+      }
+      return res.send(tag);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Creates a new tag in the DB.
+exports.create = function(req, res) {
+  Tag
+    .create(req.body)
+    .then(function(tag) {
+      return res.status(201).send(tag);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Updates an existing tag in the DB.
+exports.update = function(req, res) {
+  Tag
+    .findAll({
+      where: {
+        name: req.body.name,
+        id: {
+          $ne: req.body.id
+        }
+      }
+    })
+    .then(function(tags) {
+      if (!tags) {
+        return res.sendStatus(404);
+      }
+      if (tags.length > 0) {
+        return res.status(500).send({
+          message: 'MESSAGE_EXIST_Tag'
+        })
+      }
+      if (req.body.id) {
+        delete req.body.id;
+      }
+      Tag
+        .find({
+          where: {
+            id: req.params.id
+          }
+        })
+        .then(function(tag) {
+          if (!tag) {
+            return res.sendStatus(404);
+          }
+          var updated = _.merge(tag, req.body);
+          updated.save()
+            .then(function() {
+              return res.status(200).send(tag);
+            })
+            .catch(function(err) {
+              return handleError(res, err);
+            });
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+// Deletes a tag from the DB.
+exports.destroy = function(req, res) {
+  Tag
+    .findById(req.params.id)
+    .then(function(tag) {
+      if (!tag) {
+        return res.sendStatus(404);
+      }
+      tag.destroy()
+        .then(function() {
+          return res.sendStatus(204);
+        })
+        .catch(function(err) {
+          return handleError(res, err);
+        });
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+exports.bulkDestroy = function(req, res) {
+  Tag
+    .destroy({
+      where: {
+        id: req.query.id
+      },
+      individualHooks: true
+    })
+    .then(function() {
+      return res.sendStatus(204);
+    })
+    .catch(function(err) {
+      return handleError(res, err);
+    });
+};
+
+function handleError(res, err) {
+  return res.status(500).send(err);
+}
diff --git a/server/api/tag/tag.socket.js b/server/api/tag/tag.socket.js
new file mode 100644
index 0000000..790b0a2
--- /dev/null
+++ b/server/api/tag/tag.socket.js
@@ -0,0 +1,24 @@
+/**
+ * Broadcast updates to client when the model changes
+ */
+
+'use strict';
+
+var Tag = require('../../models').Tag;
+
+exports.register = function(socket) {
+  Tag.afterCreate(function(doc) {
+    onSave(socket, doc);
+  });
+  Tag.afterDestroy(function(doc) {
+    onRemove(socket, doc);
+  });
+}
+
+function onSave(socket, doc, cb) {
+  socket.emit('tag:save', doc);
+}
+
+function onRemove(socket, doc, cb) {
+  socket.emit('tag:remove', doc);
+}
diff --git a/server/api/tag/tag.spec.js b/server/api/tag/tag.spec.js
new file mode 100644
index 0000000..794a03a
--- /dev/null
+++ b/server/api/tag/tag.spec.js
@@ -0,0 +1,20 @@
+'use strict';
+
+var should = require('should');
+var app = require('../../app');
+var request = require('supertest');
+
+describe('GET /api/tags', function() {
+
+  it('should respond with JSON array', function(done) {
+    request(app)
+      .get('/api/tags')
+      .expect(200)
+      .expect('Content-Type', /json/)
+      .end(function(err, res) {
+        if (err) return done(err);
+        res.body.should.be.instanceof(Array);
+        done();
+      });
+  });
+});
diff --git a/server/api/update/update.controller.js b/server/api/update/update.controller.js
index 03837b5..2827f02 100644
--- a/server/api/update/update.controller.js
+++ b/server/api/update/update.controller.js
@@ -4,63 +4,50 @@ var _ = require('lodash');
 var path = require("path");
 var config = require('../../config/environment');
 
-var git = require('simple-git')(path.join(config.root, '.git'));
+var Git = require('simple-git')(path.join(config.root));
 
 var Update = require('../../models').Update;
 
 // Get list of updates
 exports.index = function(req, res) {
 
-  git
-    .log(function(err, log) {
+  Git
+    .fetch('origin', 'develop', function(err) {
       if (err) {
         return handleError(res, err);
       }
 
-      log.all = _.take(log.all, 10);
+      Git
+        .log(function(err, logs) {
+          if (err) {
+            return handleError(res, err);
+          }
 
-      return res.status(200).send(log);
+          logs.all = _.take(logs.all, 10);
+          console.log("Latest available tag: %s", logs.latest);
+          return res.status(200).send(logs);
+        });
     });
 
-  // git
-  //   .fetch(function(err, fetch) {
-  //     if (err) {
-  //       return handleError(res, err);
-  //     }
-  //     console.log('fetch', fetch);
-  //     return res.status(200).send(fetch);
-  //   })
-
-  // git
-  //   .tags(function(err, tags) {
-  //     if (err) {
-  //       return handleError(res, err);
-  //     }
-  //
-  //     return res.status(200).send(tags);
-  //   });
-  // Update
-  //   .findAll()
-  //   .then(function(updates) {
-  //     return res.status(200).send(updates);
-  //   })
-  //   .catch(function(err) {
-  //     return handleError(res, err);
-  //   });
 };
 
 // Get a single update
 exports.show = function(req, res) {
-  Update
-    .findById(req.params.id)
-    .then(function(update) {
-      if (!update) {
-        return res.sendStatus(404);
+
+  Git
+    .pull(function(err, update) {
+      console.log('update', update);
+      console.error('err', err);
+
+      if (err) {
+        return handleError(res, err);
       }
-      return res.send(update);
-    })
-    .catch(function(err) {
-      return handleError(res, err);
+
+      if (update && update.summary.changes) {
+        return res.status(201).send(update);
+      }
+
+      return res.status(201).send(update);
     });
 };
 
diff --git a/server/api/zendesk_configuration/index.js b/server/api/zendesk_configuration/index.js
index 487c2d0..9df7d1b 100644
--- a/server/api/zendesk_configuration/index.js
+++ b/server/api/zendesk_configuration/index.js
@@ -2,16 +2,15 @@
 
 var express = require('express');
 var controller = require('./zendesk_configuration.controller');
-
+var auth = require('../../auth/auth.service');
 var router = express.Router();
 
-router.get('/', controller.index);
-router.get('/:id', controller.show);
-router.post('/', controller.create);
-router.put('/:id', controller.update);
-router.post('/:id/subject', controller.addSubject);
-router.post('/:id/description', controller.addDescription);
-router.patch('/:id', controller.update);
-router.delete('/:id', controller.destroy);
+router.get('/', auth.isAuthenticated(), controller.index);
+router.get('/:id', auth.isAuthenticated(), controller.show);
+router.post('/', auth.isAuthenticated(), controller.create);
+router.put('/:id', auth.isAuthenticated(), controller.update);
+router.post('/:id/:type', auth.isAuthenticated(), controller.addConfigurationField);
+router.patch('/:id', auth.isAuthenticated(), controller.update);
+router.delete('/:id', auth.isAuthenticated(), controller.destroy);
 
 module.exports = router;
diff --git a/server/api/zendesk_configuration/zendesk_configuration.controller.js b/server/api/zendesk_configuration/zendesk_configuration.controller.js
index 331497a..1bcfaae 100644
--- a/server/api/zendesk_configuration/zendesk_configuration.controller.js
+++ b/server/api/zendesk_configuration/zendesk_configuration.controller.js
@@ -31,6 +31,9 @@ exports.show = function(req, res) {
       }, {
         model: ZendeskField,
         as: 'Description'
+      }, {
+        model: ZendeskField,
+        as: 'Field'
       }]
     })
     .then(function(zendesk_configuration) {
@@ -102,32 +105,7 @@ exports.destroy = function(req, res) {
     });
 };
 
-exports.addSubject = function(req, res, next) {
-  // console.log(req.params);
-  ZendeskConfiguration
-    .findById(req.params.id)
-    .then(function(configuration) {
-      if (!configuration) {
-        return res.sendStatus(500);
-      }
-      ZendeskField
-        .create(req.body)
-        .then(function(field) {
-          configuration.addSubject(field);
-          return res.status(200).send(field);
-        })
-        .catch(function(err) {
-          return handleError(res, err);
-          // return next(err);
-        });
-    })
-    .catch(function(err) {
-      // return next(err);
-      return handleError(res, err);
-    });
-};
-
-exports.addDescription = function(req, res, next) {
+exports.addConfigurationField = function(req, res, next) {
   // console.log(req.params);
   ZendeskConfiguration
     .findById(req.params.id)
@@ -138,8 +116,35 @@ exports.addDescription = function(req, res, next) {
       ZendeskField
         .create(req.body)
         .then(function(field) {
-          configuration.addDescription(field);
-          return res.status(200).send(field);
+          switch (req.params.type) {
+            case 'subject':
+              configuration.addSubject(field)
+                .then(function() {
+                  return res.status(200).send(field);
+                })
+                .catch(function(err) {
+                  return handleError(res, err);
+                });
+              break;
+            case 'description':
+              configuration.addDescription(field)
+                .then(function() {
+                  return res.status(200).send(field);
+                })
+                .catch(function(err) {
+                  return handleError(res, err);
+                });
+              break;
+            case 'field':
+              configuration.addField(field)
+                .then(function() {
+                  return res.status(200).send(field);
+                })
+                .catch(function(err) {
+                  return handleError(res, err);
+                });
+              break;
+          }
         })
         .catch(function(err) {
           return handleError(res, err);
diff --git a/server/app.json b/server/app.json
new file mode 100644
index 0000000..757879b
--- /dev/null
+++ b/server/app.json
@@ -0,0 +1,13 @@
+{
+  "apps": [{
+    "name": "motion",
+    "script": "app.js",
+    "env": {
+      "NODE_ENV": "production"
+    },
+    "cwd": "/var/opt/motion",
+    "error_file": "/var/log/xcally/motion-err.log",
+    "out_file": "/var/log/xcally/motion-out.log",
+    "watch": ["package.json"]
+  }]
+}
diff --git a/server/config/environment/config.json b/server/config/environment/config.json
index 2685297..b28da56 100644
--- a/server/config/environment/config.json
+++ b/server/config/environment/config.json
@@ -2,9 +2,9 @@
   "development": {
     "host": "localhost",
     "port": 3306,
-    "database": "motion",
-    "username": "xcall",
-    "password": "xC@LL1234",
+    "database": "xcally",
+    "username": "root",
+    "password": "peppe88",
     "dialect": "mysql"
   },
   "test": {
diff --git a/server/config/environment/config_history.json b/server/config/environment/config_history.json
index 2685297..b28da56 100644
--- a/server/config/environment/config_history.json
+++ b/server/config/environment/config_history.json
@@ -2,9 +2,9 @@
   "development": {
     "host": "localhost",
     "port": 3306,
-    "database": "motion",
-    "username": "xcall",
-    "password": "xC@LL1234",
+    "database": "xcally",
+    "username": "root",
+    "password": "peppe88",
     "dialect": "mysql"
   },
   "test": {
diff --git a/server/config/socketio.js b/server/config/socketio.js
index e60ab15..58731b3 100644
--- a/server/config/socketio.js
+++ b/server/config/socketio.js
@@ -94,6 +94,7 @@ function onConnect(socket) {
   require('../api/integration/integration.socket').register(socket);
   require('../api/voice_musiconhold/voice_musiconhold.socket').register(socket);
   require('../api/voice_voicemail/voice_voicemail.socket').register(socket);
+  require('../api/contact_manager/voice_voicemail.socket').register(socket);
   require('../api/fax_business_automation/fax_business_automation.socket').register(socket);
   require('../api/mail_business_automation/mail_business_automation.socket').register(socket);
   require('../api/business_action/business_action.socket').register(socket);
@@ -114,6 +115,7 @@ function onConnect(socket) {
   require('../api/fax_queue/fax_queue.socket').register(socket);
   require('../api/user_has_team/user_has_team.socket').register(socket);
   require('../api/variable/variable.socket').register(socket);
+  require('../api/tag/tag.socket').register(socket);
   require('../api/square_project/square_project.socket').register(socket);
   require('../api/chat_queue/chat_queue.socket').register(socket);
   require('../api/fax_message/fax_message.socket').register(socket);
diff --git a/server/models/managed_contact.js b/server/models/managed_contact.js
new file mode 100644
index 0000000..2b11fb2
--- /dev/null
+++ b/server/models/managed_contact.js
@@ -0,0 +1,33 @@
+/**
+ * Contact Model
+ */
+
+module.exports = function(sequelize, DataTypes) {
+
+  var ManagedContact = sequelize.define('ManagedContact', {
+    name: DataTypes.STRING,
+    surname: DataTypes.STRING,
+    description: DataTypes.STRING
+  }, {
+    tableName: 'managed_contacts',
+    associate: function(models) {
+      ManagedContact.hasMany(models.ManagedContactPhone, {
+        as: 'Phones',
+        onDelete: 'cascade'
+      });
+      ManagedContact.hasMany(models.ManagedContactEmail, {
+        as: 'Emails',
+        onDelete: 'cascade'
+      });
+      ManagedContact.belongsToMany(models.Tag, {
+        through: 'contact_tags'
+      });
+      ManagedContact.hasMany(models.ManagedContactHistory, {
+        as: 'Logs',
+        onDelete: 'cascade'
+      });
+    }
+  });
+
+  return ManagedContact;
+};
diff --git a/server/models/managed_contact_email.js b/server/models/managed_contact_email.js
new file mode 100644
index 0000000..17d071d
--- /dev/null
+++ b/server/models/managed_contact_email.js
@@ -0,0 +1,17 @@
+/**
+ * Contact Model
+ */
+
+module.exports = function(sequelize, DataTypes) {
+
+  var ManagedContactEmail = sequelize.define('ManagedContactEmail', {
+    email: {
+      type: DataTypes.STRING,
+      unique: true
+    }
+  }, {
+    tableName: 'managed_contact_emails'
+  });
+
+  return ManagedContactEmail;
+};
diff --git a/server/models/managed_contact_history.js b/server/models/managed_contact_history.js
new file mode 100644
index 0000000..ce02715
--- /dev/null
+++ b/server/models/managed_contact_history.js
@@ -0,0 +1,14 @@
+/**
+ * Contact Model
+ */
+
+module.exports = function(sequelize, DataTypes) {
+
+  var ManagedContactHistory = sequelize.define('ManagedContactHistory', {
+    data: DataTypes.STRING
+  }, {
+    tableName: 'managed_contacts_history',
+  });
+
+  return ManagedContactHistory;
+};
diff --git a/server/models/managed_contact_phone.js b/server/models/managed_contact_phone.js
new file mode 100644
index 0000000..bb7402d
--- /dev/null
+++ b/server/models/managed_contact_phone.js
@@ -0,0 +1,17 @@
+/**
+ * Contact Model
+ */
+
+module.exports = function(sequelize, DataTypes) {
+
+  var ManagedContactPhone = sequelize.define('ManagedContactPhone', {
+    phone: {
+      type: DataTypes.STRING,
+      unique: true
+    }
+  }, {
+    tableName: 'managed_contact_phones'
+  });
+
+  return ManagedContactPhone;
+};
diff --git a/server/models/tag.js b/server/models/tag.js
new file mode 100644
index 0000000..e6dac7e
--- /dev/null
+++ b/server/models/tag.js
@@ -0,0 +1,22 @@
+/**
+ * tag Model
+ */
+
+module.exports = function(sequelize, DataTypes) {
+
+  var Tag = sequelize.define('Tag', {
+    name: {
+      type: DataTypes.STRING,
+      unique: true
+    }
+  }, {
+    tableName: 'tags',
+    associate: function(models) {
+      Tag.belongsToMany(models.ManagedContact, {
+        through: 'contact_tags'
+      });
+    }
+  });
+
+  return Tag;
+};
diff --git a/server/models/zendesk_configuration.js b/server/models/zendesk_configuration.js
index d4f65b6..fc32791 100644
--- a/server/models/zendesk_configuration.js
+++ b/server/models/zendesk_configuration.js
@@ -17,6 +17,10 @@ module.exports = function(sequelize, DataTypes) {
         as: 'Description',
         foreignKey: 'DescriptionId'
       });
+      ZendeskConfiguration.hasMany(models.ZendeskField, {
+        as: 'Field',
+        foreignKey: 'FieldId'
+      });
     }
   });
 
diff --git a/server/models/zendesk_field.js b/server/models/zendesk_field.js
index ea91dd5..7aed547 100644
--- a/server/models/zendesk_field.js
+++ b/server/models/zendesk_field.js
@@ -12,7 +12,8 @@ module.exports = function(sequelize, DataTypes) {
     keyType: {
       type: DataTypes.ENUM('string', 'variable')
     },
-    keyContent: DataTypes.STRING
+    keyContent: DataTypes.STRING,
+    idField: DataTypes.INTEGER
   }, {
     tableName: 'zendesk_fields',
     associate: function(models) {
diff --git a/server/routes.js b/server/routes.js
index 9327975..e108eff 100644
--- a/server/routes.js
+++ b/server/routes.js
@@ -34,6 +34,7 @@ module.exports = function(app) {
   app.use('/api/integrations', require('./api/integration'));
   app.use('/api/voice/musiconholds', require('./api/voice_musiconhold'));
   app.use('/api/voice/voicemails', require('./api/voice_voicemail'));
+  app.use('/api/contactmanager', require('./api/contact_manager'));
   app.use('/api/fax/business/automations', require('./api/fax_business_automation'));
   app.use('/api/mail/business/automations', require('./api/mail_business_automation'));
   app.use('/api/business/actions', require('./api/business_action'));
@@ -55,6 +56,7 @@ module.exports = function(app) {
   app.use('/api/mail/attachments', require('./api/mail_attachment'));
   app.use('/api/user_has_teams', require('./api/user_has_team'));
   app.use('/api/variables', require('./api/variable'));
+  app.use('/api/tags', require('./api/tag'));
   app.use('/api/square/projects', require('./api/square_project'));
   app.use('/api/chat/queues', require('./api/chat_queue'));
   app.use('/api/fax/messages', require('./api/fax_message'));
-- 
1.7.1