123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  1. jQuery(window).load(function() {
  2. "use strict";
  3. // Page Preloader
  4. jQuery('#preloader').delay(350).fadeOut(function(){
  5. jQuery('body').delay(350).css({'overflow':'visible'});
  6. });
  7. });
  8. jQuery(document).ready(function() {
  9. "use strict";
  10. // Toggle Left Menu
  11. jQuery('.leftpanel .nav-parent > a').live('click', function() {
  12. var parent = jQuery(this).parent();
  13. var sub = parent.find('> ul');
  14. // Dropdown works only when leftpanel is not collapsed
  15. if(!jQuery('body').hasClass('leftpanel-collapsed')) {
  16. if(sub.is(':visible')) {
  17. sub.slideUp(200, function(){
  18. parent.removeClass('nav-active');
  19. jQuery('.mainpanel').css({height: ''});
  20. adjustmainpanelheight();
  21. });
  22. } else {
  23. closeVisibleSubMenu();
  24. parent.addClass('nav-active');
  25. sub.slideDown(200, function(){
  26. adjustmainpanelheight();
  27. });
  28. }
  29. }
  30. return false;
  31. });
  32. function closeVisibleSubMenu() {
  33. jQuery('.leftpanel .nav-parent').each(function() {
  34. var t = jQuery(this);
  35. if(t.hasClass('nav-active')) {
  36. t.find('> ul').slideUp(200, function(){
  37. t.removeClass('nav-active');
  38. });
  39. }
  40. });
  41. }
  42. function adjustmainpanelheight() {
  43. // Adjust mainpanel height
  44. var docHeight = jQuery(document).height();
  45. if(docHeight > jQuery('.mainpanel').height())
  46. jQuery('.mainpanel').height(docHeight);
  47. }
  48. adjustmainpanelheight();
  49. // Tooltip
  50. jQuery('.tooltips').tooltip({ container: 'body'});
  51. // Popover
  52. jQuery('.popovers').popover();
  53. // Close Button in Panels
  54. jQuery('.panel .panel-close').click(function(){
  55. jQuery(this).closest('.panel').fadeOut(200);
  56. return false;
  57. });
  58. // Form Toggles
  59. jQuery('.toggle').toggles({on: true});
  60. jQuery('.toggle-chat1').toggles({on: false});
  61. var scColor1 = '#428BCA';
  62. if (jQuery.cookie('change-skin') && jQuery.cookie('change-skin') == 'bluenav') {
  63. scColor1 = '#fff';
  64. }
  65. // Sparkline
  66. jQuery('#sidebar-chart').sparkline([4,3,3,1,4,3,2,2,3,10,9,6], {
  67. type: 'bar',
  68. height:'30px',
  69. barColor: scColor1
  70. });
  71. jQuery('#sidebar-chart2').sparkline([1,3,4,5,4,10,8,5,7,6,9,3], {
  72. type: 'bar',
  73. height:'30px',
  74. barColor: '#D9534F'
  75. });
  76. jQuery('#sidebar-chart3').sparkline([5,9,3,8,4,10,8,5,7,6,9,3], {
  77. type: 'bar',
  78. height:'30px',
  79. barColor: '#1CAF9A'
  80. });
  81. jQuery('#sidebar-chart4').sparkline([4,3,3,1,4,3,2,2,3,10,9,6], {
  82. type: 'bar',
  83. height:'30px',
  84. barColor: scColor1
  85. });
  86. jQuery('#sidebar-chart5').sparkline([1,3,4,5,4,10,8,5,7,6,9,3], {
  87. type: 'bar',
  88. height:'30px',
  89. barColor: '#F0AD4E'
  90. });
  91. // Minimize Button in Panels
  92. jQuery('.minimize').click(function(){
  93. var t = jQuery(this);
  94. var p = t.closest('.panel');
  95. if(!jQuery(this).hasClass('maximize')) {
  96. p.find('.panel-body, .panel-footer').slideUp(200);
  97. t.addClass('maximize');
  98. t.html('+');
  99. } else {
  100. p.find('.panel-body, .panel-footer').slideDown(200);
  101. t.removeClass('maximize');
  102. t.html('−');
  103. }
  104. return false;
  105. });
  106. // Add class everytime a mouse pointer hover over it
  107. jQuery('.nav-bracket > li').hover(function(){
  108. jQuery(this).addClass('nav-hover');
  109. }, function(){
  110. jQuery(this).removeClass('nav-hover');
  111. });
  112. // Menu Toggle
  113. jQuery('.menutoggle').click(function(){
  114. var body = jQuery('body');
  115. var bodypos = body.css('position');
  116. if(bodypos != 'relative') {
  117. if(!body.hasClass('leftpanel-collapsed')) {
  118. body.addClass('leftpanel-collapsed');
  119. jQuery('.nav-bracket ul').attr('style','');
  120. jQuery(this).addClass('menu-collapsed');
  121. } else {
  122. body.removeClass('leftpanel-collapsed chat-view');
  123. jQuery('.nav-bracket li.active ul').css({display: 'block'});
  124. jQuery(this).removeClass('menu-collapsed');
  125. }
  126. } else {
  127. if(body.hasClass('leftpanel-show'))
  128. body.removeClass('leftpanel-show');
  129. else
  130. body.addClass('leftpanel-show');
  131. adjustmainpanelheight();
  132. }
  133. });
  134. // Chat View
  135. jQuery('#chatview').click(function(){
  136. var body = jQuery('body');
  137. var bodypos = body.css('position');
  138. if(bodypos != 'relative') {
  139. if(!body.hasClass('chat-view')) {
  140. body.addClass('leftpanel-collapsed chat-view');
  141. jQuery('.nav-bracket ul').attr('style','');
  142. } else {
  143. body.removeClass('chat-view');
  144. if(!jQuery('.menutoggle').hasClass('menu-collapsed')) {
  145. jQuery('body').removeClass('leftpanel-collapsed');
  146. jQuery('.nav-bracket li.active ul').css({display: 'block'});
  147. } else {
  148. }
  149. }
  150. } else {
  151. if(!body.hasClass('chat-relative-view')) {
  152. body.addClass('chat-relative-view');
  153. body.css({left: ''});
  154. } else {
  155. body.removeClass('chat-relative-view');
  156. }
  157. }
  158. });
  159. reposition_topnav();
  160. reposition_searchform();
  161. jQuery(window).resize(function(){
  162. if(jQuery('body').css('position') == 'relative') {
  163. jQuery('body').removeClass('leftpanel-collapsed chat-view');
  164. } else {
  165. jQuery('body').removeClass('chat-relative-view');
  166. jQuery('body').css({left: '', marginRight: ''});
  167. }
  168. reposition_searchform();
  169. reposition_topnav();
  170. });
  171. /* This function will reposition search form to the left panel when viewed
  172. * in screens smaller than 767px and will return to top when viewed higher
  173. * than 767px
  174. */
  175. function reposition_searchform() {
  176. if(jQuery('.searchform').css('position') == 'relative') {
  177. jQuery('.searchform').insertBefore('.leftpanelinner .userlogged');
  178. } else {
  179. jQuery('.searchform').insertBefore('.header-right');
  180. }
  181. }
  182. /* This function allows top navigation menu to move to left navigation menu
  183. * when viewed in screens lower than 1024px and will move it back when viewed
  184. * higher than 1024px
  185. */
  186. function reposition_topnav() {
  187. if(jQuery('.nav-horizontal').length > 0) {
  188. // top navigation move to left nav
  189. // .nav-horizontal will set position to relative when viewed in screen below 1024
  190. if(jQuery('.nav-horizontal').css('position') == 'relative') {
  191. if(jQuery('.leftpanel .nav-bracket').length == 2) {
  192. jQuery('.nav-horizontal').insertAfter('.nav-bracket:eq(1)');
  193. } else {
  194. // only add to bottom if .nav-horizontal is not yet in the left panel
  195. if(jQuery('.leftpanel .nav-horizontal').length == 0)
  196. jQuery('.nav-horizontal').appendTo('.leftpanelinner');
  197. }
  198. jQuery('.nav-horizontal').css({display: 'block'})
  199. .addClass('nav-pills nav-stacked nav-bracket');
  200. jQuery('.nav-horizontal .children').removeClass('dropdown-menu');
  201. jQuery('.nav-horizontal > li').each(function() {
  202. jQuery(this).removeClass('open');
  203. jQuery(this).find('a').removeAttr('class');
  204. jQuery(this).find('a').removeAttr('data-toggle');
  205. });
  206. if(jQuery('.nav-horizontal li:last-child').has('form')) {
  207. jQuery('.nav-horizontal li:last-child form').addClass('searchform').appendTo('.topnav');
  208. jQuery('.nav-horizontal li:last-child').hide();
  209. }
  210. } else {
  211. // move nav only when .nav-horizontal is currently from leftpanel
  212. // that is viewed from screen size above 1024
  213. if(jQuery('.leftpanel .nav-horizontal').length > 0) {
  214. jQuery('.nav-horizontal').removeClass('nav-pills nav-stacked nav-bracket')
  215. .appendTo('.topnav');
  216. jQuery('.nav-horizontal .children').addClass('dropdown-menu').removeAttr('style');
  217. jQuery('.nav-horizontal li:last-child').show();
  218. jQuery('.searchform').removeClass('searchform').appendTo('.nav-horizontal li:last-child .dropdown-menu');
  219. jQuery('.nav-horizontal > li > a').each(function() {
  220. jQuery(this).parent().removeClass('nav-active');
  221. if(jQuery(this).parent().find('.dropdown-menu').length > 0) {
  222. jQuery(this).attr('class','dropdown-toggle');
  223. jQuery(this).attr('data-toggle','dropdown');
  224. }
  225. });
  226. }
  227. }
  228. }
  229. }
  230. // Sticky Header
  231. if(jQuery.cookie('sticky-header'))
  232. jQuery('body').addClass('stickyheader');
  233. // Sticky Left Panel
  234. if(jQuery.cookie('sticky-leftpanel')) {
  235. jQuery('body').addClass('stickyheader');
  236. jQuery('.leftpanel').addClass('sticky-leftpanel');
  237. }
  238. // Left Panel Collapsed
  239. if(jQuery.cookie('leftpanel-collapsed')) {
  240. jQuery('body').addClass('leftpanel-collapsed');
  241. jQuery('.menutoggle').addClass('menu-collapsed');
  242. }
  243. // Changing Skin
  244. var c = jQuery.cookie('change-skin');
  245. var cssSkin = 'css/style.'+c+'.css';
  246. if (jQuery('body').css('direction') == 'rtl') {
  247. cssSkin = '../css/style.'+c+'.css';
  248. jQuery('html').addClass('rtl');
  249. }
  250. if(c) {
  251. jQuery('head').append('<link id="skinswitch" rel="stylesheet" href="'+cssSkin+'" />');
  252. }
  253. // Changing Font
  254. var fnt = jQuery.cookie('change-font');
  255. if(fnt) {
  256. jQuery('head').append('<link id="fontswitch" rel="stylesheet" href="css/font.'+fnt+'.css" />');
  257. }
  258. // Check if leftpanel is collapsed
  259. if(jQuery('body').hasClass('leftpanel-collapsed'))
  260. jQuery('.nav-bracket .children').css({display: ''});
  261. // Handles form inside of dropdown
  262. jQuery('.dropdown-menu').find('form').click(function (e) {
  263. e.stopPropagation();
  264. });
  265. // This is not actually changing color of btn-primary
  266. // This is like you are changing it to use btn-orange instead of btn-primary
  267. // This is for demo purposes only
  268. var c = jQuery.cookie('change-skin');
  269. if (c && c == 'greyjoy') {
  270. $('.btn-primary').removeClass('btn-primary').addClass('btn-orange');
  271. $('.rdio-primary').addClass('rdio-default').removeClass('rdio-primary');
  272. $('.text-primary').removeClass('text-primary').addClass('text-orange');
  273. }
  274. });