PageRenderTime 83ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/HTML/assets/plugins/styleswitcher/styleswitcher.js

https://gitlab.com/rodrigo-brave/template
JavaScript | 412 lines | 397 code | 3 blank | 12 comment | 0 complexity | 4ee43431e3b8de29b489aafde6793fdf MD5 | raw file
  1. /** ********************************************** **
  2. @Author Dorin Grigoras
  3. @Website www.stepofweb.com
  4. @Last Update Monday, July 21, 2014
  5. ** ********************************************* **/
  6. /*!
  7. * jQuery Cookie Plugin v1.3.1
  8. * https://github.com/carhartl/jquery-cookie
  9. *
  10. * Copyright 2013 Klaus Hartl
  11. * Released under the MIT license
  12. */
  13. (function(a){if(typeof define==="function"&&define.amd&&define.amd.jQuery){define(["jquery"],a)}else{a(jQuery)}}(function(e){var a=/\+/g;function d(g){return g}function b(g){return decodeURIComponent(g.replace(a," "))}function f(g){if(g.indexOf('"')===0){g=g.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\")}try{return c.json?JSON.parse(g):g}catch(h){}}var c=e.cookie=function(p,o,u){if(o!==undefined){u=e.extend({},c.defaults,u);if(typeof u.expires==="number"){var q=u.expires,s=u.expires=new Date();s.setDate(s.getDate()+q)}o=c.json?JSON.stringify(o):String(o);return(document.cookie=[encodeURIComponent(p),"=",c.raw?o:encodeURIComponent(o),u.expires?"; expires="+u.expires.toUTCString():"",u.path?"; path="+u.path:"",u.domain?"; domain="+u.domain:"",u.secure?"; secure":""].join(""))}var g=c.raw?d:b;var r=document.cookie.split("; ");var v=p?undefined:{};for(var n=0,k=r.length;n<k;n++){var m=r[n].split("=");var h=g(m.shift());var j=g(m.join("="));if(p&&p===h){v=f(j);break}if(!p){v[h]=f(j)}}return v};c.defaults={};e.removeCookie=function(h,g){if(e.cookie(h)!==undefined){e.cookie(h,"",e.extend(g,{expires:-1}));return true}return false}}));
  14. /** STYLE SWITCHER
  15. *************************************************** **/
  16. jQuery(document).ready(function() {
  17. "use strict";
  18. var _sw = '<!-- STYLESWITCHER - REMOVE ON PRODUCTION/DEVELOPMENT -->'
  19. + '<div id="switcher" class="hide hidden-xs">'
  20. + ' <div class="content-switcher">'
  21. + ' <h4>STYLE SWITCHER</h4>'
  22. + ' <ul class="list-unstyled">'
  23. + ' <li><a href="#" onclick="setActiveStyleSheet(\'green\'); return false;" title="green" class="color"><img src="assets/plugins/styleswitcher/color_schemes/6.png" alt="" width="30" height="30" /></a></li>'
  24. + ' <li><a href="#" onclick="setActiveStyleSheet(\'red\'); return false;" title="red" class="color"><img src="assets/plugins/styleswitcher/color_schemes/2.png" alt="" width="30" height="30" /></a></li>'
  25. + ' <li><a href="#" onclick="setActiveStyleSheet(\'orange\'); return false;" title="orange" class="color"><img src="assets/plugins/styleswitcher/color_schemes/1.png" alt="" width="30" height="30" /></a></li>'
  26. + ' <li><a href="#" onclick="setActiveStyleSheet(\'pink\'); return false;" title="pink" class="color"><img src="assets/plugins/styleswitcher/color_schemes/3.png" alt="" width="30" height="30" /></a></li>'
  27. + ' <li><a href="#" onclick="setActiveStyleSheet(\'yellow\'); return false;" title="yellow" class="color"><img src="assets/plugins/styleswitcher/color_schemes/4.png" alt="" width="30" height="30" /></a></li>'
  28. + ' <li><a href="#" onclick="setActiveStyleSheet(\'darkgreen\'); return false;" title="darkgreen" class="color"><img src="assets/plugins/styleswitcher/color_schemes/5.png" alt="" width="30" height="30" /></a></li>'
  29. + ' <li><a href="#" onclick="setActiveStyleSheet(\'darkblue\'); return false;" title="darkblue" class="color"><img src="assets/plugins/styleswitcher/color_schemes/7.png" alt="" width="30" height="30" /></a></li>'
  30. + ' <li><a href="#" onclick="setActiveStyleSheet(\'blue\'); return false;" title="blue" class="color"><img src="assets/plugins/styleswitcher/color_schemes/8.png" alt="" width="30" height="30" /></a></li>'
  31. + ' <li><a href="#" onclick="setActiveStyleSheet(\'brown\'); return false;" title="brown" class="color"><img src="assets/plugins/styleswitcher/color_schemes/9.png" alt="" width="30" height="30" /></a></li>'
  32. + ' <li><a href="#" onclick="setActiveStyleSheet(\'lightgrey\'); return false;" title="lightgrey" class="color"><img src="assets/plugins/styleswitcher/color_schemes/10.png" alt="" width="30" height="30" /></a></li>'
  33. + ' </ul>'
  34. + ' <div class="margin-top-10 text-left">'
  35. + ' <div class="clearfix">'
  36. + ' <label><input class="dark_switch" type="radio" name="color_skin" id="is_light" value="light" checked="checked" /> Light</label>'
  37. + ' <label><input class="dark_switch" type="radio" name="color_skin" id="is_dark" value="dark" /> Dark <!--<small class="fsize11 styleColor">(BETA)</small>--></label>'
  38. + ' </div>'
  39. + ' <hr class="hidden-xs" />'
  40. + ' <div class="clearfix hidden-xs">'
  41. + ' <label><input class="boxed_switch" type="radio" name="layout_style" id="is_wide" value="wide" checked="checked" /> Wide</label>'
  42. + ' <label><input class="boxed_switch" type="radio" name="layout_style" id="is_boxed" value="boxed" /> Boxed</label>'
  43. + ' </div>'
  44. + ' <hr />'
  45. + ' <div class="clearfix">'
  46. + ' <label><input class="rtl_switch" type="radio" name="layout_rtl" id="is_ltr" value="ltr" checked="checked" /> LTR</label>'
  47. + ' <label><input class="rtl_switch" type="radio" name="layout_rtl" id="is_rtl" value="rtl" /> RTL</label>'
  48. + ' </div>'
  49. + ' </div>'
  50. + ' <p class="nomargin-bottom">Patterns for Boxed Version</p>'
  51. + ' <div>'
  52. + ' <button onclick="pattern_switch(\'none\');" class="pointer switcher_thumb"><img src="assets/images/patterns/none.jpg" width="27" height="27" alt="" /></button>'
  53. + ' <button onclick="pattern_switch(\'pattern2\');" class="pointer switcher_thumb"><img src="assets/images/patterns/pattern2.png" width="27" height="27" alt="" /></button>'
  54. + ' <button onclick="pattern_switch(\'pattern3\');" class="pointer switcher_thumb"><img src="assets/images/patterns/pattern3.png" width="27" height="27" alt="" /></button>'
  55. + ' <button onclick="pattern_switch(\'pattern4\');" class="pointer switcher_thumb"><img src="assets/images/patterns/pattern4.png" width="27" height="27" alt="" /></button>'
  56. + ' <button onclick="pattern_switch(\'pattern5\');" class="pointer switcher_thumb"><img src="assets/images/patterns/pattern5.png" width="27" height="27" alt="" /></button>'
  57. + ' </div>'
  58. + ' <div>'
  59. + ' <button onclick="pattern_switch(\'pattern6\');" class="pointer switcher_thumb"><img src="assets/images/patterns/pattern6.png" width="27" height="27" alt="" /></button>'
  60. + ' <button onclick="pattern_switch(\'pattern7\');" class="pointer switcher_thumb"><img src="assets/images/patterns/pattern7.png" width="27" height="27" alt="" /></button>'
  61. + ' <button onclick="pattern_switch(\'pattern8\');" class="pointer switcher_thumb"><img src="assets/images/patterns/pattern8.png" width="27" height="27" alt="" /></button>'
  62. + ' <button onclick="pattern_switch(\'pattern9\');" class="pointer switcher_thumb"><img src="assets/images/patterns/pattern9.png" width="27" height="27" alt="" /></button>'
  63. + ' <button onclick="pattern_switch(\'pattern10\');" class="pointer switcher_thumb"><img src="assets/images/patterns/pattern10.png" width="27" height="27" alt="" /></button>'
  64. + ' </div>'
  65. + ' <p class="nomargin-bottom">Images for Boxed Version</p>'
  66. + ' <button onclick="background_switch(\'none\');" class="pointer switcher_thumb"><img src="assets/images/demo/boxed_background/none.jpg" width="27" height="27" alt="" /></button>'
  67. + ' <button onclick="background_switch(\'assets/images/demo/boxed_background/1.jpg\');" class="pointer switcher_thumb"><img src="assets/images/demo/boxed_background/1_thumb.jpg" width="27" height="27" alt="" /></button>'
  68. + ' <button onclick="background_switch(\'assets/images/demo/boxed_background/2.jpg\');" class="pointer switcher_thumb"><img src="assets/images/demo/boxed_background/2_thumb.jpg" width="27" height="27" alt="" /></button>'
  69. + ' <button onclick="background_switch(\'assets/images/demo/boxed_background/3.jpg\');" class="pointer switcher_thumb"><img src="assets/images/demo/boxed_background/3_thumb.jpg" width="27" height="27" alt="" /></button>'
  70. + ' <button onclick="background_switch(\'assets/images/demo/boxed_background/4.jpg\');" class="pointer switcher_thumb"><img src="assets/images/demo/boxed_background/4_thumb.jpg" width="27" height="27" alt="" /></button>'
  71. + ' <hr />'
  72. + ' <div class="text-center">'
  73. + ' <button onclick="resetSwitcher();" class="btn btn-primary btn-sm">Reset Styles</button>'
  74. + ' </div>'
  75. + ' <div id="hideSwitcher">&times;</div>'
  76. + ' </div>'
  77. + '</div>'
  78. + '<div id="showSwitcher" class="styleSecondColor hide hidden-xs"><i class="fa fa-flask styleColor"></i></div>'
  79. + '<!-- /STYLESWITCHER -->';
  80. // ADD CLASS
  81. jQuery("head").append('<link href="assets/plugins/styleswitcher/styleswitcher.css" rel="stylesheet" type="text/css" />');
  82. jQuery("body").append(_sw);
  83. jQuery("#switcher, #showSwitcher").removeClass('hide');
  84. jQuery("#hideSwitcher, #showSwitcher").click(function () {
  85. if (jQuery("#showSwitcher").is(":visible")) {
  86. var _identifier = "#showSwitcher";
  87. jQuery("#switcher").animate({"margin-left": "0px"}, 500).show();
  88. createCookie("switcher_visible", 'true', 365);
  89. } else {
  90. var _identifier = "#switcher";
  91. jQuery("#showSwitcher").show().animate({"margin-left": "0"}, 500);
  92. createCookie("switcher_visible", 'false', 365);
  93. }
  94. jQuery(_identifier).animate({"margin-left": "-500px"}, 500, function () {
  95. jQuery(this).hide();
  96. });
  97. });
  98. /**
  99. COLOR SKIN [light|dark]
  100. **/
  101. jQuery("input.dark_switch").bind("click", function() {
  102. var color_skin = jQuery(this).attr('value');
  103. if(color_skin == 'dark') {
  104. jQuery("#css_dark_skin").remove();
  105. jQuery("head").append('<link id="css_dark_skin" href="assets/css/layout-dark.css" rel="stylesheet" type="text/css" title="dark" />');
  106. createCookie("color_skin", 'dark', 365);
  107. jQuery("a.logo img").attr('src', 'assets/images/logo_light.png');
  108. } else {
  109. jQuery("#css_dark_skin").remove();
  110. createCookie("color_skin", '', -1);
  111. jQuery("a.logo img").attr('src', 'assets/images/logo_dark.png');
  112. }
  113. });
  114. /**
  115. RTL|LTR
  116. **/
  117. jQuery("input.rtl_switch").bind("click", function() {
  118. var _direction = jQuery(this).attr('value');
  119. if(_direction == 'rtl') {
  120. jQuery("#rtl_ltr").remove();
  121. jQuery("#rtl_ltr_b1").remove();
  122. jQuery("#rtl_ltr_b2").remove();
  123. jQuery("head").append('<link href="assets/plugins/bootstrap/RTL/bootstrap-rtl.min.css" rel="stylesheet" type="text/css" id="rtl_ltr_b1" />');
  124. jQuery("head").append('<link href="assets/plugins/bootstrap/RTL/bootstrap-flipped.min.css" rel="stylesheet" type="text/css" id="rtl_ltr_b2" />');
  125. jQuery("head").append('<link href="assets/css/layout-RTL.css" rel="stylesheet" type="text/css" id="rtl_ltr" />');
  126. createCookie("_direction", 'rtl', 365);
  127. } else {
  128. jQuery("#rtl_ltr").remove();
  129. jQuery("#rtl_ltr_b1").remove();
  130. jQuery("#rtl_ltr_b2").remove();
  131. createCookie("_direction", '', -1);
  132. }
  133. });
  134. /**
  135. LAYOUT STYLE [wide|boxed]
  136. **/
  137. jQuery("input.boxed_switch").bind("click", function() {
  138. var boxed_switch = jQuery(this).attr('value');
  139. if(boxed_switch == 'boxed') {
  140. jQuery("body").removeClass('boxed');
  141. jQuery("body").addClass('boxed');
  142. createCookie("is_boxed", 'true', 365);
  143. } else {
  144. jQuery("body").removeClass('boxed');
  145. createCookie("is_boxed", '', -1);
  146. jQuery('body').removeClass('transparent');
  147. }
  148. /*
  149. IE Fix - boxed & sticky header
  150. @Styleswitcher bug only.
  151. */
  152. if(jQuery('html').hasClass('ie')) {
  153. jQuery(window).scroll(function() {
  154. if(jQuery('body').hasClass('boxed')) {
  155. jQuery("#header").removeClass('sticky');
  156. jQuery("#header").removeClass('affix');
  157. }
  158. });
  159. }
  160. });
  161. });
  162. /** ********************************************************************************************************** **/
  163. /** ********************************************************************************************************** **/
  164. /** ********************************************************************************************************** **/
  165. function setActiveStyleSheet(title) {
  166. if(title != 'null' && title != null) {
  167. jQuery("#color_scheme").attr('href', 'assets/css/color_scheme/' + title + '.css');
  168. if(jQuery("#css_dark_skin").length < 1) {
  169. // jQuery("a.logo img").attr('src', 'assets/images/demo/logo/' + title + '.png');
  170. }
  171. createCookie("style", title, 365);
  172. // DARK SKIN
  173. /**
  174. var color_skin = readCookie('color_skin');
  175. if(color_skin == 'dark') {
  176. jQuery("#css_dark_skin").remove();
  177. jQuery("head").append('<link id="css_dark_skin" href="assets/css/layout-dark.css" rel="stylesheet" type="text/css" title="dark" />');
  178. jQuery("#is_dark").trigger('click');
  179. jQuery("a.logo img").attr('src', 'assets/images/logo_dark.png');
  180. }
  181. **/
  182. }
  183. }
  184. function getActiveStyleSheet() {
  185. return null;
  186. }
  187. function getPreferredStyleSheet() {
  188. var i, a;
  189. for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
  190. if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("rel").indexOf("alt") == -1 && a.getAttribute("title")) {
  191. return a.getAttribute("title");
  192. }
  193. }
  194. return null;
  195. }
  196. function createCookie(name,value,days) {
  197. /**
  198. if (days) {
  199. var date = new Date();
  200. date.setTime(date.getTime()+(days*24*60*60*1000));
  201. var expires = "; expires="+date.toGMTString();
  202. } else {
  203. expires = "";
  204. } document.cookie = name+"="+value+expires+"; path=/";
  205. **/
  206. }
  207. function readCookie(name) {
  208. /**
  209. var nameEQ = name + "=";
  210. var ca = document.cookie.split(';');
  211. for(var i=0;i < ca.length;i++) {
  212. var c = ca[i];
  213. while (c.charAt(0)==' ') {
  214. c = c.substring(1,c.length);
  215. }
  216. if (c.indexOf(nameEQ) == 0) {
  217. return c.substring(nameEQ.length,c.length);
  218. }
  219. }
  220. **/
  221. return null;
  222. }
  223. jQuery("select#headerLayout").click(function() {
  224. var type = jQuery(this).attr('value');
  225. if (jQuery("#css_navigation_style").length > 0){
  226. jQuery("#css_navigation_style").remove();
  227. }
  228. jQuery("head").append("<link>");
  229. jQuery("head").children(":last").attr({
  230. rel: "stylesheet",
  231. type: "text/css",
  232. id: "css_navigation_style",
  233. href: "css/navigation-style-" + type + ".css"
  234. });
  235. });
  236. /**
  237. Pattern Background
  238. **/
  239. function pattern_switch(pattern) {
  240. if(pattern == 'none' || pattern == '') {
  241. createCookie("pattern_switch", pattern, -1);
  242. remove_pattern();
  243. } else {
  244. if(!jQuery('body').hasClass('boxed')) {
  245. jQuery('body').addClass('boxed');
  246. jQuery("#is_boxed").trigger('click');
  247. createCookie("is_boxed", 'true', 365);
  248. }
  249. createCookie("background_switch", '', -1);
  250. jQuery('body').attr('data-background', '');
  251. jQuery('.backstretch').remove();
  252. jQuery('body').removeClass('transparent');
  253. remove_pattern();
  254. remove_pattern();
  255. jQuery('body').addClass(pattern);
  256. createCookie("pattern_switch", pattern, 365);
  257. }
  258. }
  259. function remove_pattern() {
  260. jQuery('body').removeClass('pattern1');
  261. jQuery('body').removeClass('pattern2');
  262. jQuery('body').removeClass('pattern3');
  263. jQuery('body').removeClass('pattern4');
  264. jQuery('body').removeClass('pattern5');
  265. jQuery('body').removeClass('pattern6');
  266. jQuery('body').removeClass('pattern7');
  267. jQuery('body').removeClass('pattern8');
  268. jQuery('body').removeClass('pattern9');
  269. jQuery('body').removeClass('pattern10');
  270. createCookie("pattern_switch", '', -1);
  271. }
  272. /**
  273. Image Background
  274. **/
  275. function background_switch(imgbkg) {
  276. if(imgbkg == 'none' || imgbkg == '') {
  277. createCookie("background_switch", '', -1);
  278. jQuery('body').attr('data-background', '');
  279. jQuery('.backstretch').remove();
  280. jQuery('body').removeClass('transparent');
  281. remove_pattern();
  282. } else {
  283. if(!jQuery('body').hasClass('boxed')) {
  284. jQuery('body').addClass('boxed');
  285. jQuery("#is_boxed").trigger('click');
  286. createCookie("is_boxed", 'true', 365);
  287. }
  288. jQuery('body').attr('data-background', imgbkg);
  289. createCookie("background_switch", imgbkg, 365);
  290. remove_pattern();
  291. var data_background = jQuery('body').attr('data-background');
  292. if(data_background) {
  293. loadScript(plugin_path + 'jquery.backstretch.min.js', function() {
  294. if(data_background) {
  295. jQuery.backstretch(data_background);
  296. jQuery('body').addClass('transparent'); // remove backround color of boxed class
  297. }
  298. });
  299. }
  300. }
  301. }
  302. /**
  303. Reset Switcher
  304. **/
  305. function resetSwitcher() {
  306. remove_pattern();
  307. jQuery('body').removeClass('boxed');
  308. jQuery("#css_dark_skin").remove();
  309. jQuery('body').attr('data-background', '');
  310. jQuery('.backstretch').remove();
  311. jQuery("a.logo img").attr('src', 'assets/images/logo.png');
  312. jQuery("#is_light").trigger('click');
  313. jQuery("#is_wide").trigger('click');
  314. jQuery("#is_ltr").trigger('click');
  315. // delete cookies!
  316. createCookie("style", '', -1);
  317. createCookie("switcher_visible", '', -1);
  318. createCookie("pattern_switch", '', -1);
  319. createCookie("background_switch", '', -1);
  320. createCookie("boxed", '', -1);
  321. createCookie("color_skin", '', -1);
  322. createCookie("is_boxed", '', -1);
  323. }